import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.engine.camera.hud.HUD;
import org.anddev.andengine.entity.layer.ILayer;
import org.anddev.andengine.entity.sprite.AnimatedSprite;
import org.anddev.andengine.input.touch.TouchEvent;
import org.anddev.andengine.input.touch.detector.ClickDetector;
import org.anddev.andengine.input.touch.detector.ClickDetector.IClickDetectorListener;
import org.anddev.andengine.opengl.texture.region.TiledTextureRegion;
import android.util.Log;
/**
* @author Strong Chi
* 2011-9-11 下午4:19:23
* 點擊按鈕時圖片會變,圖片需要有兩幀,來回切換
*/
public class XDStateButtonBase extends HUD implements IClickDetectorListener {
//fields
private AnimatedSprite mControlButton;
private final XDButtonClickListener mXDButtonClickListener;
private boolean mStatus = false;
//Constructors
public XDStateButtonBase(final int pX, final int pY, final Camera pCamera, final TiledTextureRegion pOnRegion, final XDButtonClickListener pXDButtonClickListener) {
this.setCamera(pCamera);
this.mXDButtonClickListener = pXDButtonClickListener; //控制外面
this.mControlButton = new AnimatedSprite(pX, pY, pOnRegion) {
//控制內部變化
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
//Log.i("ST", "onAreaTouched");
if(pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN){
Log.i("ST","XDStateButtonBase onclick");
if(mStatus){
this.setCurrentTileIndex(0);
mStatus = false;
if(mXDButtonClickListener!=null) mXDButtonClickListener.onClick(this);
}else{
this.setCurrentTileIndex(1);
mStatus = true;
}
}
return true;
}
};
this.mControlButton.setCurrentTileIndex(0);
this.registerTouchArea(this.mControlButton);
final ILayer bottomLayer = this.getBottomLayer();
bottomLayer.addEntity(this.mControlButton);
this.setTouchAreaBindingEnabled(true);
}
@Override
public void onClick(ClickDetector pClickDetector, TouchEvent pTouchEvent) {
//不知道如何觸發
Log.i("ST","onClick ST");
}
public interface XDButtonClickListener{
public void onClick(final AnimatedSprite animatedSprite);
}
}
AndEngine Button(2)——點擊切換顯示圖片Button
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.