Dispose() public method

public Dispose ( ) : void
return void
示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="dispose"></param>
        /// <returns></returns>
        public DisplayObject RemoveChildAt(int index, bool dispose)
        {
            if (index >= 0 && index < _children.Count)
            {
                DisplayObject child = _children[index];

                if (stage != null && !child._disposed)
                {
                    if (child is Container)
                    {
                        child.BroadcastEvent("onRemovedFromStage", null);
                    }
                    else
                    {
                        child.DispatchEvent("onRemovedFromStage", null);
                    }
                }
                _children.Remove(child);
                InvalidateBatchingState(true);
                if (!dispose)
                {
                    child.InternalSetParent(null);
                }
                else
                {
                    child.Dispose();
                }

                return(child);
            }
            else
            {
                throw new Exception("Invalid child index");
            }
        }
示例#2
0
        public DisplayObject RemoveChildAt(int index, bool dispose)
        {
            if (index >= 0 && index < _children.Count)
            {
                DisplayObject child = _children[index];

                if (stage != null)
                {
                    if (child is Container)
                    {
                        child.onRemovedFromStage.BroadcastCall();
                    }
                    else
                    {
                        child.onRemovedFromStage.Call();
                    }
                }
                _children.Remove(child);
                child.SetParent(null);
                InvalidateBatchingState();
                if (dispose)
                {
                    child.Dispose();
                }

                return(child);
            }
            else
            {
                throw new Exception("Invalid child index");
            }
        }
示例#3
0
		public override void Dispose()
		{
			base.Dispose(); //Destroy GameObject tree first, avoid destroying each seperately;

			int numChildren = _children.Count;
			for (int i = numChildren - 1; i >= 0; --i)
			{
				DisplayObject obj = _children[i];
				obj.InternalSetParent(null); //Avoid RemoveParent call
				obj.Dispose();
			}
		}
 static public int Dispose(IntPtr l)
 {
     try {
         FairyGUI.DisplayObject self = (FairyGUI.DisplayObject)checkSelf(l);
         self.Dispose();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
示例#5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="dispose"></param>
        /// <returns></returns>
        public DisplayObject RemoveChildAt(int index, bool dispose)
        {
            if (index >= 0 && index < _children.Count)
            {
                DisplayObject child = _children[index];

                if (stage != null && (child._flags & Flags.Disposed) == 0)
                {
                    if (child is Container)
                    {
                        child.BroadcastEvent("onRemovedFromStage", null);
                        if (child == Stage.inst.focus || ((Container)child).IsAncestorOf(Stage.inst.focus))
                        {
                            Stage.inst._OnFocusRemoving(this);
                        }
                    }
                    else
                    {
                        child.DispatchEvent("onRemovedFromStage", null);
                        if (child == Stage.inst.focus)
                        {
                            Stage.inst._OnFocusRemoving(this);
                        }
                    }
                }
                _children.Remove(child);
                InvalidateBatchingState(true);
                if (!dispose)
                {
                    child.InternalSetParent(null);
                }
                else
                {
                    child.Dispose();
                }

                return(child);
            }
            else
            {
                throw new Exception("Invalid child index");
            }
        }