0

Paint em AS3

Posted by Eduardo Brito on 15:10
Hoje, vamos criar um paint em que o mouse é o lápis que desenha aonde vc arrasra, é muito fácil por isso vamos começar!

veja o resultado AQUI

1.Crie um novo documento em AS3 no flash e salve ele limpo (não faça nada) em uma pasta chamada paint (que vc vai criar), e nomeie o .fla de "paint" (nossa!).

Image and video hosting by TinyPic

2.Agora crie um arquivo actionscript e digite o seguinte código:
(explicação no action)

package {
//importando as linhas para o stage
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.geom.Point;

//definindo as variáveis
public class paint extends MovieClip {
var paintStage:BitmapData=new BitmapData(550,400,false,0xFFFFFF);
var paintDisplay:Bitmap=new Bitmap(paintStage);
var drawing:Boolean=new Boolean(false);

var vx:Number=new Number(2);
var vy:Number=new Number(2);
var len:uint=new uint;
var i:uint=new uint();

var p0:Point=new Point();
var p1:Point=new Point();

//ao clicar do mouse...
public function paint() {
addChild(paintDisplay);
stage.addEventListener(MouseEvent.MOUSE_DOWN,md);
stage.addEventListener(MouseEvent.MOUSE_UP,mu);
stage.addEventListener(MouseEvent.MOUSE_MOVE,mm);
}
function md(event:MouseEvent) {
drawing=true;
p0.x=event.stageX;
p0.y=event.stageY;
p1.x=p0.x;
p1.y=p0.y;
}
function mu(event:MouseEvent) {
drawing=false;
}
//tamanho da linha, e cor
function mm(event:MouseEvent) {
if (drawing) {
p1.x=event.stageX;
p1.y=event.stageY;
paintStage.setPixel(event.stageX,event.stageY,0x000000);
vx=p1.x-p0.x;
vy=p1.y-p0.y;
len=Math.sqrt(vx*vx+vy*vy);
vx/=len;
vy/=len;
for (i=0; i paintStage.setPixel(p0.x+(vx*i),p0.y+(vy*i),0x000000);
}
p0.x=p1.x;
p0.y=p1.y;
}
}
}
}


3.agora slave o arquivo ActionScript no mesma pasta do .fla

Image and video hosting by TinyPic

4.agora coloque o frame rate em 120, e o document class "paint" como mostra a imagem a baixo:

Image and video hosting by TinyPic

Até a próxima!
fonte : http://boxmonster.890m.com/wordpress/?p=123

Copyright © 2009 .:EBL Design:. All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive. Distribuído por Templates