【发布时间】:2014-03-25 01:37:44
【问题描述】:
我正在开发一个游戏,其中会有不同方面的人,我想知道如何在动画的每一帧中加载一个文件,经过大量搜索后,我在另一个 flash 项目中创建了一个新的 Ball 类并制作了我自己这段代码只是为了测试
public class Ball extends MovieClip {
private var spriteSheet:Bitmap;
public function Ball()
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
loader.load(new URLRequest("Ball.png"));
}
private function onFrameLoop(e:Event)
{
switchFrame();
}
private function switchFrame()
{
var frameBitmapData:BitmapData = new BitmapData(50, 50);
frameBitmapData.copyPixels(spriteSheet.bitmapData, new Rectangle(0, (50*(currentFrame-1)), 50, 50), new Point(0,0));
var frame:Bitmap = new Bitmap(frameBitmapData);
this.addChild(frame);
}
private function onLoadComplete(e:Event)
{
var loaderInfo:LoaderInfo = e.target as LoaderInfo;
spriteSheet = loaderInfo.content as Bitmap;
this.addEventListener(Event.ENTER_FRAME, onFrameLoop);
}
}
}
它起作用了,我刚刚在 Ball MovieClip Symbol 上添加了 5 个空白关键帧。问题是,如果我打算为移动设备制作这款游戏,并且可能同时有 20 个人在舞台上,这是否足够快?还必须有另一种方法,因为 XML 文件必须用于某些事情,对吗?那么其他方式是什么?
PD:我知道每次执行 switchFrame 函数时我都不会删除帧位图。
我需要一个好的答案,不要将我链接到我可能不会理解的东西
【问题讨论】:
标签: actionscript-3 flash animation sprite-sheet