0

你能帮我解决这个问题吗:我已经创建了形状并使用相同的侦听器函数将鼠标单击侦听器放在它们上面,但该函数没有被调用。

   shape:Shape = new Shape
   shape.graphics.beginFill(color); 
   shape.graphics.drawRoundRect(rx, ry, cWidth, cHeigth, ellipseHeight, ellipseHeight);
   shape.graphics.endFill();
   shape.addEventListener(MouseEvent.CLICK, onMouseClick);
   areaSprite.addChild(shape);


   private function onMouseClick(ev:MouseEvent):void {
      // some code
      ..........
   }

我在这里做错了什么?你可以帮帮我吗 ?

4

1 回答 1

1

形状对象是非交互式的,因此它们不会触发鼠标事件等。

使用继承自 InteractiveObject 的另一个对象,而不是使用 Shape。雪碧可能是一个不错的选择。

但是,如果我对图形对象做某事,我总是将我的对象声明为 MovieClip。

shape:Sprite = new Sprite();

或者

shape:MovieClip = new MovieClip();

在此处查看 Shape 的继承事件; http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Shape.html

...并在此处与 Sprite 的继承事件进行比较; http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Sprite.html

于 2013-07-19T00:21:45.843 回答