[英]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.