connaitre le nombre d'images sur la timeline

connaitre le nombre d'images sur la timeline - Flash/ActionScript - Programmation

Marsh Posté le 04-07-2007 à 15:10:12    

bonjour à tous,
question bête, je suis en train de faire un petit player de swf, j'aimerai savoir s'il est possible de connaitre le nombre d'image qui se trouvent sur la timeline de la scene afin de pouvoir faire une barre de progression ?
 
Je vous en remercie d'avance !
 
Freed

Reply

Marsh Posté le 04-07-2007 à 15:10:12   

Reply

Marsh Posté le 04-07-2007 à 15:13:32    

c'était une vrai question bête....
 
_root._totalframes doit être la bonne réponse !

Reply

Marsh Posté le 04-07-2007 à 17:11:44    

bon, j'ai quand même besoin de votre aide.
 
Pour le player, c bon, tout marche ! j'ai même fait un curseur qui permet d'aller n'importe où dans la timeline, c'est cool...
 
mon probleme c'est le poid du fichier, c'est un fichier SWF du client qui fait 23Mo. en local ça marche plutot très bien....
 
... en distant... ça a l'air plus compliqué ! déja le loading (avec la classe MovieClipLoader) ne m'affiche pas la progression du chargement... et au bout d'une 10 aine de secondes, flash m'affiche qu'un script de l'animation ralentit l'execution d'Adobe Flash Player 9. blablabla... et il me propose d'abandonner l'execution du script....
 
 
... c pas bon tout ça !!!
 
 
help ?
 
Freed

Reply

Marsh Posté le 04-07-2007 à 17:45:31    

ben montre ton code, tu dois avoir une boucle qui ne finit pas


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 04-07-2007 à 17:55:36    

Zedlefou a écrit :

ben montre ton code, tu dois avoir une boucle qui ne finit pas


 
Houla ! attention j'espère que tu as de l'aspirine ! :lol:
 
Pour infos, j'ai remarqué un comportement completement différent sur Firefox et sur IE :
 
Sur IE, il essaie de tout charger, au bout d'un moment il affiche le message d'erreur, si on lui demande de continuer d'executer le script, il finit par afficher l'animation correctement. La barre de chargement passe de 0% à 100% directement.
 
Sur Firefox, il commence à jouer l'animation avant même qu'elle soit totalement chargée, par contre il ne prend pas en compte le redimensionnement tant que l'animation n'est pas entierement chargée (ça doit etre normal) et la barre de chargement évolue bien en fonction du chargement.
 
Je commence à soupçonner un problème de cache, j'avais deja entendu parler de ce problème avec la fonction flush de PHP qui vide les buffers, que IE n'affiche pas mais que Firefox affiche. En tous cas ça y ressemble beaucoup !
 
Je joins le code dans le message suivant

Reply

Marsh Posté le 04-07-2007 à 17:55:54    

voici le code :
 

Code :
  1. function loadInClip(clip,photo)
  2. {
  3.  btn_stop._visible=false;
  4.  btn_play._visible=false;
  5. //removeMovieClip(clip);
  6. var clip:MovieClip=_root.diapo.attachMovie("MCphoto","MCPhoto",10,{_x:0,_y:0});
  7. _root.reponse.text="";
  8. //clip.unloadMovie();
  9. clip._visible=false;
  10. if(photo!="./" && photo!="../" )
  11. {
  12. parentClip=clip._parent;
  13. removeMovieClip(parentClip.blinkx);
  14. removeMovieClip(this._parent.loader);
  15. blink=parentClip.attachMovie("blink","blinkx",21);
  16. blink._alpha=0;
  17. //////trace("blink : "+blink+" depth : "+blink.getDepth() )
  18. if(_global.lastDiapowidth)
  19. {
  20. parentClip.blinkx._width=_global.lastDiapowidth;
  21. parentClip.blinkx._height=_global.lastDiapoheight;
  22. parentClip.blinkx._x=_global.lastDiapo_x;
  23. parentClip.blinkx._y=_global.lastDiapo_y;
  24. }else
  25. {
  26. parentClip.blinkx._width=parentClip.Mask._width+5;
  27. parentClip.blinkx._height=parentClip.Mask._height+5;
  28. parentClip.blinkx._x=parentClip.Mask._x-2.5;
  29. parentClip.blinkx._y=parentClip.Mask._y-2.5;
  30. }
  31. _root.reponse.text="photo : ici !!!"+photo
  32. parentClip.createEmptyMovieClip("loaderClip",22);
  33. loader=parentClip.loaderClip.attachMovie("loader","loaderx",parentClip.loaderClip.getNextHighestDepth());
  34. loader._x=(parentClip.Mask._width/2)-(loader._width/2)+parentClip.Mask._x;
  35. loader._y=(parentClip.Mask._height/2)-(loader._height/2)+parentClip.Mask._y;
  36. var mcLoader:MovieClipLoader = new MovieClipLoader();
  37. var mcListener:Object = new Object();
  38. mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number){
  39. var myTweenLoader:Tween = new Tween(loader, "_alpha", mx.transitions.easing.Regular.easeOut, loader._alpha, 100,0.5, true);
  40. xpourcent=bytesLoaded*100/bytesTotal;
  41. thisTextField.htmlText = Math.round(xpourcent)+"%";
  42. thisTextField.wordWrap = true;
  43. loader.gotoAndStop(Math.round(xpourcent));
  44. }
  45. mcListener.onLoadInit = function(target_mc:MovieClip){
  46. //d'abord, je rentre la largeur et la hauteur de l'image original dans des variables intermédiaires:
  47. largeur = clip._width;
  48. hauteur = clip._height;
  49. clip._x=0;
  50. clip._y=0;
  51. clip._width = largeur*0.555
  52. clip._height= hauteur*0.555
  53. //clip.play();
  54.  btn_stop._visible=true;
  55.  btn_play._visible=true;
  56.  btn_stop.onPress=function(){
  57. //trace(diapo);
  58.  clip.stop();
  59.  }
  60.  btn_play.onPress=function(){
  61.  clip.play();
  62.  }
  63.  //trace("nombre d'images : "+clip._totalframes);
  64.  var time_interval:Number = setInterval(checkBufferTime, 1, clip,clip._totalframes);
  65.  barre.bout_progress.onEnterFrame=function()
  66. {
  67. this._x=barre.barre_progression._x+barre.barre_progression._width;
  68. }
  69. function tracer(txt)
  70. {
  71. reponse.htmlText+=txt+"\n";
  72. }
  73. var largeur:Number = barre.barre_progression._width;
  74. boutons.forward.onPress=function(){
  75. clip.gotoAndStop(clip._currentframe + 100);
  76. }
  77. boutons.goto_end.onPress=function(){
  78. clip.gotoAndStop(clip._totalframes );
  79. }
  80. boutons.goto_begin.onPress=function(){
  81. clip.gotoAndStop(1);
  82. }
  83. btn_play.onPress=function()
  84. {
  85.  if(_root.currentAction=="pause" )
  86.  {
  87.  _root.currentAction="play";
  88.  boutons.play_pause.gotoAndStop("pause" );
  89.  clip.play();
  90.  tracer("not playing" );
  91.  }
  92.  else
  93.  {
  94.  _root.currentAction="pause";
  95.  boutons.play_pause.gotoAndStop("play" );
  96.  clip.stop()
  97.  tracer("playing" );
  98. }
  99. this._visible=false;
  100. }
  101. boutons.play_pause.onRollOver=function()
  102. {
  103. this.over._alpha=100;
  104. }
  105. boutons.play_pause.onRollOut=function()
  106. {
  107. this.over._alpha=0;
  108. }
  109. boutons.play_pause.onRelease = function() {
  110. if(_root.currentAction=="pause" )
  111. {
  112.  btn_play._visible=false;
  113.  _root.currentAction="play";
  114.  this.gotoAndStop("pause" );
  115.  clip.play();
  116. }
  117. else
  118. {
  119.  _root.currentAction="pause";
  120.  this.gotoAndStop("play" );
  121.  clip.stop();
  122. }
  123.        
  124. };
  125. barre.curseur.onPress=function(){
  126. flux_video.pause();
  127. clip.stop();
  128. clearInterval(time_interval);
  129. startDrag(this,true,barre.timeline._width,0,0,0);
  130. this.onEnterFrame=function()
  131. {
  132.  clip.gotoAndStop(Math.floor((barre.curseur._x*clip._totalframes)/barre.timeline._width));
  133. }
  134. }
  135. barre.curseur.onEnterFrame=function()
  136. {
  137. this._x=clip._totalframes/barre.timeline._width;
  138. }
  139. barre.curseur.onRelease=function(){
  140. stopDrag();
  141. clip.gotoAndStop(Math.floor((barre.curseur._x*clip._totalframes)/barre.timeline._width));
  142. clip.play();
  143. var time_interval:Number = setInterval(checkBufferTime, 1, clip,clip._totalframes);
  144. }
  145. barre.barre_progression.onRelease = function() {
  146. clip.gotoAndPlay(Math.floor((this._xmouse*clip._totalframes)/barre.timeline._width));
  147. trace((this._xmouse*clip._totalframes)/barre.timeline._width)
  148. };
  149. _global.lastDiapowidth=clip._width;
  150. _global.lastDiapoheight=clip._height;
  151. _global.lastDiapo_x=clip._x;
  152. _global.lastDiapo_y=clip._y;
  153. blink._width=clip._width;
  154. blink._height=clip._height;
  155. blink._x=clip._x;
  156. blink._y=clip._y;
  157. blink._alpha=100;
  158. if(_global.directPlay==1)
  159. {
  160.  clearInterval(_root['showAll'+id_outil_int]);
  161.  _root['showAll'+id_outil_int]=setInterval(nextDiapo,_global.intervale);
  162. }
  163. clip._visible=true;
  164. var myTweenLoader:Tween = new Tween(loader, "_alpha", mx.transitions.easing.Regular.easeOut, loader._alpha, 0,0.5, true);
  165. myTweenLoader.onMotionFinished=function(){
  166.  removeMovieClip(loader._parent);
  167.  var myTweenBlink:Tween = new Tween(blink, "_alpha", mx.transitions.easing.Regular.easeOut, blink._alpha, 0,2, true);
  168. }
  169. myTweenBlink.onMotionFinished=function(){
  170.  removeMovieClip(blink);
  171. }
  172. }
  173.  ////////trace("c'est ici =>"+photo);
  174.  mcLoader.addListener(mcListener);
  175.  //mcLoader.unloadClip(clip);
  176.  mcLoader.loadClip(""+photo+"", clip);
  177.  }
  178. }

Reply

Sujets relatifs:

Leave a Replay

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