[Flash] http://raienet.com/amfphp/services/swf2swf/parent.swf


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 2010/05/08 16:44
2010/05/08 16:44 

Trackback Address :: 無法向此文章發送引用


[1]... [17][18][19][20][21][22][23][24][25]... [419]