如何正确加载Flash中的精灵表?

时间:2012-06-01 15:58:50

标签: flash actionscript-2 sprite-sheet

作为flash的普通用户,你知道你可以将图像导出到一个moveclip,每帧做一帧,但这不是非常“优化”的方式,用C ++我的朋友,我现在不能和他说话,已经阅读了spritesheet并通过它制作了动作和所有内容,并且因为AS2基本上是C ++,所以会发生类似于它的代码,但我没有设法找到它。

我想要的是从像这样的精灵表中导入相同大小的图像: http://j.imagehost.org/0829/WoodyGX_0.jpg

它们都是相同大小的图像放在一起形成精灵表,所以有这个“算法”来读取每一个并且喜欢将它标记为动作用途,但是因为我不知道我在问一个人可以告诉我可能的算法或阅读该表单的方法,将每个图像的图像放入我的movieclip中。

谢谢你。

2 个答案:

答案 0 :(得分:2)

我无法抗拒引用你的冲动:

  

AS2基本上是C ++

只因为我喜欢它。

反正。是的,你可以这样做,但AS2的工具集相当有限,所以这很难。首先,您需要使用BitmapData.draw()方法创建一个bitmapdata对象,其中包含您加载的spritesheet的所有像素。

接下来,您可以选择执行BitmapData.copyPixels()BimtapData.draw()(同样,您可以使用其他位图数据进行绘制,仅使用其中的一部分 - 您需要查看您所在的参数传递一个矩形和一个矩阵,告诉它究竟要复制哪个部分。

最后,要绘制它,您将使用MovieClip.beginBitmapFill(bitmapdata),并绘制边界以填充您已有的位图数据。

答案 1 :(得分:0)

要扩展他的不可发音的答案,您需要使用MovieClipLoader加载您的spirite表。然后,您需要从加载到的MovieClip创建一个BitmapData和draw像素。然后,您可以直接使用它作为绘制源,或copyPixels使用作为您角色的BitmapData,计算哪一块是您想要的姿势,或者您可以创建多个不同的BitmapData实例并绘制一个对每个人构成。然后迭代,每次将一个较小位图的所有像素绘制到角色上。