2010-01-01 39 views
5

Ich versuche, einen Event Listener zu meiner BitMap hinzuzufügen. Tile erweitert gameProps, wodurch BitMap erweitert wird. Ich versuche, addEventListener zu verwenden. Das funktioniert nicht. aber die Adobe-Dokumente sagen, dass Bitmap ein addEventListener-Objekt hat.BitMap Eventlistener funktioniert nicht

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

      } 
     } 

Antwort

5

Die Bitmap-Klasse erweitert das DisplayObject nicht das InteractiveObject und kann daher keine Mausereignisse empfangen. Versuchen Sie, das Bitmap-Objekt in einer Sprite-Unterklasse zu umbrechen. Etwa wie folgt (Pseudocode):

public class Image extends Sprite 
{ 
    var bitmap:Bitmap; 

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

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

+0

O, war ich bei der Dokumentation suchen und es wird gesagt es Eventdispatcher geerbt, so plus es zeigte eine seiner Methoden addEventlistner sein. Nicht sicher warum. Aber ich versuche so leicht wie möglich zu sein. Ich kachele und benutze Sprites, um mein Scrollen zu verlangsamen. Gibt es eine bessere Lösung? – numerical25

+0

@ numeric25: Lesen Sie weiter die Dokumentation, und Sie werden sehen, dass, weil etwas ein EventDispatcher ist, es nicht bedeutet, dass es auf Mausereignisse reagiert. Alle Anzeigeobjekte sind Ereignis-Dispatcher, um Ereignisse wie ADDED_TO_STAGE und REMOVED_FROM STAGE absetzen zu können. – richardolsson

+0

ja, aber es zeigte auch addeventlistner als Methode http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Bitmap.html. Ich sage nicht, dass ihr falsch seid. Ich stimme vollkommen zu. aber es hat mich nur ein wenig abgeworfen. aber danke für deine Hilfe. Ich schätze es sehr. – numerical25