Allora, in AS3
1. Crea un nuovo documento delle dimensioni dell'immagine che vuoi visualizzare.
2. Importala sullo stage e convertila in un MovieClip a cui dai nome istanza: immagine_mc
3. Crea un secondo livello e importa la seconda immagine che farà da "copertura" all'immagine sul livello 1.
4. Converti anche questa seconda immagine in un MovieClip e dai nome istanza: sfondo_mc
5. Crea un altro livello in cui inserire il codice:
Codice PHP:
var img_data:BitmapData;
var matita:MovieClip;
var dimensione_matita:Number = 20;
inizializza();
function inizializza():void
{
matita = new MovieClip ;
addChild(matita);
img_data = new BitmapData(immagine_mc.width,immagine_mc.height,true,0xFFFFFFFF);
img_data.draw(immagine_mc);
matita.graphics.lineStyle(dimensione_matita);
matita.graphics.lineBitmapStyle(img_data);
matita.graphics.moveTo(mouseX,mouseY);
aggiungiAscoltatori();
}
function aggiungiAscoltatori():void
{
stage.addEventListener(MouseEvent.MOUSE_DOWN,avviaDisegna);
stage.addEventListener(MouseEvent.MOUSE_UP,stopDisegna);
}
function avviaDisegna(evt:MouseEvent):void
{
matita.graphics.moveTo(mouseX,mouseY);
matita.removeEventListener(Event.ENTER_FRAME,disegna);
matita.addEventListener(Event.ENTER_FRAME,disegna);
}
function disegna(evt:Event):void
{
matita.graphics.lineTo(mouseX,mouseY);
}
function stopDisegna(evt:MouseEvent):void
{
matita.removeEventListener(Event.ENTER_FRAME,disegna);
}
In pratica, si crea un MC che sarà la "matita" e a cui si danno le dimensioni del segno che dovrà tracciare in relazione alle coordinate mouseX e mouseY.
Si crea una bitmapData delle dimensioni del MC sul primo livello livello dello stage, quello che abbiamo nominato con "immagine_mc".
Con il metodo .graphics.lineBitmapStyle applicato al clip "matita" stabiliamo il contenuto (dati/pixel) che saranno disegnati ovvero, i dati bitmap dell'immagine presente sul livello 1.
ciao