ActionScript3 如何在 swf 之間互相傳遞變數呢? 首先你要瞭解的是,Parent.swf 載入 Child.swf,它們之間是父子關係 = = 這裡的做法是將父子swf 都拉到場景之中,然後在按鈕的同時交換信物,大致上是這樣的狀況。
Parent.fla(先將 Button 組件拉到元件庫)
import fl.controls.Button;
var childSWF:MovieClip;
var Parentvar:String = "parent variable";
//Parent TextField(上方, 準備置入Child Variable)
var ParentTF:TextField = new TextField();
ParentTF.y = 60;
addChild(ParentTF);
//Button
var btn:Button = new Button();
btn.move(20,20);
btn.label = "Passing Variables";
btn.addEventListener(MouseEvent.CLICK, clickBtn);
addChild(btn);
//swf載入
var loader:Loader = new Loader();
var urlrequest:URLRequest=new URLRequest("Child.swf");
loader.load(urlrequest);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, LoadComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
//swf載入成功時, 顯示子swf在父swf上(調低子swf,以避免疊在一起擋到按鈕)
function LoadComplete(event:Event):void{
childSWF = event.target.content;
childSWF.y = 80;
addChild(childSWF);
}
//偵錯
function ioErrorHandler(event:IOErrorEvent):void {
ParentTF.text = "ioErrorHandler: " + event;
}
//按鈕後, 父子swf互換變數
function clickBtn(e:MouseEvent):void{
//呼叫父swf Variable, 傳到子swf TextField
if (childSWF != null){
childSWF.SetParentValue(Parentvar);
}
//呼叫子swf Variable, 傳到父swf TextField
if (childSWF != null){
ParentTF.text = childSWF.Childvar;
}
}
Child.fla
var Childvar:String = "child variable";
//Child TextField(下方, 準備置入 Parent Variable)
var ChildTF:TextField = new TextField();
addChild(ChildTF);
function SetParentValue(string:String):void{
ChildTF.text = string;
}
2010/05/08 16:44 |
Trackback Address :: 無法向此文章發送引用