在引擎包下面samples\WiEngineDemos_java\ demo源码
public class AnimationTest extends WiEngineTestActivity {
@Override
protected Layer createLayer() {
return new MyLayer();
}
//公有成员
//void onAnimationEnded (int animPointer) 播放结束的时候回调
//void onAnimationFrameChanged (int animPointer, int index)//当前针改变的时候调用
class MyLayer extends Layer implements IAnimationCallback {
private Label mLabel;
public MyLayer() {
WYSize s = Director.getInstance().getWindowSize();//通过导演类 获取屏幕的大小
// add sprite
Sprite sprite = Sprite.make(R.drawable.grossini);//添加精灵图片
addChild(sprite);
sprite.setPosition(s.width / 2, s.height / 2);//精灵的位置放在屏幕的中间
// create animation
Animation anim = (Animation)new Animation(0, 0.2f, //创建动画 第一个参数是动画ID 每帧的时间的时间 第三个是 每帧的资源ID
R.drawable.grossini_dance_01,
R.drawable.grossini_dance_02,
R.drawable.grossini_dance_03,
R.drawable.grossini_dance_04,
R.drawable.grossini_dance_05,
R.drawable.grossini_dance_06,
R.drawable.grossini_dance_07,
R.drawable.grossini_dance_08,
R.drawable.grossini_dance_09,
R.drawable.grossini_dance_10,
R.drawable.grossini_dance_11,
R.drawable.grossini_dance_12,
R.drawable.grossini_dance_13,
R.drawable.grossini_dance_14).autoRelease();//autoRelease 自动释放
anim.setCallback(this);//设置回调函数
Animate a = (Animate)Animate.make(anim).autoRelease();
sprite.runAction((Action)RepeatForever.make(a).autoRelease());//绑定动画
// hint label
mLabel = Label.make("callback display label", 20);
mLabel.setPosition(s.width / 2, 100);
addChild(mLabel);
}
public void onAnimationEnded(int animPointer) {//动画结束
mLabel.setText("animation ended");
}
public void onAnimationFrameChanged(int animPointer, int index) {
mLabel.setText("frame changed: " + index);//动画改变
}
}
}