away3d中进行材质动画可使用SpriteSheetAnimator类;要使用这个功能应完成以下几个步骤:
1:准备精灵表——一个连续动画的位图序列(单张或影片剪辑形式);
2:创建一个SpriteSheetAnimationSet(精灵表动画集合)作为SpriteSheetAnimator的第一参数;
new SpriteSheetAnimationSet();
3:添加SpriteSheetClipNode对象,定义精灵表行为;调用SpriteSheetAnimationSet的addAnimation方法,传入SpriteSheetClipNode对象;SpriteSheetClipNode对象的构建需要使用SpriteSheetHelper的generateSpriteSheetClipNode方法建立;此方法拥有6个参数:
第一参数:node的名称
第二参数:列表的列项个数
第三参数:列表的横向个数
第四参数:当使用SpriteSheetMaterial的时候指定多图像表时,图像的个数;
第五参数:当使用多图像表时的起始图像索引;
第六参数:多图像表的终止索引; 例如一个SpriteSheetMaterial含有2张2×2的贴图,那么全部转换之后将获得8张图片,索引是1-8;
4:可使用单独图片作为图像表;此时只需要传入TextureMaterial给mesh就可以了;之后可设置mesh的animator为构建的SpriteSheetAnimator;
5:可使用多图片作为图像表,此时需要使用SpriteSheetMaterial材质;创建SpriteSheetMaterial应在构造方法传入一个Vector.类型的向量;创建这个向量可手工构建——Vector.([new BitmapTexture(new mybitmapData()),Cast.bitmapTexture(new mybitmapData())]);也可以通过SpriteSheetHelper的generateFromMovieClip创建;
generateFromMovieClip含有7个参数;
第一个参数是要转换的影片剪辑;
第二个参数是切分的列项;
第三个参数是切分的行项;
第四个参数是得到的纹理宽度(纹理永远是2的幂)
第五个参数是得到的纹理宽度(纹理永远是2的幂)
第六个参数是纹理是否支持alpha通道;
第七个参数是纹理的背景色
6:使用精灵表需要使用SpriteSheetAnimator的play方法;play方法含有1个参数;这个参数名称是定义SpriteSheetClipNode时指定的名称;同时可设置其fps属性控制播放速度;以及使用gotoAndStop进行跳帧;
SpriteSheetAnimator类有currentFrameNumber属性,这个属性返回的是当前帧索引,需要注意的是这个索引是从0开始的;
SpriteSheetAnimator类有totalFrames属性,这个属性返回精灵表的总长度;