2015-01-03 1 views
0

저는 as3의 초보자이며 간단한 플래시 스케치 스크립트를 따라갔습니다. 다음은 링크 입니다. as2로 코딩되었지만 코드를 as3으로 변환하려고합니다. 코드를 as3으로 변환하려고 시도했지만 제대로 작동하지 않는 것 같습니다. 나는 누군가가 저를 도울 수있는 것을 깊이 감사 할 것입니다.간단한 스크립트를 actionscript2에서 actionscript3으로 변환

createEmptyMovieClip("Line",1); 
Line.lineStyle(3,0x000000,300); 

onMouseDown = function() { 
    Line.moveTo(_xmouse, _ymouse); 
    onMouseMove = function() { 
     Line.lineTo(_xmouse, _ymouse); 
    } 
} 

onMouseUp=function() { 
    onMouseMove=null; 
} 
+0

당신이 시도한 것을 공유하십시오. & 올바른 정보를 제공해 드리겠습니다. – loxxy

답변

1

이 AS3에서 줄 것이다 : 나는 당신이 어떻게 작동하는지 이해할 수 있도록, 전체 작업 예제를 만들하기로 결정

var Line:Sprite = new Sprite(); 
addChild(Line); 
Line.graphics.lineStyle(3, 0x000000, 1); 

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); 
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); 

function mouseDownHandler(e:MouseEvent):void { 
    Line.graphics.moveTo(e.stageX, e.stageY); 
    stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); 
} 

function mouseMoveHandler(e:MouseEvent):void { 
    Line.graphics.lineTo(e.stageX, e.stageY); 
} 

function mouseUpHandler(e:MouseEvent):void { 
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); 
} 
2

;

package { 
    import flash.display.Shape; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 

    /** 
    * ... 
    * @author Martyn 
    */ 
    public class Main extends Sprite { 

     public var draw:Shape = new Shape(); 

     public function Main():void { 
      if (stage) init(); 
      else addEventListener(Event.ADDED_TO_STAGE, init); 
     } 

     private function init(e:Event = null):void { 
      removeEventListener(Event.ADDED_TO_STAGE, init); 
      stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 
      stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); 

      trace("init"); 
      addChild(draw); 
      draw.graphics.lineStyle(3, 0x000000, 300); 

     } 
     private function onMouseDown(e:MouseEvent):void 
     { 
      stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); 
      draw.graphics.moveTo(mouseX, mouseY); 
      trace("onMouseDown"); 
     } 

     private function onMouseUp(e:MouseEvent):void 
     { 
      stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); 
      trace("onMouseUp"); 
     } 

     private function onMouseMove(e:MouseEvent):void 
     { 
      draw.graphics.lineTo(mouseX, mouseY); 
      trace("onMouseMove"); 
     } 

    } 

} 

이 기능이 도움이되기를 바랍니다.

+0

지금이 사실을 이해하려고 노력 중입니다. 도움을 많이 부탁드립니다. –

+0

@p ppt - 문제 없습니다. 왜 내가 init() 내부에서 일부 코드를 선언했는지 모르겠다면 클래스가 이벤트 리스너를 추가하고 addchild()를 호출 할 때 클래스가 스테이지에 대한 참조에 액세스 할 수 있는지 확인하는 것입니다. init 함수 사용에 대한 다른 주제를 찾을 수 있습니다. –