2011-11-01 72 views
2

我有一個主要的.as和我加載.swf在我的.as.It工作正常,現在我想要的變量從.swf並將其傳遞到.as。我怎樣才能做到這一點?請。幫幫我! 我的.swf文件的編碼如何將變量從.swf文件傳遞給.as文件?

function formatMessage(chatData:Object) 
{ 
var number:uint = chatData.user; 
trace(chatData.user); 
} 
private function addText() 
    { 
_loader = new Loader(); 
_loader.x=10; 
_loader.y=200; 
_loader.load(new URLRequest("receive.swf"));//Here i Can Load the Swf.Here how Can i acces the Variable of number ? 
addChild(_loader); 
    } 
+0

這個變量是DisplayObject? – IronBCC

+0

ya其顯示對象 – Mercy

回答

1

首先要記住的是,這不適用於ActionScript VM版本。僅意味着AVM2和AVM2可以進行通信(AVM1之間可能會進行通信,但需要更多獨創性)。

添加完成事件監聽器_loader.contentLoaderInfo財產稱爲onLoad

_loader.x=10; 
_loader.y=200; 
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad); 

現在用onLoad功能將需要提取加載的內容和小鑄造。

function onLoad(evt:Event):void { 
    var target:DisplayObject = LoaderInfo(evt.target).content as DisplayObject; // cast as DisplayObject 
    trace("readMe = ", target["your_variable"]); // trace output "your_variable" 
} 

有更清晰的形式完成這項工作,但這將允許您從嵌套的SWF中提取值。

+0

先生,我沒有使用嵌套瑞士法郎。只是我將swf添加到.as文件中,我的目標是從.swf檢索變量 – Mercy

+0

@ user993437 - 您的ActionScript文件是否執行?是的,它確實。當您執行ActionScript時,您將以SWF的形式執行它(或者在FLA中執行,而FLA在編譯時是SWF)。使用這一行邏輯,編譯後的SWF將加載另一個名爲'reciever.swf'的SWF文件。將一個SWF加載到另一個SWF的方法稱爲嵌套。你可以考慮你自己的術語,但是這種情況是嵌套的。 –

+0

謝謝先生它的非常有用的信息。使用Flash Builder我無法跟蹤值。是否有可能在addchild()中添加文本? – Mercy

0

的DisplayObjectContainer(_loader.content).getChildByName( 「someName」);

someName變量必須是公共的,在主時間線或主文件中聲明。

+0

1061:通過具有靜態類型flash.display:DisplayObject的引用調用可能未定義的方法getChildByName。 _loader.content.getChildByName(「chatSharedObjectName」);同時添加此代碼會出現像這樣的錯誤。 – Mercy

+0

DisplayObjectContainer(_loader.content).getChildByName(..) – IronBCC

相關問題