as3从网络外部加载swf以控制来自网络的外部加载的swf

时间:2012-03-15 07:56:22

标签: actionscript-3 flash external parent-child

我有几个这样的帖子,但我没有得到最终的答案所以我把这个图像放在一起试图解释我想要做什么。我太紧张了。 如果你能帮助我,那么多谢你。到目前为止工作了几天。

如何在另一个外部加载的SWF中控制儿童使用外部加载的SWF进行控制?

编辑:以下是我需要帮助的“ONE.swf”中的THEE代码。我知道只有一两行,但我不能得到它。

function FunctionInOne()
{
var parentObj:Object = this.parent.parent as Object; //// GIVES ACCESS TO "Content.swf"
var TheStage:Object = this.parent.parent.parent as Object; //// GIVES ACCESS TO STAGE
trace(TheStage.stage.stageWidth);
trace(parentObj);  ///    [object MainTimeline]
trace(parentObj.ONE); /// [object Loader]
trace(parentObj.TWO); ///  [object Loader]

parentObj.alpha = .3; /// NOW I CONTROL THE ALPHA OF "Content.swf" from ONE.swf
var ControlTWO:Loader = parentObj.TWO; // GIVES ACCES TO LOADER TWO

ControlTWO.alpha = .3; // NOW I CONTROL THE ALPHA OF TWO.swf from ONE.swf


BUT HOW DO I GET ACCESS TO CONTROL THE CHILDREN IN "TWO.swf" from "ONE.swf"


var TWOchildren:MovieClip = MovieClip(TWO.content); // DOES NOT WORK
TWOchildren.ChildInTWO.alpha = .3;


var TWOchildren = TWO.content as MovieClip; // DOES NOT WORK
TWOchildren.ChildInTWO.alpha = .3;  // DOES NOT WORK

TWOchidren.FunctionInTWO(); /// DOES NOT WORK

}

编辑:2012年3月16日

我可以从ONE.swf访问swf TWO.swf并使用此行控制它的alpha:

trace(MovieClip(parent.parent).ONE); 

但是我需要控制一个孩子,所以我认为以下代码可以工作但不会:

MovieClip(parent.parent).ONE.TheChild.alpha = .3;

结束编辑---------------

I PUT THIS GRAPHIC TOGETHER TO HELP SHOW WHAT I AM TRYING TO DO. 如果您能看到它,可以使用以下链接:http://mycontactcorner.com/sandbox/testing/ChildTwo.jpg

3 个答案:

答案 0 :(得分:2)

好的,我找到了它!

var InsideConent:Object = this.parent.parent as Object; //// GIVES ACCESS TO "Content.swf"
var ItWorksNow:Sprite = MovieClip(InsideConent.TWO.content).ChildInTWO;  /// 

ItWorksNow.x = 333;  /// I can control property x
ItWorksNow.alpha = .3;  /// I can control the ALPHA! :)

答案 1 :(得分:0)

看到难以编程的风格:]

给你的装载者添加这个,它应该有所帮助:

import flash.system.ApplicationDomain;
import flash.system.LoaderContext;
var loader:Loader = new Loader ( urlRequest , new LoaderContext(false, ApplicationDomain.currentDomain));

第二件事:

如果确保已加载内容,则应尝试访问内容。 因此,开始加载第二个SWF以加载第一个SWF的完整功能,你应该跟踪(TWO.content)并查看是否有任何已经加载的内容。

答案 2 :(得分:0)

的MovieClip(parent.parent)。功能(); 反之亦然参考movieclip.OtherChildmoviename.function();

这个结构你可以从任何地方调用一个函数或者任何电影,以便更好地解释动作脚本2,因为它使用了_root,这可能会使上面更清楚

让我们不要你怎么走;