创建帧逐帧动画在电影剪辑AS3 - Adobe空气



我有一个adobeair应用程序在Android和iOS平台上运行。在应用程序中,我调用几个电影剪辑到舞台上,所以总会有几个电影剪辑到舞台上。没错,我有6个不同的电影片段,我每次调用6/5/4次。
我想把它们做成动画,就像在库中,进入影片剪辑,然后创建一个逐帧动画

我尝试创建25个PNG图像,300 dpi, 40x40大小。动画可以正常工作,但问题是无论何时我在任何设备上运行应用程序,响应时间都会很长,有时会导致应用程序崩溃。似乎如果我用高分辨率的png逐帧制作动画,应用程序将会太慢而无法使用。

我需要为电影剪辑中的每个图像提供良好的质量,但我想用高质量的png文件这样做并不是最好的方法。我想也许可以导入几个illustrator文件并在每帧上展开它们。但我不确定移动设备是否能达到最佳的质量/性能比。

因此,如何在Flash CS6、AS3 adobe air瞄准移动设备中实现最佳的质量/性能比?

编辑:

我已经创建了一个电影剪辑,在库中,我已经加载了一个PNG图像。我试着:
将该影片剪辑内的图像转换为影片剪辑,并处理所有所需的名称,只是为了确认建议的答案。父亲电影剪辑链接到一个AS类,我试图在其中插入建议的代码,但发生的事情是,电影剪辑停止从舞台上出现。我错过了什么吗?

你应该把所有东西都放在位图中。位图使用GPU,矢量和PNG使用CPU。位图优化对于移动设备上的流畅动画来说绝对是必要的。因为你在做安卓安卓有很多不同的屏幕尺寸和dpi,你应该用矢量来画东西,调整矢量的大小以适应设备,把矢量转换成位图。

下面是将影片剪辑转换为位图的示例代码。原始的moviclip - mcCircleVector -在一个holder moviclip - mcCircle中。代码将mcCircleVector转换为位图,删除它,并将位图添加到mccircircle,这样你就可以得到一个电影剪辑。
var bmpTemp: Bitmap;
bmpTemp = new Bitmap();
bmpTemp = fConvertToBMP(mcCircle.mcCircleVector, 150, 150);
mcCircle.removeChild(mcCircle.mcCircleVector);
mcCircle.mcCircleVector = null;
mcCircle.addChild(bmpTemp);
bmpTemp = null;

private function convertBMP(pClip: MovieClip, pWidth: int, pHeight: int): Bitmap {
    var bd: BitmapData = new BitmapData(pWidth, pHeight, true, 0x00000000);
    bd.draw(pClip, null, null, null, null, true);
    var bmp: Bitmap = new Bitmap(bd, "auto", false);
    bmp.smoothing = true;
    return bmp;
}

最新更新