嗨,我是新來的AS3,我想知道什麼是最好的方式來刪除一個孩子在一個點。 我試圖Actionscript 3刪除點
Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);
但是,這種回引發ArgumentError:錯誤#2025:提供的DisplayObject必須是調用者的子。
有什麼建議嗎?
嗨,我是新來的AS3,我想知道什麼是最好的方式來刪除一個孩子在一個點。 我試圖Actionscript 3刪除點
Holder.removeChild(Holder.getObjectsUnderPoint(new Point(exampleX, exampleY))[0]);
但是,這種回引發ArgumentError:錯誤#2025:提供的DisplayObject必須是調用者的子。
有什麼建議嗎?
的getObjectsUnderPoint()方法返回的DisplayObject,可能不一定是你的持有對象的直接孩子的陣列,它們可能是孫子還是盛大隆重的孩子等等
你可以設置條件像這樣的:
var objects:Array = Holder.getObjectsUnderPoint(yourPoint);
for each(var child:DisplayObject in objects)
{
if(child.parent == Holder)
Holder.removeChild(child) ;
}
Holder.contains沒有過濾嘴的,因爲它會返回孫子以及...我的錯!
我不知道爲什麼帕特里克版本不起作用。這是一個使用剪輯父級的替代(醜陋代碼)解決方案。
var clips : Array = _container.getObjectsUnderPoint(_point);
for each(var clip : DisplayObject in clips)
{
clip.parent.removeChild(clip);
}
它可能很醜,但它似乎工作,謝謝! – Dain 2010-12-14 09:27:29
好的試了一下。它通過Holder.contains(),但是當它試圖刪除它時仍會拋出相同的錯誤。奇怪的呵呵 – Dain 2010-12-14 07:15:26
剛剛意識到我錯過了一個圓括號:(你是否嘗試過這樣的代碼,或者你是否修改了它? – PatrickS 2010-12-14 07:55:31
是的,我選擇了它並添加它,我決定檢查對象數組中的父對象,它給了我的對象類型,而不是持有者:S。無論如何,我最終使用mattias醜陋的代碼解決方案 – Dain 2010-12-14 09:23:00