2012-01-15 45 views
0

我想知道如何檢測位於哪個圖層上的實例。例如,我在第一個圖層上放置了一個名爲bob的圓,第二個圖層上放了一個名爲test的正方形。在actionscript中,我可以檢測哪一層是測試。如何檢測位於哪個圖層上

我想使用這個,因爲在我的遊戲中,我會把第一層上的所有非固體對象和第二層上的所有固體對象,我想在動作中檢測哪些實例位於哪個層

+0

我相信在ActionScript中沒有Flash創作工具的圖層概念,並且各種圖層僅由代碼解釋爲舞臺子項的排序。我很久沒有使用過Flash創作工具,所以我不記得了。 – jhocking 2012-01-15 14:51:37

回答

2

在actionscript 3中沒有層次這樣的東西。對於Flash IDE用戶來說,只有對某些元素進行分組只是一種方便,直到發生實際的SWF編譯爲止。在編譯時,根據圖層的層次將所有對象添加到stage,但它們都屬於具有不同childIndex屬性的相同stage對象。 要使用層的概念在ActionScript 3,您應該在實體對象添加到SpriteMovieClip,然後檢查,有問題的實例是否屬於固體或沒有,像這樣:

var solidContainer:Sprite = new Sprite(); 
this.addChild(solidContainer); 
solidContainer.addChild(someSolidObject); 

var nonSolidContainer:Sprite = new Sprite(); 
this.addChild(nonSolidContainer); 
nonSolidContainer.addChild(someNonSolidObject); 

function isSolid(object:DisplayObject):Boolean { 
    if (solidContainer.contains(object)) { 
    return true; 
    } else { 
    return false; 
    } 
} 

isSolid(someNonSolidObject); // returns false 
相關問題