簡體   English   中英

AS3 + Starling-查找未知的Sprite

[英]AS3 + Starling - Find Unknown Sprite

我有遺留代碼項目。 當Starling運行時,有時會顯示一些Sprite,並覆蓋所有應用程序。

在純Flash中,我使用“控制台” https://code.google.com/p/flash-console/wiki/GettingStarted在顯示樹中獲取對象層次結構。 但這對Starling無效。

我的想法是向根添加一些偵聽器,因為此Sprite在顯示列表樹中。 並找到誰是這個Spite的父母。 可能嗎?

並找到誰是這個Spite的父母。 可能嗎?

如果您試圖查找顯示對象,卻不知道它來自何處,則可以嘗試做的一件事是發生在框架事件中,跟蹤添加到顯示列表中的所有新精靈。 然后,您可以從那里向后工作。 例如。

  // keep track of unique display objects
  private var _displayList:Array = [];
  public function Main()
  {
      addEventListener( Event.ENTER_FRAME, trackDisplayList );
  }

  private function trackDisplayList( event:Event ):void
  {
      trackAsset( stage );
  }

  private function trackAsset( asset:* ):void
  {
      var i:int = -1;
      while( ++i < asset.numChildren )
      {
          var child:* = asset.getChildAt( i );
          if ( _displayList.indexOf( child ) == -1 )
          {
              _displayList.push( child );
              trace( "tracking display object: " + child.name );
          }
          if ( child.numChildren > 0 )
          {
              trackAsset( child );
          }
      }
  }

希望您沒有大量的精靈可以進行排序! 這是您可以遞歸檢查所有唯一顯示對象的一種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM