Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 ActionScript-在运行时光栅化矢量图形?_Actionscript 3_Air_Bitmap_Vector Graphics_Rasterize - Fatal编程技术网

Actionscript 3 ActionScript-在运行时光栅化矢量图形?

Actionscript 3 ActionScript-在运行时光栅化矢量图形?,actionscript-3,air,bitmap,vector-graphics,rasterize,Actionscript 3,Air,Bitmap,Vector Graphics,Rasterize,我开发了一个跨平台的AIR应用程序,它在移动设备上的性能严重不足,这是由于动画制作/使用矢量图形而不是位图资源造成的。使用cacheAsBitmapMatrix/cacheAsBitmap会更好,在适当的时间和地点进行分配,但仍然不如使用位图资源快 我曾尝试在运行时将矢量图形bitmapData.draw()绘制到位图对象,并改为对位图对象进行动画处理,但其性能仅与将矢量图形缓存为位图相当(甚至可能完全相同) FlashProfessional5.5UI现在可以将矢量图形转换为位图资源,但在运行

我开发了一个跨平台的AIR应用程序,它在移动设备上的性能严重不足,这是由于动画制作/使用矢量图形而不是位图资源造成的。使用cacheAsBitmapMatrix/cacheAsBitmap会更好,在适当的时间和地点进行分配,但仍然不如使用位图资源快

我曾尝试在运行时将矢量图形bitmapData.draw()绘制到位图对象,并改为对位图对象进行动画处理,但其性能仅与将矢量图形缓存为位图相当(甚至可能完全相同)


FlashProfessional5.5UI现在可以将矢量图形转换为位图资源,但在运行时可以这样做吗?是否可以使用实际的光栅化()例程在运行时将编程绘制的矢量图形甚至可编辑文本转换为位图,以获得最佳的动画性能,特别是在移动设备上?

当您说您尝试为位图设置动画时,我希望您的意思不是旋转/调整位图的大小,因为这是一个缓慢的过程

可能有一个引擎,当你的游戏加载时,根据MovieClip(如果有动画)中的帧为你创建一个精灵表。然后可以通过
BitmapData.copyPixels()
引用它们

这只是:

  • 创建BitmapData对象
  • 将MovieClips时间线的每一帧绘制到位图数据上,就像手动使用精灵工作表一样
  • 将位图数据存储到关联数组中,以便以后轻松访问,例如
    sheets[“zombie1”]
  • 甚至可以在for循环中旋转对象,并将旋转后的对象绘制到图纸上

    然后,您的
    SheetObject
    将只具有加载先前定义的工作表的一部分并显示它的方法


    这一切都在正确的轨道上吗?

    如果您将它们都存储在一个数组中,您真的不需要将它们放在精灵表中。您只需从阵列ie动画[“zombie_walk”]=zombie WalkFrames——您的动画帧阵列中访问它们。我通常只使用精灵表,如果这是创建内容的方式。如果是矢量movieclips作为源代码,最好还是坚持使用数组并以这种方式管理它。我不做任何帧脚本。它都是通过编程创建的矢量图形(绘图API)和Tweener动画。是的,我正在旋转和缩放图形-例如,屏幕上有一个正方形。触摸正方形会使它漂浮在舞台上方,稍微放大它的比例并替换掉它的阴影。我知道向矢量图形添加过滤器会自动将图形缓存为位图。缩放/旋转矢量图形(无过滤器)是否比缩放/旋转位图更快?此外,我正在发布AIR 2.5,尚未尝试AIR 2.6应用过滤器的多个对象,这些对象可以四处移动、更改形状、旋转或真正执行除静态以外的任何操作,这将对性能造成严重影响-无论它们是什么类型的对象(位图/向量)。如果要提高速度,基本上可以预渲染旋转/缩放。CopyPixels是你在blitting中想要走的路线,它比draw快。正如Marty所说,如果你在进行动态缩放/旋转,那么就没有办法避免性能下降。请记住,如果正在缩放/旋转向量,位图缓存实际上会减慢速度。在这种情况下,不使用位图缓存会更好。因为它将缓存每个帧的新缩放/旋转。还请记住,如果要动态旋转/缩放位图,与向量相比,它会有点锯齿状。