Конвертировать простой код Flash AS2 в AS3 - PullRequest
0 голосов
/ 24 марта 2011

Я новичок в Flash и следую учебному пособию: http://www.webwasp.co.uk/tutorials/018/tutorial.php ... чтобы научиться создавать эффект "живого рисования / рисования".Я не осознавал, что, если бы я сделал что-то в AS2, я бы не смог встроить это (и заставить это работать) в свой корневой файл AS3, где у меня есть куча других вещей, происходящих.Я попробовал следующие советы о том, как изменить код AS2 на AS3, но он просто не работает.Я знаю, что это простой код, и что какой-то гений может понять это, но я в растерянности.Пожалуйста, помогите!

Вот код AS2:

_root.createEmptyMovieClip("myLine", 0);

_root.onMouseDown = function() {
   myLine.moveTo(_xmouse, _ymouse);
   ranWidth = Math.round((Math.random() * 10)+2);
   myLine.lineStyle(ranWidth, 0xff0000, 100);
   _root.onMouseMove = function() {
      myLine.lineTo(_xmouse, _ymouse);
   }
}

_root.onMouseUp = function() {
   _root.onMouseMove = noLine;
}

1 Ответ

6 голосов
/ 25 марта 2011

Вот точно такая же вещь в AS3

import flash.display.Sprite;
import flash.events.MouseEvent;

var ranWidth:Number;

//creation of a new clip (Sprite is the base class of MovieClip, 
//it's the same without the unneeded timeline)
var myLine:Sprite = new Sprite();
addChild(myLine);

//in AS3 the main container is stage, not _root
//you see here the main difference between beginner AS3 and beginner AS2: 
//event listeners
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 


function onMouseDown(event:MouseEvent):void
{
    myLine.graphics.moveTo(mouseX, mouseY);
    ranWidth = Math.round((Math.random() * 10)+2);
    myLine.graphics.lineStyle(ranWidth, 0xff0000, 100);
    stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
    stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}

//nesting function in other functions is not a good practice
function onMouseMove(event:MouseEvent):void
{
    myLine.graphics.lineTo(mouseX, mouseY);
}

function onMouseUp(event:MouseEvent):void
{
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
    stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
...