getObjectsUnderPoint

by 9re
♥0 | Line 35 | Modified 2011-01-11 16:51:32 | MIT License
play

ActionScript3 source code

/**
 * Copyright 9re ( http://wonderfl.net/user/9re )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/lCq6
 */

package {
    import flash.geom.Point;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.display.DisplayObject;
    import flash.display.Shape;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var tf:TextField = new TextField;
            tf.name = 'textfield_0';
            tf.width = tf.height = 465;
            addChild(tf);
            
            new Array(3).forEach(function (_:*, i:int, arr:Array):void {
                var sp:Shape = new Shape;
                sp.name = 'shape_' + i;
                sp.graphics.beginFill(0xff << (i * 8));
                sp.graphics.drawRect(0, 0, 100, 100);
                sp.x = sp.y = 365 >> 1;
                addChild(sp);
            });
            
            addEventListener(MouseEvent.MOUSE_DOWN, function ():void {
                var objects:Array = stage.getObjectsUnderPoint(new Point(stage.mouseX, stage.mouseY));
                if (objects) {
                    log(objects.map(function (obj:DisplayObject, ...rest):String {
                        return obj.name;
                    }));
                }
            });
            
            function log(...o:Array):void {
                tf.appendText(o ? o.join(' ') + '\n' : '\n');
            }
        }
    }
}