在AndEngine我想给ButtonSprite绑定属于本身的一些信息,原来想着写个类继承自ButtonSprite,而后再在这个类里面添加一些我须要的属性,可是发现按钮没有点击的状态。后来我有查看了下AndEngine的源文件发现ButtonSprite继承自Entity中有个Object类型的mUserData,应该是专门为用户提供数据的存储的,能够进行写入和读取了。如下是一个例子。
ButtonSprite btn = new ButtonSprite(50, 50, gameTexture.btnTTR, this.getVertexBufferObjectManager(), new OnClickListener() {
public void onClick(ButtonSprite pButtonSprite,
float pTouchAreaLocalX, float pTouchAreaLocalY) {
MyData o = (MyData) pButtonSprite.getUserData();
Log.d("test", "o.answer = "+String.valueOf(o.answer));
}});
MyData myData = new MyData();//自定義存儲信息的類
myData.answer = 10;
btn.setUserData(myData);
scene.registerTouchArea(btn);
scene.attachChild(btn);