2010-12-11 14 views
1

ich versuche, in Flash zu bekommen TUIO läuft ein Ich erhalte diese Fehlermeldung:Schnittstelle Methode newFrame in Namespace-Fehler in Flash CS5

Line 10 1044: Interface method newFrame in namespace org.tuio:ITuioListener not implemented by class TuioExampleDrawingCursor.

ich bin nicht sicher, was über die Festsetzung es, wie ich zu tun bin nach einer längeren Pause wieder aufblitzen. Hier ist der Code, den es verwendet:

package { 

    import org.tuio.*; 
    import org.tuio.osc.*; 
    import org.tuio.connectors.*; 
    import flash.display.*; 
    import flash.ui.*; 
    import flash.events.*; 

    public class TuioExampleDrawingCursor extends MovieClip implements ITuioListener { 

    private var circleSize:Number; 

    private var tuio:TuioClient; 

    public function TuioExampleDrawingCursor(){ 

     this.circleSize = 10; 

     stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown); 

     stage.scaleMode = StageScaleMode.NO_SCALE; 
     stage.align = StageAlign.TOP_LEFT; 

     /* Uncomment the connection type you want to use 
     * comment or remove the other one 
     * LocalConnection is the connection method used by default 
     */ 

     this.tuio = new TuioClient(new LCConnector()); 
     this.tuio.addListener(this); 

     //this.tuio = new TuioClient(new TCPConnector()); 
     //this.tuio.addListener(this); 

    } 

    public function handleKeyDown(event:KeyboardEvent):void { 
     if (event.keyCode == Keyboard.DOWN){ 
     this.circleSize -= 2; 
     } else if (event.keyCode == Keyboard.UP){ 
     this.circleSize += 2; 
     } 
    } 

    public function addTuioCursor(tuioCursor:TuioCursor):void { 
     new Circle(tuioCursor.sessionID.toString(), stage, tuioCursor.x*stage.stageWidth, tuioCursor.y * stage.stageHeight, this.circleSize, 0xee3333); 
    } 

    public function updateTuioCursor(tuioCursor:TuioCursor):void { 
     var currentCircle:Circle = stage.getChildByName(tuioCursor.sessionID.toString()) as Circle; 
     currentCircle.x = tuioCursor.x*stage.stageWidth; 
     currentCircle.y = tuioCursor.y*stage.stageHeight; 
    } 

    public function removeTuioCursor(tuioCursor:TuioCursor):void { 
     var currentCircle:Circle = stage.getChildByName(tuioCursor.sessionID.toString()) as Circle; 
     stage.removeChild(currentCircle); 
    } 

    public function addTuioObject(tuioObject:TuioObject):void {} 
    public function updateTuioObject(tuioObject:TuioObject):void {} 
    public function removeTuioObject(tuioObject:TuioObject):void {} 
    public function addTuioBlob(tuioBlob:TuioBlob):void {} 
    public function updateTuioBlob(tuioBlob:TuioBlob):void {} 
    public function removeTuioBlob(tuioBlob:TuioBlob):void {} 
    } 
} 

jede Hilfe wäre sehr apperciated.

Antwort

0

Wenn Sie eine Schnittstelle implementieren, müssen Sie alle in der Schnittstelle definierten Methoden implementieren. In Ihrem Fall wurde die Methode newFrame(), die in der Schnittstelle ITuioListener definiert wurde, nicht in den TuioExampleDrawingCursor implementiert. Fügen Sie die Methode newFrame() von ITuioListener zu TuioExampleDrawingCursor hinzu und es sollte funktionieren.

Das Folgende ist ein Beispiel für eine Klasse die Implementierung einer Schnittstelle:

package 
{ 
    import com.Automobile; 
    import flash.display.MovieClip; 

    public class Main extends MovieClip 
    { 
     public function Main():void 
     { 
      init(); 

     }// end function 

     private function init():void 
     { 
      var automobile:Automobile = new Automobile(); 

     }// end function 

    }// end class 

}// end package 

In der Dokumentenklasse Main, die Klasse Automobile importiert und dann eine Instanz von Auto erstellt wird.

package com 
{ 
    import com.IDrivable; 

    public class Automobile implements IDrivable 
    { 
     public function Automobile():void {}// end function 

     public function startEngine():void 
     { 
      // start automobile's engine 

     }// end function 

     public function stopEngine():void 
     { 
      // stop automobile's engine 

     }// end function 

     public function accelerate():void 
     { 
      // accelerate automobile 

     }// end function 

     public function turn(p_dir:String):void 
     { 
      // turn automobile 

     }// end function 

    }// end class 

}// end package 

In der Klasse Automobile wird die Schnittstelle IDrivable importiert und implementiert. Die Methoden startEngine(), stopEngine(), accelerate() und turn(), die alle in IDrivable definiert sind, sind in Automobile implementiert.

package com 
{ 
    public interface IDrivable 
    { 
     function startEngine():void 

     function stopEngine():void 

     function accelerate():void 

     function turn(p_dir:String):void 

    }// end interface 

}// end package 

In der Schnittstelle IDrivable, die Methoden startEngine(), Anhalten(), Beschleunigung() und aktivieren() definiert sind.

Nicht nur müssen Sie die Methoden in der Schnittstelle implementieren, die entsprechenden Methoden müssen übereinstimmende Signaturen haben. Dies bedeutet, dass sie dieselben Parameter und Rückgabetypen haben müssen.

Verwandte Themen