既然是有外部載入的,但有些問題可以討論的
A.swf載入B.swf
應該A.swf跟B.swf的畫格數不同
但我有在B.swf做按鈕,按下後將A.swf的畫格切換到指定畫格
載入其他的swf使用
由剛剛的方式就可以看到,MainTimeline能有多個但stage只有一個
OK. 這裡告訴你如何從A.swf設定事件在B.swf的按鈕上
先寫載入B.swf到myb_mc的語法
var loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_CompleteHandler);
loader.load(new URLRequest(“B.swf”));
myb_mc.addChild(loader);
loader.x = 0;
loader.y = 0;
這裡不同的是,多了一行語法,意思是偵聽事件,當載入完成後執行loader_CompleteHandler函數
在loader_CompleteHandler函數可以這麼寫
function loader_CompleteHandler(e:Event):void
{
loader.getChildAt(0).btn01.addEventListener(MouseEvent.CLICK,btn01_clickHandler);
}
function btn01_clickHandler(e:MouseEvent):void
{
/*一些程式碼*/
}
幫在B.swf的btn01按鈕掛上偵聽事件
————————————————————–
方式不同,但做法相同的另一個寫法
陣列寫法,事先定義好按鈕陣列
程式寫的時候一併附掛偵聽事件,再由引發事件主人的名字還判斷要做甚麼事
function loader_CompleteHandler(e:Event):void
{
var buttonsArr:Array = [loader.getChildAt(0).btn01, loader.getChildAt(0).btn02];
for (var i:int = 0; i< buttonsArr.length; i++)
{
buttonsArr[i].addEventListener(MouseEvent.CLICK,clickHandler);
}
}
function clickHandler(e:MouseEvent):void
{
switch (evt.target.name)
{
case “btn01” :
/*一些程式碼*/
break;
case “btn02” :
/*一些程式碼*/
break;
}
}