我正在尝试制作一个 AS3 包装器来将一组旧的 Flash 游戏(AS2)移植到我的 Android 手机上。我已成功加载并运行(在 CS5.5 中的 sim/run 窗口 ctrl+Enter)旧 AS2 .swf,代码如下:
// This is the Loader instance that will load your SWF.
var swfLoader:Loader = new Loader();
// URLRequest points to your external SWF
var swfFile:URLRequest = new URLRequest("ha2.swf");
//create the container Movie Clip to load swf
var container:MovieClip= new MovieClip();
// Assign an event listener so that Flash informs you when the SWF has been loaded.
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoadedHandler);
function swfLoadedHandler(e:Event):void {
trace("swf loaded");
//(e.target.content).stop();//returns null reference for stop function
}
swfLoader.load(swfFile);
//just add the loaded swf to container
container.addChild(swfLoader);
//add container to the stage and make it visible
addChild(container);
这在 PC 上运行良好并按应有的方式加载了 swf,但是一旦我将它发布到 android,它会在循环中超快地跳过 AS2 应用程序的帧,而不是像在 sim 中那样遵循脚本。
有任何想法吗?是的,我意识到如果将这些游戏重新编码为 AS3,它们会运行得更快,但是其中有很多,我想保留原件并使 shell 成为一种更具动态性(尽管效率较低)的解决方案。
谢谢。