2010-01-01 9 views
5

Estoy intentando agregar un detector de eventos a mi BitMap. Tile extiende gameProps, que amplía BitMap. Intento utilizar addEventListener. Eso no funciona pero los documentos de Adobe dicen que Bitmap tiene un objeto addEventListener.BitMap Eventlistener no funciona

package { 
      import flash.display.BitmapData; 
      import flash.events.*; 
      import flash.events.MouseEvent; 
      import flash.geom.Rectangle; 
      import flash.geom.Point; 

      public class Tile extends gameProps { 

       public var tileNum:Number = 0; 


       public function Tile(tileNumber:Number):void 
       { 
        tileNum = tileNumber;   
        addEventListener(MouseEvent.MOUSE_OVER, respond); 
       } 


       public function respond(e:MouseEvent):void 
       { trace("HELLO");    
       } 

      } 
     } 

Respuesta

5

La clase Bitmap extiende el DisplayObject no el InteractiveObject y, por lo tanto, no puede recibir eventos del mouse. Intente envolver el objeto de mapa de bits en una subclase de Sprite. Algo como esto (pseudo-código):

public class Image extends Sprite 
{ 
    var bitmap:Bitmap; 

    public function Image() 
    { 
     bitmap = new Bitmap(); 
     addChild(bitmap); 
    } 
} 

InteractiveObject Docs: http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/InteractiveObject.html

+0

O, que estaba mirando los docs y que indican que se hereda EventDispatcher, por lo que además de que mostraron uno de sus métodos que se addEventlistner. No estoy seguro por qué. Pero estoy tratando de ser lo más ligero posible. Estoy haciendo mosaicos y usar sprites ralentiza mi desplazamiento. hay una mejor solución? – numerical25

+0

@ numerical25: sigue leyendo la documentación, y verás que el hecho de que algo sea un EventDispatcher no significa que reaccione a los eventos del mouse. Todos los objetos de visualización son despachadores de eventos para poder enviar eventos como ADDED_TO_STAGE y REMOVED_FROM STAGE. – richardolsson

+0

sí, pero también mostró addeventlistner como un método http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Bitmap.html. sin decir que ustedes están equivocados. Estoy completamente de acuerdo. pero solo me desanimó un poco. Pero gracias por su ayuda. Lo aprecio mucho. – numerical25

Cuestiones relacionadas