简体   繁体   English

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

[英]as3 externally loaded swf from network to control externally loaded swf from network

I have had several posts like this but I have not gotten down to the final answer so I put this image together to try and explain what I am trying to do. 我有几个这样的帖子,但我没有得到最终的答案所以我把这个图像放在一起试图解释我想要做什么。 I AM SO CLOSE. 我太紧张了。 if you can help me THANK YOU SOOOO MUCH. 如果你能帮助我,那么多谢你。 Worked days on this so far. 到目前为止工作了几天。

HOW DO I CONTROL CHILDREN INSIDE AN EXTERNALLY LOADED SWF FROM CODE IN ANOTHER EXTERNALLY LOADED SWF? 我如何在另一个外部加载的SWF中控制儿童在一个外部加载的SWF中的代码?

EDIT: Below is THEE code located in "ONE.swf" that I need help with. 编辑:下面是我需要帮助的“ONE.swf”中的THEE代码。 Just one or two lines I know but I JUST CANT get it. 我知道只有一两行,但我不能得到它。

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

}

EDIT: March 16th, 2012 编辑:2012年3月16日

I am able to access the swf TWO.swf from ONE.swf and control it's alpha with this line: 我可以从ONE.swf访问swf TWO.swf并使用此行控制它的alpha:

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

But I need to control a child in that so I thought this following code would work but it doesn't: 但我需要控制一个孩子,所以我认为以下代码可以工作,但它没有:

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

END EDIT--------------- 结束编辑---------------

我把这个图形一起用于帮助显示我正在尝试做什么。 Here is another link to it if you can see it: http://mycontactcorner.com/sandbox/testing/ChildTwo.jpg 如果你能看到它,还有另一个链接: http//mycontactcorner.com/sandbox/testing/ChildTwo.jpg

Ok I found it! 好的我找到了!

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

Is see hard style of programming :] 看是难以编程的风格:]

to Your loaders add this , it should help: 你的装载机添加这个,它应该有所帮助:

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

Second thing : 第二件事:

You should try access to content if You make sure that its loaded . 如果确保已加载内容,则应尝试访问内容。 So put start loading of second SWF to loading complete function of first SWF and You should trace(TWO.content) and see is there anything already loaded. 因此,开始加载第二个SWF以加载第一个SWF的完整功能,你应该跟踪(TWO.content)并查看是否有任何已经加载的内容。

MovieClip(parent.parent).function(); 影片剪辑(parent.parent)。功能(); vise versa reference the movieclip.OtherChildmoviename.function(); 反之亦然参考movieclip.OtherChildmoviename.function();

this structure you can call a function from where ever or anymovie for better explanation check actionscript 2 as it uses the _root, this may make the above clearer 这个结构你可以调用一个函数从哪里或任何电影更好的解释检查actionscript 2,因为它使用_root,这可能使上面更清晰

let us no how you go; 让我们你怎么走;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM