Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Andengine-客户端修改器侦听器不工作_Java_Android_Andengine - Fatal编程技术网

Java Andengine-客户端修改器侦听器不工作

Java Andengine-客户端修改器侦听器不工作,java,android,andengine,Java,Android,Andengine,我正在尝试使用实体修改器来操作一些精灵,一旦完成,它应该注销自身。我还添加了一个布尔值,以确保它在运动时不会再次触发。问题是,onModifierStart和onModifierFinished的方法似乎没有启动 这是设置实体修改器的代码 entityModifier = new SequenceEntityModifier(new IEntityModifierListener() { @Override public void onModifierStart

我正在尝试使用实体修改器来操作一些精灵,一旦完成,它应该注销自身。我还添加了一个布尔值,以确保它在运动时不会再次触发。问题是,onModifierStart和onModifierFinished的方法似乎没有启动

这是设置实体修改器的代码

entityModifier = new SequenceEntityModifier(new IEntityModifierListener() {

        @Override
        public void onModifierStarted(IModifier<IEntity> pModifier, IEntity pItem) {
            // TODO Auto-generated method stub
            enabled = false;
        }

        @Override
        public void onModifierFinished(IModifier<IEntity> pModifier, IEntity pItem) {
            // TODO Auto-generated method stub
               enabled = true;
               pItem.unregisterEntityModifier((IEntityModifier) pModifier);
               pModifier.reset();
        }
    },
    new AlphaModifier(2f, 1f, 0f),
            new RotationModifier(1, 0, 90),
            new AlphaModifier(2, 1, 0),
            new AlphaModifier(1, 0, 1),
            new ScaleModifier(2, 1, 0.5f),
            new DelayModifier(0.5f),
            new ParallelEntityModifier(
                                       new ScaleModifier(3, 0.5f, 5),
                                       new RotationByModifier(3, 90)
                                       ),
                                       new ParallelEntityModifier(
                                                                new ScaleModifier(3, 5, 1),
                                                                new RotationModifier(3, 180, 0)
                                                          )
            );

问题是deepCopy的拷贝深度不够

深度复制方法jsut执行以下操作:

return new SequenceEntityModifier(this);
这将排除对onModifierStarted和onModifierFinished的覆盖

相反,尝试创建一个扩展SequenceEntityModifier的私有类并使用它。或者创建一个方法,您可以在精灵和按钮中传递该方法,以便向其中添加实体侦听器

return new SequenceEntityModifier(this);