在 ActionScript3 中,鼠标交互被主类实例的矢量绘图忽略
通过一个 .swf 文件的主类的实例变量 graphics 绘制的矢量内容有关的鼠标交互不会触发鼠标事件。然而,和通过 InteractiveObject 或其子类的任何其它实例的实例变量 graphics 绘制的矢量内容有关的鼠标交互能够触发鼠标事件。如样例代码:
1 package { 2 3 import flash.display.*; 4 import flash.events.*; 5 6 public class EventFlowTest extends Sprite { 7 8 private var button:Sprite; 9 10 public function EventFlowTest() { 11 12 addEventListener(Event.ADDED_TO_STAGE, init); 13 14 } 15 16 private function init(e:Event = null):void { 17 18 stage.addEventListener(MouseEvent.MOUSE_DOWN,stageMouseDown,false); 19 20 graphics.beginFill(0xff0000); 21 graphics.drawCircle(100,100,100); 22 addEventListener(MouseEvent.MOUSE_DOWN,spriteMouseDown,false); 23 24 button=new Sprite(); 25 addChild(button); 26 button.graphics.beginFill(0x00ff00); 27 button.graphics.drawCircle(100,100,10); 28 button.addEventListener(MouseEvent.MOUSE_DOWN,buttonMouseDown,false); 29 30 } 31 32 private function stageMouseDown(e:MouseEvent):void { 33 trace("stage"); 34 } 35 36 private function spriteMouseDown(e:MouseEvent):void { 37 trace("sprite"); 38 } 39 40 private function buttonMouseDown(e:MouseEvent):void { 41 trace("button"); 42 } 43 44 } 45 46 }
浙公网安备 33010602011771号