2012-03-15 100 views
0

我已經有了幾個這樣的帖子,但我沒有得到最終答案,所以我把這個圖像放在一起,試圖解釋我正在嘗試做什麼。我非常接近。 如果你能幫助我,謝謝你太多了。迄今爲止工作的日子。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

回答

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

WOO HOOOOOO! :)

去GO堆疊流動! :)

0

是看節目的作風硬:]

到你的裝載機添加此,它應該幫助:

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

0

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