Beispiel #1
0
        /// <summary>
        /// 指定した子オブジェクトをこのインスタンスから削除する。
        /// </summary>
        /// <param name="child">削除する子オブジェクト</param>
        /// <remarks>実際に削除されるのはこのメソッドを呼び出したフレームの最後になるので注意が必要。</remarks>
        public void RemoveChild(Object2D child)
        {
            var e = new EventToManageFamilyship2D(this, child);

            e.SetUpAsRemoveEvent();
            Engine.ChangesToBeCommited.Enqueue(e);

            if (child.IsInheriting(ChildManagementMode.RegistrationToLayer))
            {
                Layer.RemoveObject(child);
            }
            child.ParentInfo = null;
        }
Beispiel #2
0
 internal void SyncContainerWithChild(Object2D child)
 {
     if (child.IsInheriting(ChildManagementMode.RegistrationToLayer))
     {
         if (child.Layer != null && child.Layer != Layer)
         {
             child.Layer.RemoveObject(child);
         }
         if (child.Layer == null && Layer != null)
         {
             Layer.AddObject(child);
         }
     }
 }