2010-12-11 71 views
1

我试图让TUIO在闪存中运行的我得到这个错误:接口方法newFrame的闪光灯CS5

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

我不知道该怎么做将其固定为我在延长的间隙之后,再学习闪光。这里是它使用的代码:

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 {} 
    } 
} 

任何帮助将大大apperciated。

回答

0

当你实现一个接口时,你必须实现接口中定义的所有方法。在你的情况下,在接口ITuioListener中定义的方法newFrame()尚未在TuioExampleDrawingCursor中实现。将方法newFrame()从ITuioListener添加到TuioExampleDrawingCursor,它应该可以工作。

下面是实现一个接口的类的例子:

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 

在文档类主,汽车是进口的类,然后创建汽车的一个实例。

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 

在class Automobile中,接口IDrivable被导入并实现。在Automobile中实现了所有在IDrivable中定义的方法startEngine(),stopEngine(),accelerate()和turn()。

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

     function stopEngine():void 

     function accelerate():void 

     function turn(p_dir:String):void 

    }// end interface 

}// end package 

在接口IDrivable中,定义了方法startEngine(),stopEngine(),accelerate()和turn()。

不仅要在接口中实现方法,相应的方法必须具有匹配的签名。这意味着它们必须具有相同的参数和返回类型。