getObjectsUnderPoint()方法
public function getObjectsUnderPoint(point:Point):Array
傳回位於指定點底下,且屬於此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。
※此例, 以DisplayObjectContainer.getObjectsUnderPoint()方法, 取得與(200,200)座標重疊的物件陣列.
※aaa、bbb、ccc三個Shape物件配置於元件庫中, 並分別與外部extends Sprite的三個類別AAA、BBB、CCC綁定
1000607_getObjectsUnderPoint.swf
※ trace出來的結果 :
[object Shape],[object Shape],[object TextField] 0 : instance3 : [object Shape] 1 : instance9 : [object Shape] 2 : instance10 : [object TextField]
package { import flash.display.MovieClip; import flash.geom.Point; import flash.display.DisplayObjectContainer; import flash.display.Sprite; public class getObjectsUnderPoint_1000607 extends MovieClip { public var container:Sprite; public var aaa:Sprite; public var bbb:Sprite; public var ccc:Sprite; private var point:Point; public function getObjectsUnderPoint_1000607() { this.container = new Sprite(); this.addChild(this.container); this.createObjects(); this.point = new Point(200,200); var objectsArr:Array = this.getInfo(this.point); this.showInfo(objectsArr); return; } private function showInfo(_objectsArr:Array):void{ trace(_objectsArr); for (var i:String in _objectsArr){ trace(i + " : " + _objectsArr[i].name + " : " + _objectsArr[i]); } /*trace結果 [object Shape],[object Shape],[object TextField] 0 : instance3 : [object Shape] 1 : instance9 : [object Shape] 2 : instance10 : [object TextField]*/ return; } private function createObjects():void{ this.aaa = this.setObjects(aaa,AAA,264,226); this.bbb = this.setObjects(bbb,BBB,350,158); this.ccc = this.setObjects(ccc,CCC,188,154); return; } private function setObjects(_instance:*,_class:Class,_xPos:Number,_yPos:Number):Sprite{ _instance = new _class(); _instance.x = _xPos; _instance.y = _yPos; _instance.name = _instance.toString(); this.container.addChild(_instance); /*trace(_instance);*/ return _instance; } private function getInfo(_point:Point):Array{ var objectsArr:Array = this.getObjectsUnderPoint(_point); return objectsArr; } } }
沒有留言:
張貼留言