0

我正在用 EZFLAR 和 Flash 制作一本书/杂志,但我需要很多标记(它们越多,FLARToolkit 就越无法区分它们),所以现在我尝试了一种不同的方法:只需要三个标记和然后,加载一个不同的 SWF,为每个标记触发不同的操作。

为此,我制作了一个 loader.swf,它将负责根据用户单击的内容加载任何特定的 swf。我从我的第一个按钮开始,它加载得很好,只是它有两个问题。

第一个问题,不是那么重要,是我似乎无法在网络摄像头流上添加任何内容,甚至没有将其放在 EZLFAR.fla 上,网络摄像头总是覆盖所有内容。然后,我决定在可以放置 UI 的地方添加一点边距(可能是后退按钮或其他 swf 加载器)。

第二个问题发生了,我不能让 unload() 和 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();
}

非常感谢任何帮助,谢谢!

4

1 回答 1

1

Loader.unload() 不会破坏加载的内容,它只是将其从 Loader 实例的显示列表中删除。您需要手动销毁内容。查看Loader.unload 文档了解更多信息。

您在相机上方加载内容的另一个问题......没有看到更多代码,很难判断问题可能是什么。我建议也许向您的加载程序添加一个事件侦听器。等到加载完成后再添加。

于 2011-05-02T17:09:53.140 回答