2010-12-11 1 views
1

내가 플래시에서 실행 tuio 얻기 위해 노력하고 있어요는 I이 오류가 점점 오전 :인터페이스 방법 NEWFRAME은

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

임의의 도움이 크게 부과됩니다.

답변

0

인터페이스를 구현할 때 인터페이스에 정의 된 모든 메서드를 구현해야합니다. 귀하의 경우 ITuioListener 인터페이스에 정의 된 newFrame() 메서드는 TuioExampleDrawingCursor에서 구현되지 않았습니다. ITuioListener에서 newFrame() 메서드를 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 

자동차에서는 인터페이스 IDrivable을 가져 와서 구현합니다. IDrivable에 정의 된 startEngine(), stopEngine(), accelerate() 및 turn() 메서드는 Automobile에서 구현됩니다. 인터페이스 IDrivable에서

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

     function stopEngine():void 

     function accelerate():void 

     function turn(p_dir:String):void 

    }// end interface 

}// end package 

는 방법 startEngine() stopEngine()은 정의()을 가속 및 턴.

인터페이스에 메서드를 구현해야 할뿐만 아니라 해당 메서드에 일치하는 서명이 있어야합니다. 즉, 매개 변수와 반환 유형이 동일해야합니다.

관련 문제