Bonjour à tous, voila j'ai un problème assez corsé.
D'habitude , j'y arrive seul mais la je seche.
J'ai téléchargé la superbe classse "DistortImage" de kiroukou :
ici pour voirCette classe permet de deformer des clips.
J'ai un clip ou je fais un loadclip pour lui charger une image et j 'applique ma classe pour la deformer.
Jusque la ca va
Les problemes commencent quand je duplique ces clip dynamiquement , la ca marche plus.
Voici mo code : (qui fonctionne avec la classe)
import DistortImage;
import flash.display.BitmapData;
angle = -Math.PI/4;
import DistortImage;
import flash.display.BitmapData;
angle = -Math.PI/4;
for (i=0; i<nb; i++) {
myMc.btBox.bt.duplicateMovieClip("bt"+i,nb-i);
myMc.btBox["bt"+i]._x = i*40;
myMc.btBox["bt"+i].img.txt.text=i
image_mcl.loadClip("images/carre"+i+".jpg",myMc.btBox["bt"+i].img);
myMc.btBox["bt"+i].myBitmap = new BitmapData(myMc.btBox["bt"+i].img._width, myMc.btBox["bt"+i].img._height);
myMc.btBox["bt"+i].skew = new DistortImage(myMc.btBox["bt"+i].mc, myMc.btBox["bt"+i].myBitmap, 3, 3);
ConvertPointIn3DToPointIn2D(myMc.btBox["bt"+i].p1,-taille,-taille,myMc.btBox["bt"+i]);
ConvertPointIn3DToPointIn2D(myMc.btBox["bt"+i].p2,taille,-taille,myMc.btBox["bt"+i]);
ConvertPointIn3DToPointIn2D(myMc.btBox["bt"+i].p3,taille,taille,myMc.btBox["bt"+i]);
ConvertPointIn3DToPointIn2D(myMc.btBox["bt"+i].p4,-taille,taille,myMc.btBox["bt"+i]);
var x0:Number = myMc.btBox["bt"+i].p1._x;
var y0:Number = myMc.btBox["bt"+i].p1._y;
var x1:Number = myMc.btBox["bt"+i].p2._x;
var y1:Number = myMc.btBox["bt"+i].p2._y;
var x2:Number = myMc.btBox["bt"+i].p3._x;
var y2:Number = myMc.btBox["bt"+i].p3._y;
var x3:Number = myMc.btBox["bt"+i].p4._x;
var y3:Number = myMc.btBox["bt"+i].p4._y;
// --
myMc.btBox["bt"+i].skew.texture.draw(myMc.btBox["bt"+i].img);
myMc.btBox["bt"+i].skew.setTransform(x0,y0,x1,y1,x2,y2,x3,y3);
}
function ConvertPointIn3DToPointIn2D(pointIn3D, x, y, theMc) {
if (pointIn3D == theMc.p2 || pointIn3D == theMc.p3) {
var scaleRatio = focalLength/(focalLength+(Math.sin(angle)*taille));
pointIn3D.POSX = Math.cos(angle)*taille;
pointIn3D._x = Origin.POSX+(pointIn3D.POSX*scaleRatio);
pointIn3D._y = Origin.POSY+(y*scaleRatio);
} else {
var scaleRatio = focalLength/(focalLength-(Math.sin(angle)*taille));
pointIn3D.POSX = -Math.cos(angle)*taille;
pointIn3D._x = Origin.POSX+(pointIn3D.POSX*scaleRatio);
pointIn3D._y = Origin.POSY+(y*scaleRatio);
}
}
Inutile que j'offre le champagne a qui saura m'aider.
Merci