Пример #1
0
  public void onFinish() {

    if (mFinished) return;

    final float scale_x_fromValue = mBackgroundRectangle.getScaleX();
    final float scale_x_toValue = 0;
    final float duration = HIDE_DURATION * (scale_x_fromValue / 1.0f);

    if (mStopModifier == null) {
      mStopModifier =
          new SingleValueSpanEntityModifier(
              duration,
              scale_x_fromValue,
              scale_x_toValue,
              new IEntityModifierListener() {

                @Override
                public void onModifierStarted(
                    final IModifier<IEntity> pModifier, final IEntity pItem) {

                  //							unregisterEntityModifier(mStartModifier);
                }

                @Override
                public void onModifierFinished(
                    final IModifier<IEntity> pModifier, final IEntity pItem) {

                  mFinished = true;
                }
              }) {

            @Override
            protected void onSetInitialValue(final IEntity pItem, final float pValue) {

              mBackgroundRectangle.setScaleX(pValue);
            }

            @Override
            protected void onSetValue(
                final IEntity pItem, final float pPercentageDone, float pValue) {

              mBackgroundRectangle.setScaleX(pValue);
            }

            @Override
            public SingleValueSpanEntityModifier deepCopy()
                throws org.andengine.util.modifier.IModifier.DeepCopyNotSupportedException {
              return null;
            }
          };
      mStopModifier.setAutoUnregisterWhenFinished(false);
      this.registerEntityModifier(mStopModifier);
    } else {
      mStopModifier.reset(duration, scale_x_fromValue, scale_x_toValue);
    }
  }