2010-01-01 23 views
5

Sto tentando di aggiungere un listener di eventi alla mia BitMap. Tile estende gameProps, che estende BitMap. Provo a utilizzare addEventListener. Non funziona. ma i documenti Adobe dicono che Bitmap ha un oggetto addEventListener.BitMap Eventlistener non funzionante

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");    
       } 

      } 
     } 

risposta

5

La classe Bitmap estende la DisplayObject non l'InteractiveObject e quindi non può ricevere eventi del mouse. Prova a racchiudere l'oggetto bitmap in una sottoclasse Sprite. Qualcosa di simile (pseudo-codice):

public class Image extends Sprite 
{ 
    var bitmap:Bitmap; 

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

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

+0

O, stavo guardando la documentazione e ha detto che ha ereditato EventDispatcher, in modo più esso ha mostrato uno dei suoi metodi di essere addEventlistner. Non so perché. Ma sto cercando di essere il più leggero possibile. Sto piastrellando e usando gli sprite rallenta il mio scorrimento. C'è una soluzione migliore ? – numerical25

+0

@ numical25: continua a leggere la documentazione, e vedrai che solo perché qualcosa è un EventDispatcher, non significa che reagisce agli eventi del mouse. Tutti gli oggetti di visualizzazione sono dispatcher di eventi, per poter inviare eventi come ADDED_TO_STAGE e REMOVED_FROM STAGE. – richardolsson

+0

sì, ma ha anche mostrato addeventlistner come metodo http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Bitmap.html. Non sto dicendo che voi ragazzi avete torto. Sono completamente d'accordo. ma mi ha semplicemente buttato via un po '. ma grazie per il tuo aiuto. Lo apprezzo molto. – numerical25