Mosaique

RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008 - 27 oct. 2008 à 12:46
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008 - 28 oct. 2008 à 15:18
Bonjour à tous,
Je souhaiterai faire une mozaique en AS2, le probléme est que je ne sais pas par ou commencer, pourriez vous m'aider ou me dire ou je peux trouver des sources.
Merci

12 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
28 oct. 2008 à 11:10
Salut,

une mosaique de quoi ?
Précise un peu ta demande...

@+
0
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 11:13
En fait je voudrai faire apparaiter une image par un effet mosaique ... genre une page blanche avec le caré qui disparaisse petit a petit en mosaique ...
0
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 11:32
en fait un peu comme sur cette source :
http://www.flashkod.com/codes/EFFET-IMAGE-MOZAIQUE-APPARAITION-SOURIS-VERSION-ACTIONSCRIPT_35811.aspx

Mais pas au passge de la souri que ça se face tout seul.
Je début en flash et je galére ++
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
28 oct. 2008 à 11:43
OK !

Sur ta scene tu doit avoir 2 movieClip avec chacun un nom d'occurence
tu auras un clip imgContainer qui va contenir ton image
et aussi un clip fadeMask situé par dessus qui contiendra l'effet mozaique

tu crées ta mosaique avec 2 boucles imbriquées
là, je vais couvrir une surface de 500 x 500 pixels avec a chaque fois des carrés de 50x50 pixels
ensuite on va créer une interpolation de mouvement sur l'alpha du clip (de 100 à 0)
stoquer cette interpolation dans un tableau (pour utilisation ultérieure)
bloquer cette interpolation et on la lancera une fois l'image chargée

import mx.transitions.Tween;
import mx.transitions.easing.Strong;

var profondeur:Number=1
var alphaTweens:Array= new Array()
for (var y:Number=0 y<10; y++){
    for (var x:Number=0; x<10; x++){
    var clip:MovieClip=fadeMask.createEmptyMovieClip("carre"+this.getNextHighestDepth(), this.getNextHighestDepth())
    // on dessine le carré blanc
    clip.beginFill(0xffffff); // couleur blanche
    clip.moveTo(0, 0);
    clip.lineTo(50, 0);
    clip.lineTo(50, 50);
    clip.lineTo(0, 50);
    clip.lineTo(0, 0);
    clip.endFill()
    // on positionne le carré
    clip._x=50*x
    clip._y=50*y
    // création de l'interpolation de mouvement sur _alpha
    var clipTween:Tween = new Tween(clip, "_alpha", Strong.easeOut, 100, 0, profondeur*10,false)
    clipTween.stop()
    alphaTweens.push(clipTween)
    }
}

// Ensuite tu charges ton image (utilise un moviecliploader) dans imgContainer
// Une fois l'image chargée, tu lances les animations (Tweens) stockées dans le tableau alphaTweens

for (var i:Number=0;i<alphaTweens.length;i++){
  alphaTweens[i].start()
}

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 12:05
oki ^^ pour charger l'image jpeux utiliser
var imgContainer:MovieClip = MovieClip=this.createEmptyMovieClip("imgcontainer", 1);
  
    with (imgcontainer)
        {
            _x = 0;
            _y = 0;
            loadMovie("1.jpg");
        }
0
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 12:07
Okey bon ça fonctionne, l'image s'affiche mais je capte pas le "// Une fois l'image chargée, tu lances les animations (Tweens) stockées dans le tableau alphaTweens" je fais comment pour ça???
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
28 oct. 2008 à 12:23
Non, tu dois utiliser un MovieClipLoader.

Flash est asynchrone donc sans l'événement onLoadInit du MovieClipLoader tu n'as pas moyen de savoir si ton image est chargée et donc pas d'indicateur pour lancer les tweens

place ceci à la fin de mon script précédent (en effaçant la partie tu lance les animations)
var mclListener:Object = newObject();

mclListener.onLoadInit = function(target_mc:MovieClip){
for (var i:Number=0;i};
var image_mcl:MovieClipLoader = newMovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("imageAcharger.jpg", imgContainer);

@+
0
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 12:40
pfouuu ... l'image ne se charge pas....
:$
Au final j'ai ça :

import mx.transitions.Tween;
import mx.transitions.easing.Strong;
var profondeur:Number=1;
var alphaTweens:Array= new Array();

for (var y:Number=0; y<10; y++);
{
    for (var x:Number=0; x<10; x++);
    {
    var clip:MovieClip=fadeMask.createEmptyMovieClip("carre"+this.getNextHighestDepth(), this.getNextHighestDepth());
 
    clip.beginFill(0xffffff);
    clip.moveTo(0, 0);
    clip.lineTo(50, 0);
    clip.lineTo(50, 50);
    clip.lineTo(0, 50);
    clip.lineTo(0, 0);
    clip.endFill();
    clip._x=50*x;
    clip._y=50*y;
   
    var clipTween:Tween = new Tween(clip, "_alpha", Strong.easeOut, 100, 0, profondeur*10,false);
    clipTween.stop();
    alphaTweens.push(clipTween);
    }
}

var mclListener:Object = newObject();

mclListener.onLoadInit = function(target_mc:MovieClip){
  for (var i:Number=0;i<alphaTweens.length;i++){
    alphaTweens[i].start()
  }  
};
var image_mcl:MovieClipLoader = newMovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("1.jpg", imgContainer);

J'ai vraiment du mal ... :s
(Merci de ta patience)
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
28 oct. 2008 à 12:52
N'as tu pas oublier de créer ton clip imgContainer ?

var imgContainer:MovieClip: MovieClip=this.createEmptyMovieClip("imgcontainer", 1);

a placer au début de ton script.

@+
0
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 13:33
Nop il y était mais en commentaire ^^, kan j'enléve le comm ça marche tjs pas...
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
28 oct. 2008 à 14:48
Mouais...

mon script comporte quelques erreurs... faut dire que je le fait via notepad aussi

on reprend le complet :

var imgContainer:MovieClip=this.createEmptyMovieClip('imgContainer_mc', 1);
var fadeMask=this.createEmptyMovieClip('fadeMask_mc', 2);
var profondeur:Number = 1;
var alphaTweens:Array = new Array();
for(var x:Number = 0; x < 10; x++)
{
    for(var y:Number = 0; y < 10; y++)
    {
        var clip:MovieClip = fadeMask.createEmptyMovieClip("carre" + profondeur, profondeur);
        clip.beginFill(0xffffff);
        clip.moveTo(0, 0);
        clip.lineTo(50, 0);
        clip.lineTo(50, 50);
        clip.lineTo(0, 50);
        clip.lineTo(0, 0);
        clip.endFill();
        clip._x = 50 * x;
        clip._y = 50 * y;
        var clipTween:Tween = new Tween(clip, "_alpha", Strong.easeOut, 100, 0, 1+Math.random()*0.5, true);
        clipTween.stop();
        alphaTweens.push(clipTween);
        profondeur++;
    }
}
var mclListener:Object = {};
mclListener.onLoadInit = function(target_mc:MovieClip)
{
    for(var i:Number = 0; i < alphaTweens.length; i++)
    {
        alphaTweens[i].start();
    }
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("1.jpg", imgContainer);

stop()

j'en ai profiter pour ajouter un effet aléatoire dans la vitesse des tween, pour mieux sentir l'effet 'mosaique'

@+
0
RockPrinceS Messages postés 10 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 19 décembre 2008
28 oct. 2008 à 15:18
il manque :
import mx.transitions.Tween;
import mx.transitions.easing.Strong;
 
Merci beaucoup ça m'aide vraiment
++

^^
0
Rejoignez-nous