我正在制作一本有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();
}
非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
Loader.unload()不会破坏已加载的内容,只是将其从Loader实例的显示列表中删除。您需要手动销毁内容。查看Loader.unload documentation了解详情。
您在相机上方加载内容的另一个问题...没有看到更多的代码,很难说出问题可能是什么。我建议可以在你的加载器中添加一个事件监听器。等到负载完成后再添加它。