Coloriage avec colortrasform -finale

Description

coloriage
une nouvelle mise à jour cette fois c'est la version finale.
avec l'option print par le code printJob

Source / Exemple :


import flash.events.MouseEvent;
import flash.events.Event;

//imprimer stage
function PrintStage(evt:MouseEvent) {
var printJob:PrintJob = new PrintJob();
var options:PrintJobOptions = new PrintJobOptions();
options.printAsBitmap = true;// convertir le stage ne image bitmap avant d'imprimer
if (printJob.start()) {
var printSprite = new Sprite();
var bitmapData:BitmapData = new BitmapData(570,750);//taille
bitmapData.draw(stage);
var screenShot:Bitmap = new Bitmap(bitmapData);
printSprite.addChild(screenShot);
printSprite.x = 2000; //creé le bitmap dans un sprite et le placer loin à x=2000 c'est à dire hors scéne
stage.addChild(printSprite); //ajouter le sprite dans le stage pour ne pas imprimer une image blanche
var myScale:Number;
myScale = Math.min(printJob.pageWidth/printSprite.width, printJob.pageHeight/printSprite.height);
printSprite.scaleX = printSprite.scaleY = myScale;
var printArea:Rectangle = new Rectangle(0, 0, printJob.pageWidth/myScale, printJob.pageHeight/myScale);
printJob.addPage(printSprite,printArea,options);
printJob.send();
stage.removeChild(printSprite);
printSprite = null;
}
}bb_btn.addEventListener(MouseEvent.CLICK,PrintStage);//bouton de commende d'impression

//remplacer la sourie par pinceau
Mouse.hide();
 
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveThatMouse);

function moveThatMouse(evt:MouseEvent):void {
    brush_mc.x = stage.mouseX;
    brush_mc.y = stage.mouseY;
    evt.updateAfterEvent();
}
//coloriage au click de tous clip sur stage
var myColor:ColorTransform =this.transform.colorTransform;
//myColor.color = 0xFFFFFF;
this.buttonMode =true;
function coloriage (event:MouseEvent):void{
event.target.transform.colorTransform = myColor;
}this.addEventListener (MouseEvent.CLICK,coloriage);
//colorer le bout du pinceau" picker" par la couleur choisi et déplacer avec le pinceau
function info(event:Event):void{
cactif_mc.transform.colorTransform = myColor;// colorer l'anneau du "couleur actif"
picker_mc.transform.colorTransform = myColor;
picker_mc.x=brush_mc.x;
picker_mc.y=brush_mc.y;
}stage.addEventListener (Event.ENTER_FRAME ,info);
// choisir une couleur par passage du pinceau sur une couleur donnée
function changecolor(event:MouseEvent):void{
	switch (event.target) {
  case red_mc :
  myColor.color = 0x990000;
   break;
  case green_mc :
   myColor.color = 0x00FF00;
   break;
  case bl_mc :
   myColor.color = 0x000099;
   break;
    case ja_mc :
   myColor.color = 0xFFCC00;
   break;
    case blc_mc :
   myColor.color = 0x00FFFF;
   break;
    case no_mc :
   myColor.color = 0x000000;
   break;
   case v1_mc :
  myColor.color = 0xFF9999;
   break;
  case v2_mc :
   myColor.color = 0xCCCC66;
   break;
  case v3_mc :
   myColor.color = 0x0033CC;
   break;
    case v4_mc :
   myColor.color = 0xCC3399;
   break;
    case orange_mc :
   myColor.color = 0xFF6600;
   break;
    case v6_mc :
   myColor.color = 0x003300;
   break;
    case pl1 :
  myColor.color = 0xFFFF00;
   break;
  case pl2 :
   myColor.color = 0xCCFFCC;
   break;
  case pl3 :
   myColor.color = 0x0099FF;
   break;
    case pl4 :
   myColor.color = 0x006666;
   break;
    case pl5 :
   myColor.color = 0x00CC00;
   break;
    case pl6 :
   myColor.color = 0x99FF66;
   break;
   case pl7 :
  myColor.color = 0x999999;
   break;
  case pl8 :
   myColor.color = 0x666666;
   break;
  case pl9 :
   myColor.color = 0xCC3333;
   break;
    case pl10 :
   myColor.color = 0xCC9933;
   break;
    case pl11 :
   myColor.color = 0xCC66FF;
   break;
    case gomme :
   myColor.color = 0xFFFFFF;
   break;
    
   }
	
}stage.addEventListener(MouseEvent.MOUSE_OVER,changecolor);
// la gomme 
function cgomme(event:MouseEvent ):void{
	this.removeEventListener (MouseEvent.CLICK,coloriage);// pour ne pas colorer la comme par clique
}gomme.addEventListener(MouseEvent.MOUSE_OVER,cgomme);
bb_btn.addEventListener(MouseEvent.MOUSE_OVER,cgomme);
function ngomme(event:MouseEvent ):void{
	this.addEventListener (MouseEvent.CLICK,coloriage);
}gomme.addEventListener(MouseEvent.MOUSE_OUT,ngomme);
bb_btn.addEventListener(MouseEvent.MOUSE_OUT,ngomme);

Conclusion :


j'ai compris que le travaille le plus dure est de découpés l'image en MovieClip et c'est exactement la que j'ai compris que tous les swf de coloriages sur le net ne sont pas bien travaillés car au maximum une image présente entre 8 et 12 partie a colorés alors que dans mon swf on compte plus de 100 détail avec d'autre possibilités mais c'est normale j'ai rester plus de 3 heures pour découper l'image
AS3 du .fla est simple à comprendre.

merci à TOP30 et Peg pour BitmapData.floodFill(); c'est très utile.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.