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

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

问题描述:

我已经有了几个这样的帖子,但我没有得到最终答案,所以我把这个图像放在一起,试图解释我正在尝试做什么。我非常接近。 如果你能帮助我,谢谢你太多了。迄今为止工作的日子。as3从外部加载的swf从网络控制来自网络的外部加载的swf

如何控制外部加载的SWF代码中的儿童在另一个外部加载的SWF中如何控制儿童?

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

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和控制它的阿尔法这一行:

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

好的,我发现它!谢谢耶稣,因为这个堆叠着惊人的人流!

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! :) 

WOO HOOOOOO! :)

去GO堆叠流动! :)

是看节目的作风硬:]

到你的装载机添加此,它应该帮助:

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

第二件事:

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

+0

谢谢是的,我很快改变了代码的一些变数。我想知道是否有一些错误,但它确实有效......除了我无法弄清楚的最终问题。 :)谢谢...我正在努力为这个答案。 :) – 2012-03-15 08:45:44

+0

P.S.什么是“硬风格”编程? – 2012-03-15 08:46:02

+0

所以现在有效?硬风格 - 我的意思是你推荐阅读一些关于OOP,设计模式,并检查亲开发人员如何制作类似的应用程序来编写更清洁,更好的代码。 – turbosqel 2012-03-15 09:13:04

MovieClip(parent.parent).function(); 反之亦然引用movieclip.OtherChildmoviename.function();

这种结构可以调用从那里以往任何时候都更好的解释检查的ActionScript 2的功能或anymovie因为它使用_root,这可能使上面清晰的

让我们没有你怎么去;

+0

这允许我进入MovieClip:trace(MovieClip(parent.parent).Exit);但我需要控制一个孩子,所以我认为这个代码可以工作,但它不会:MovieClip(parent.parent).Exit.TheChild.alpha = .3; – 2012-03-16 18:27:44