Flash as3.0 swf檔按鈕連至swf檔

如題~我做一個動畫~因為會做非常多怕會很亂

所以將這動畫分成2個swf檔

第一個(dm)swf中有按鈕要連至第2個swf檔

a.addEventListener(MouseEvent.CLICK,onClickA);

function onClickA(e:MouseEvent):void

{

var ldr:Loader = new Loader();

this.addChild(ldr);

ldr.load(new URLRequest("dm1.swf"));

}

在這邊都沒問題~問題我要將第2個(dm1)swf檔(也有按鈕~實體名稱a1)

要跳回原本第1個swf檔要怎麼用呢?有沒有大大可以解答?as3.0的喔!謝謝~

Update:

謝謝Tony我試試看

Update 2:

看了你的意見後我把

var ldr:Loader = new Loader();

先宣告在加入你妳說的

this.removeChild(ldr);

那你說還需要使用 gotoAndPlay 讓它重頭開始播放

可是我不是同場景而是2個swf檔

Update 3:

dm的

a.addEventListener(MouseEvent.CLICK,onClickA);

function onClickA(e:MouseEvent):void

{

var ldr:Loader = new Loader();

this.addChild(ldr);

ldr.load(new URLRequest("dm1.swf"));

}

Update 4:

dm1的

a1.addEventListener(MouseEvent.CLICK,onClickA);

function onClickA(e:MouseEvent):void

{

var ldr:Loader = new Loader();

this.addChild(ldr);

ldr.load(new URLRequest("dm.swf"));

}

Update 5:

dm1改後

a1.addEventListener(MouseEvent.CLICK,onClickA);

var ldr:Loader = new Loader();

function onClickA(e:MouseEvent):void

{

this.removeChild(ldr);

ldr.load(new URLRequest("dm.swf"));

}

Update 6:

你的意思是這樣??改過之後還是不能從第2swf檔中按鈕回第1個

@@"我太笨~不太懂你的意思

你說的"或許你還需要使用 gotoAndPlay 讓它重頭開始播放"

是指同場景吧??

Update 7:

還是不行耶@@

跟著步驟用還是沒辦法

跳不回dm

Update 8:

那我寄給你

你的信箱是?

1 Answer

Rating
  • tony
    Lv 7
    10 years ago
    Favorite Answer

    你將第二個檔案 dm1 的內容加到 dm 裡

    但事實上 dm 的內容還是存在、只是被 dm1 覆蓋住

    你想跳回 dm 的內容只需將 ldr 移除即可、

    例如:this.removeChild(ldr)

    或許你還需要使用 gotoAndPlay 讓它重頭開始播放

    但是你的 ldr 是在 function 裡宣告的、你必需將它移到 function 外

    2011-01-26 21:55:35 補充:

    我不太清楚你修改後的狀態

    可以描述清楚點? 貼上完整程式碼?

    2011-01-27 12:15:37 補充:

    你在 dm 及 dm1 各宣告一個 ldr、這兩個 ldr 就成了互不相干的兩個個別實體,這不是我們需要的。

    將 dm 裡的 var ldr... 移到 function 之外

    將 dm1 裡的 var ldr...刪掉、ldr.load..刪掉、this.remove..刪掉

    將 dm1 裡的大括弧內改寫成

    var s:*=stage.getChildAt(0);//取得舞台的第0層、相當於dm的root

    s.ldr.unload();//要求ldr卸載內容

    s.removeChild(s.ldr);//將ldr從畫面上移除

    s.ldr=null;//將ldr從記憶體中移除

    完成

    2011-01-28 20:08:48 補充:

    把改好的貼上來看看。

    或者提供檔案

    2011-01-29 01:52:27 補充:

    >>要跳回原本第1個swf檔要怎麼用呢?

    你將第二個檔案 dm1 的內容加到 dm 裡

    但事實上 dm 的內容還是存在、只是被 dm1 覆蓋住

    你想跳回 dm 的內容只需將 ldr 移除即可、

    例如:this.removeChild(ldr)

    或許你還需要使用 gotoAndPlay 讓它重頭開始播放

    但是你的 ldr 是在 function 裡宣告的、你必需將它移到 function 外

    >>改過之後還是不能從第2swf檔中按鈕回第1個

    你在 dm 及 dm1 各宣告一個 ldr、這兩個 ldr 就成了互不相干的兩個個別實體,這不是我們需要的。

    將 dm 裡的 var ldr... 移到 function 之外

    將 dm1 裡的 var ldr...刪掉、ldr.load..刪掉、this.remove..刪掉

    將 dm1 裡的大括弧內改寫成

    var s:*=stage.getChildAt(0);//取得舞台的第0層、相當於dm的root

    s.ldr.unload();//要求ldr卸載內容

    s.removeChild(s.ldr);//將ldr從畫面上移除

    s.ldr=null;//將ldr從記憶體中移除

    完成

    >>跟著步驟用還是沒辦法

    做了一個範例、參考看看

    https://sites.google.com/site/tonyflash1/20110129-...

Still have questions? Get your answers by asking now.