Пример #1
0
        public virtual void dispose()
        {
            stop();
            mNativeStage.removeEventListener(AsEvent.ENTER_FRAME, onEnterFrame, false);
            mNativeStage.removeEventListener(AsKeyboardEvent.KEY_DOWN, onKey, false);
            mNativeStage.removeEventListener(AsKeyboardEvent.KEY_UP, onKey, false);
            mNativeStage.removeEventListener(AsEvent.RESIZE, onResize, false);
            mNativeStage.removeChild(mNativeOverlay);
            mStage3D.removeEventListener(AsEvent.CONTEXT3D_CREATE, onContextCreated, false);
            mStage3D.removeEventListener(AsErrorEvent.ERROR, onStage3DError, false);
            AsArray __touchEventTypes_ = getTouchEventTypes();

            if (__touchEventTypes_ != null)
            {
                foreach (String touchEventType in __touchEventTypes_)
                {
                    mNativeStage.removeEventListener(touchEventType, onTouch, false);
                }
            }
            AsDictionary __programs_ = mPrograms;

            if (__programs_ != null)
            {
                foreach (AsProgram3D program in __programs_)
                {
                    program.dispose();
                }
            }
            if (mStage != null)
            {
                mStage.dispose();
            }
            if (mSupport != null)
            {
                mSupport.dispose();
            }
            if (mTouchProcessor != null)
            {
                mTouchProcessor.dispose();
            }
            if (mContext != null && !mShareContext)
            {
                mContext.dispose();
            }
            if (sCurrent == this)
            {
                sCurrent = null;
            }
        }