在 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 }
posted @ 2012-06-15 11:05  古树悬叶  阅读(184)  评论(0)    收藏  举报