2011-05-01 103 views
0

我正在製作一本EZFLAR和Flash的書/雜誌,但是我需要很多標記(而且它們越多,它們就越難與FLARToolkit區分),所以現在我嘗試不同的方法:只需三個標記,然後加載一個不同的SWF,爲每個標記觸發不同的操作。EZFLAR /網絡攝像機的卸載和停止問題

爲此,我做了一個loader.swf,負責根據用戶點擊的內容加載任何特定的swf。我從第一個按鈕開始,它加載正常,只是它有兩個問題。

第一個問題,並非如此重要,是我似乎無法在網絡攝像頭流中添加任何東西,甚至沒有將它放在EZLFAR.fla上,網絡攝像頭始終覆蓋所有內容。然後,我決定在可以放置UI的地方添加一點空白(可能是後退按鈕或其他swf加載器)。

發生第二個問題,我無法獲得卸載()和unloadAndStop()的工作。我已經在函數內部添加了一條線索,看看它是否進入點擊狀態,並且確實如此,但它不會卸載攝像頭swf。另外,如果我將監聽器添加到網絡攝像頭swf中,它不會檢測到它的點擊。

這是我的代碼:

import flash.display.Loader 
import flash.net.URLRequest 
import flash.events.Event 

var myLoader:Loader = new Loader(); 

rptr.addEventListener (MouseEvent.CLICK, raptorLoad); 

function raptorLoad (e:MouseEvent):void 
{ 
    var url:URLRequest = new URLRequest("rptr.swf"); 
    myLoader.load(url); 
    addChild(myLoader); 
} 

myLoader.addEventListener(MouseEvent.CLICK, unLoad); 

function unLoad (event:MouseEvent):void 
{ 
    trace("click!"); 
    myLoader.unloadAndStop(); 
} 

任何幫助非常感謝,謝謝!

回答

1

Loader.unload()不會銷燬加載的內容,只是將其從Loader實例的顯示列表中刪除。您需要手動銷燬內容。查看Loader.unload documentation瞭解更多信息。

您的其他問題在相機上方加載內容...沒有看到更多的代碼,很難說出問題的原因。我會建議可能會添加一個事件監聽器到你的加載器。等到加載完成後再添加它。

+0

我不是故意加載流上面的東西。我的意思是,例如,我放置在畫布上的文字被相機流覆蓋,那麼如何在這種情況下管理圖層?另外,是不是unloadAndStop應該擺脫一切? – Kirby 2011-05-02 20:58:37

+0

unloadAndStop嘗試刪除加載的swf中的引用並使內容可用於垃圾回收。當你打電話給你時,你有沒有得到任何錯誤,或者只是表現不起作用?分層問題可以通過使用setChildIndex ...來解決,假設它們都在同一個顯示列表中。 – Corey 2011-05-02 21:18:09

+0

沒有錯誤,只是沒有發生。就像我沒有點擊加載的swf一樣。 – Kirby 2011-05-02 21:48:32