Tween transition IN/OUT

Tween transition IN/OUT - Flash/ActionScript - Programmation

Marsh Posté le 08-03-2006 à 15:02:03    

:) Salut à tous
 
Pour ma galerie "XML" j’ai besoin d’utiliser une transition IN/OUT avec les nouvelles méthodes "Tween"
Sur le site de blog.latex.com j’ai trouvé une class pour l’effet et un code qui m’intéresse mais donc je n’arrive pas a intégrer. (à moins qu’il y a plus simple !!)
J’ai testé pas mal de choses mais rien de probant.
Un petit coups de pouce de votre part me serait bien utile.
 
Voici mon code : ( désolé c’est un peu long )

Code :
  1. var cpt /*Number*/ ; // compteur de la gallery  
  2. var pictures /*Array*/ ; // tableau contenant les images
  3. // variables loader
  4. var barW:Number = 500;
  5. var barH:Number = 5;
  6. // champ de texte dynamique pour le test  
  7. this.createTextField("field", 1, 10, 10, 180, 200) ;
  8. field.border = false ;
  9. field.setNewTextFormat(new TextFormat("arial", 12)) ;
  10. field.borderColor = 0xFFFFFF ;
  11. field.selectable = false ;
  12. field.multiline = true ;
  13. field.wordWrap = true ;
  14. field.html = true ;
  15. // clip vide pour charger dedans l'image  
  16. var conteneur_mc:MovieClip = this.createEmptyMovieClip("conteneur_mc", this.getNextHighestDepth());
  17. conteneur_mc._x = 150;
  18. conteneur_mc._y = 20;
  19. var loader_mc:MovieClip = conteneur_mc.createEmptyMovieClip("loader_mc",getNextHighestDepth());
  20. //creation de loader
  21. function draw(w, h):Void {
  22. conteneur_mc.moveTo(0, 0);
  23. conteneur_mc.beginFill(0x000000, 200);
  24. conteneur_mc.lineTo(w, 0);
  25. conteneur_mc.lineTo(w, h);
  26. conteneur_mc.lineTo(0, h);
  27. conteneur_mc.lineTo(0, 0);
  28. conteneur_mc.endFill();
  29. }
  30. //chargement des images
  31. var my_MovieclipLoader:MovieClipLoader = new MovieClipLoader();
  32. var my_listener:Object = new Object();
  33. my_listener.onLoadProgress = function(mc, loadedBytes, totalBytes) {
  34. percentage.text = Math.round(loadedBytes/totalBytes*100);
  35. barW = Math.floor(loadedBytes / totalBytes * 500);
  36. draw(barW, barH);
  37. };
  38. my_listener.onLoadInit = function() {
  39. conteneur_mc.clear();
  40. //transition  
  41. import mx.transitions.*;
  42. import mx.transitions.easing.* ;
  43. import com.lalex.visual.XColor;
  44. var my_color:XColor = new XColor(conteneur_mc);
  45. var myTransition:Tween = new Tween(my_color, "_brightOffset", Regular.easeInOut, 255, 0, .5, true);
  46. myTransition.onMotionFinished = function () {
  47.    trace ("fin du Tween" );
  48. }
  49. };
  50. //..
  51. my_MovieclipLoader.addListener(my_listener);
  52. // fonctions pour gérer la gallery  
  53. var getBigAt = function ( id /*Number*/ ) /*String*/ {
  54.    return pictures[id].fichier ;
  55. }
  56. //creation champ texte
  57. var getTextAt = function( id /*Number*/ ) /*String*/ {
  58.    var pic = pictures[id] ;
  59.    var txt = "<b>Webdesign :</b> " + pic.num + " sur " + pictures.length + "<br />" ;
  60.    txt += "<b>Année : </b>" + pic.date + "<br />" ;
  61.    txt += "<b>Desc : </b>" + pic.desc +"<br />";
  62.    return txt ;
  63. }
  64. var showPictureAt = function( id /*Number*/ ) {
  65.    my_MovieclipLoader.loadClip(pictures[id].fichier, loader_mc) ;
  66.    field.htmlText = getTextAt(id) ;
  67. }
  68. var next = function () {
  69.    cpt++ ;
  70.    if (cpt == pictures.length) cpt = 0 ;
  71.    showPictureAt(cpt) ;
  72. }
  73. var prev = function () {
  74.    cpt-- ;
  75.    if (cpt == -1) cpt = pictures.length - 1  ;
  76.    showPictureAt(cpt) ;
  77. }
  78. // action sur les boutons  
  79. nextButton.onRelease = next ;
  80. prevButton.onRelease = prev ;
  81. conteneur_mc.onRelease = function() {
  82.    var url /*String*/ = getBigAt(cpt) ;
  83.    getURL( url , "_blank" );
  84. }
  85. // chargement du xml  
  86. var x = new XML();
  87. x.ignoreWhite = true;
  88. x.onLoad = function(success) {
  89.    //initialisation des variables  
  90.    pictures = [] ;
  91.    cpt = 0 ;
  92.    if (success && this.status == 0) {
  93.        var node = this.firstChild.childNodes;
  94.         var len = node.length;
  95.       for (var i = 0 ; i<len ; i++) {
  96.          var current = node[i] ;
  97.          var item = {}
  98.          for (var prop:String in current.attributes) {
  99.             item[prop] = current.attributes[prop] ;
  100.          }
  101.          pictures.push(item) ;
  102.       }
  103.    }
  104.    showPictureAt(cpt) ;
  105. }
  106. x.load("data/fichier.xml" ) ;

Les sources Ici !!
 :) Merci D’avance


Message édité par olimann le 08-03-2006 à 17:23:02
Reply

Marsh Posté le 08-03-2006 à 15:02:03   

Reply

Marsh Posté le 09-03-2006 à 08:55:22    

qu'est ce que tu veex faire exactement parcqu'en l'etat ton code fonctionne tres bien, sans doute que tu gagnerais a mettre ces 3 lignes:
import mx.transitions.*;
import mx.transitions.easing.* ;
import com.lalex.visual.XColor;
au debut de ton code pour eviter qu'elle soit lu/interpreté a chaque loadInit mais même avec ca ca fonctionne donc ou est le PB?
que cherche tu a faire ?


---------------
D3
Reply

Marsh Posté le 09-03-2006 à 15:01:23    

:) Merci pour ta réponse
 
Ce je cherche à faire c’est une transition "OUT", faire fondre l’image avant le chargement de la suivante (classique )
Comme tu peux le voir dans mon code la première transition ( "IN" )  fonctionne très bien !!
 
Etant donné que c’est la première fois que j’utilise ces méthodes, je suis pas sur d’être sur la bonne piste !?
Le lien de blog.latex.com propose une idée intéressante avec l’utilisation du "Tween yoyo" qui ma parait simple
Mais difficile à mettre en place.
 :??: Je sais pas si c’est la bonne solution à employé ?!

Reply

Marsh Posté le 09-03-2006 à 17:27:16    

pourquoi pas mais si tu veux ce genre d'effet il te faudras un deuxieme conteneur (pour le moment je crois que tu n'en as qu'un) avec un systeme de variable boolen qui te dit quel conteneur est libre... et un changment de depth pour que ton image nouvellement chargé soit en dessous...
 
si tu n'as qu'un conteneur, quand tu charge une image dedans l'autre est purement est simplement supprimé  [:airforceone]


---------------
D3
Reply

Marsh Posté le 10-03-2006 à 15:30:57    

:sweat: Houps ça ce complique !!
Donc il faut que je regarde le "systeme de variable boolen " de plus prés.
As-tu une ressources ou un tutorial dans ta connaissance que tu pourrais me faire partager !!
 

Reply

Marsh Posté le 10-03-2006 à 16:53:22    

c'est pas si compliqué...
boolen ca veut dire 2 etats 0 ou 1, true ou false et dans ton cas conteneur1 ou conteneur2


---------------
D3
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed