2012-07-24 6 views
0

현재 온라인으로 플래시 튜토리얼을 따라 대화 형 스케치 패드를 만듭니다. 튜토리얼에 대한 링크는 http://flashexplained.com/actionscript/making-an-interactive-drawing-sketchpad/입니다.ActionScript 2.0 코드를 ActionScript 3.0으로 변환

이 튜토리얼의 유일한 문제점은 코드가 3.0 대신에 actionscript 2.0에 대한 것입니다. 나는 변수를 재정의하는 방법을 알고 있지만 그 외에 나는 단서가있다. 그래서 누군가가 코드를 ActionScript 3.0으로 변환하는 것을 도울 수 있기를 바랬다.

여기은 ActionScript 2.0 코드 :

lineThickness = 0; 
selectedColor = "0x000000"; 

_root.onMouseDown = startDrawing; 
_root.onMouseUp = stopDrawing; 

function startDrawing() 
{ 
    if(_xmouse < 455) 
    { 
     _root.lineStyle(lineThickness, selectedColor); 
     _root.moveTo(_root._xmouse, _root._ymouse); 
     _root.onMouseMove = drawLine; 
    } 
} 

function drawLine() 
{ 
    _root.lineTo(this._xmouse, this._ymouse); 
} 


function stopDrawing() 
{ 
    delete this.onMouseMove; 
} 

line0.onPress = function() 
{ 
    lineThickness = 0; 
} 

line3.onPress = function() 
{ 
    lineThickness = 3; 
} 

line6.onPress = function() 
{ 
    lineThickness = 6; 
} 

colorRed.onPress = function() 
{ 
    selectedColor = "0xFF0000"; 
} 

colorGreen.onPress = function() 
{ 
    selectedColor = "0x00FF00"; 
} 

답변

3

AS2 :

lineThickness = 0; 
selectedColor = "0x000000"; 

AS3 :

var lineThickness:int = 0; 
var selectColor:uint = 0x000000; 

AS2 :

_root.onMouseDown = startDrawing; 
_root.onMouseUp = stopDrawing; 

function startDrawing() 
{ 
    if(_xmouse < 455) 
    { 
     _root.lineStyle(lineThickness, selectedColor); 
     _root.moveTo(_root._xmouse, _root._ymouse); 
     _root.onMouseMove = drawLine; 
    } 
} 

function stopDrawing() 
{ 
    delete this.onMouseMove; 
} 

function drawLine() 
{ 
    _root.lineTo(this._xmouse, this._ymouse); 
} 

AS3 :

stage.addEventListener(MouseEvent.MOUSE_DOWN, startDrawing); 
stage.addEventListener(MouseEvent.MOUSE_UP, stopDrawing); 

function startDrawing(e:MouseEvent):void 
{ 
    if(mouseX < 455) 
    { 
     this.graphics.lineStyle(lineThickness, selectedColor); 
     this.graphics.moveTo(mouseX, mouseY); 

     stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove); 
    } 
} 

function stopDrawing(e:MouseEvent):void 
{ 
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove); 
} 

function mouseMove(e:MouseEvent):void 
{ 
    this.graphics.lineTo(mouseX, mouseY); 
} 
,691,363 (210)

AS2 :

line0.onPress = function() 
{ 
    lineThickness = 0; 
} 

line3.onPress = function() 
{ 
    lineThickness = 3; 
} 

line6.onPress = function() 
{ 
    lineThickness = 6; 
} 

colorRed.onPress = function() 
{ 
    selectedColor = "0xFF0000"; 
} 

colorGreen.onPress = function() 
{ 
    selectedColor = "0x00FF00"; 
} 

AS3 :

line0.addEventListener(MouseEvent.CLICK, changeLine); 
line3.addEventListener(MouseEvent.CLICK, changeLine); 
line6.addEventListener(MouseEvent.CLICK, changeLine); 
colorRed.addEventListener(MouseEvent.CLICK, changeColor); 
colorGreen.addEventListener(MouseEvent.CLICK, changeColor); 

function changeLine(e:MouseEvent):void 
{ 
    switch(e.currentTarget) 
    { 
     default: lineThickness = 1; break; 

     case line0: lineThickness = 0; break; 
     case line3: lineThickness = 0; break; 
     case line6: lineThickness = 0; break; 
    } 
} 

function changeColor(e:MouseEvent):void 
{ 
    switch(e.currentTarget) 
    { 
     default: selectedColor = 0x000000; 

     case colorRed: selectedColor = 0xFF0000; break; 
     case colorGreen: selectedColor = 0x00FF00; break; 
    } 
} 

추가 (그래픽을 지우) :

eraser_btn.addEventListener(MouseEvent.CLICK, erase); 
function erase(e:MouseEvent):void 
{ 
    this.graphics.clear(); 
} 
+0

코드를 복사하고 플래시를 테스트 한 결과 "1120 : 정의되지 않은 속성의 액세스가 selectedColor"라는 오류 메시지가 나타납니다. 어떻게 든 그것을 정의해야합니까? – Learn123

+0

1120 오류가 수정되었습니다. 변수를 맨 위에 선언하면 selectedColor 대신 selectColor를 입력했습니다. 그러나 다음과 같은 오류 메시지가 나타납니다. Error # 1063 : paintcanvas_fla :: MainTimeline/stopDrawing()에서 인수 개수가 일치하지 않습니다. 0 일 예정, 1을 얻었습니다. 무슨 의미입니까? – Learn123

+0

@ Learn123'e : MouseEvent'를 stopDrawing()에 추가하십시오. – Marty

0

난 당신이 http://www.actionscriptcheatsheet.com/downloads/as3cs_migration.pdf

을 읽을 수는 있지만 권장, 여기에 몇 가지 팁입니다. A 이벤트 리스너가

object.removeEventListener(Event.EVENT_TYPE,myFunction); 
를 사용하면

_root.lineStyle(lineThickness, selectedColor); 
_root.moveTo(_root._xmouse, _root._ymouse); 

의 경우이

object.addEventListener(Event.EVENT_TYPE,myFunctionToHandleTheEvent); 

과 같은 코드

이벤트 당신은 제거하려면이

this.graphics.lineStyle(lineThickness, selectedColor); 
this.graphics.moveTo(stage.mouseX, stage.mouseY); 

를 사용 0

+0

감사, 내가 먼저 제공된 링크 볼 것이다 . – Learn123

+0

참고 - 링크가 끊어졌습니다. – HungryBeagle

관련 문제