Forums Développement Multimédia

Aller au contenu

Problème vitesse animation dans Silex

CMS Silex

4 réponses à ce sujet

#1 Żabojad

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 114 messages

Posté 19 February 2010 - 12:24 PM

Salut,

J'ai fait une signature animée au format swf et contenant un son. Le problème que j'ai, c'est que sous Silex, son exécution est à peu près deux fois plus lente que lorsque je l'ouvre avec flash player ou avec un navigateur.

J'ai tenté de jouer sur les options du media dans Silex : j'ai décoché "clickable", pas de main apparente, ... Mais rien n'y fait, son exécution est toujours aussi lente (en fait, juste le déroulement des frames est ralenti, pas le son). La conséquence est que le son est décalé par rapport au mouvement...

Est-ce qu'il y aurait un moyen pour que mon swf s'execute plus rapidement ?


Sinon j'ai aussi un deuxième problème, dans cette discussion, Lexa, tu m'avais dit que :

Lexa a écrit:tu peux aussi simplement faire ton anim normalement (mais en mode AS2), avec une extension normale (.swf). tu la place sur la scene, tu la nomme dans silex et elle est alors accessible comme ceci : nomDuPlayerDansSilex.contenerVide_mc
Quelques exemples de codes aue tu peux mettre sur un bouton :

Code: Tout sélectionner
onRelease nomDuPlayerDansSilex.contenerVide_mc.play


> mets l'anim sur play

Code: Tout sélectionner
onRelease nomDuPlayerDansSilex.contenerVide_mc.stop


> mets l'anim sur stop

Code: Tout sélectionner
onRelease nomDuPlayerDansSilex.contenerVide_mc.gotoAndStop:25


> mets l'anim sur stop à l'image 25
...
en fait l'interpreteur silex te permet d'utiliser les variables actionscript et d'appeler les fonctions aussi, en plus de celle de l'interpreteur


J'ai essayé et je ne parviens pas à le faire fonctionner. J'essaie plus précisément de stoper l'execution automatique du swf lorsque la page le contenant se charge et appeler ensuite play quand je veux... Le stop, lorsque je l'appelle sur onLoad, ne fonctionne pas :

sur mon médiaswf "anim_1", j'ai mis l'action :
Code: Tout sélectionner
onLoad anim_1.contenerVide_mc.stop


Sans succès... Y a-t-il un problème de syntaxe ?


Troisième question : quand un swf est inclue dans une page Silex, y a-t-il une classe Silex qui lui est assigné et qui permette d'appeler ces action sur lui ? De quelle classe s'agit-il ?

Merci d'avance pour vos réponses.

#2 _lex

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 1016 messages

Posté 19 February 2010 - 12:43 PM

salut

Est-ce qu'il y aurait un moyen pour que mon swf s'execute plus rapidement ?

Quand tu charges un swf externe, son fps devient celui de l'anim qui le charge, et ici c'est Silex. Donc tu peux changer le fps de ton anim ou celui de silex. Pour changer le fps de silex, re-publie le loader (fla/loader.fla dans le dev kit) en spécifiant le fps que tu veux dans les parametres de publication

sur mon médiaswf "anim_1", j'ai mis l'action :
CODE:
onLoad anim_1.contenerVide_mc.stop


Sans succès... Y a-t-il un problème de syntaxe ?

ben moi quand je mets sur un swf
Code: Tout sélectionner
onRelease contenerVide_mc._alpha=0

ca se passe bien. donc soit c'est le onLoad qui arrive trop tot, soit c'est ton stop qui n'est pas au bon niveau. ton anim se déroule sur la timeline de _root dans ton fla ?
tu peux mettre un "stop()" dans ton fla et dans silex, sur l'anim :
Code: Tout sélectionner
onRelease contenerVide_mc.play

note qu'il faut que l'anim soit "clickable"

quand un swf est inclue dans une page Silex, y a-t-il une classe Silex qui lui est assigné et qui permette d'appeler ces action sur lui ? De quelle classe s'agit-il ?

dans n'importe quel élément chargé dans silex.swf, tu peux accéder à _global.getSilex() qui retourne l'objet silex, de type "org.silex.core.api", qui est décrit dans la doc de l'api Silex

#3 Żabojad

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 114 messages

Posté 19 February 2010 - 14:51 PM

Salut Lexa,

Merci pour ta réponse.

lexa a écrit:salut

Est-ce qu'il y aurait un moyen pour que mon swf s'execute plus rapidement ?

Quand tu charges un swf externe, son fps devient celui de l'anim qui le charge, et ici c'est Silex. Donc tu peux changer le fps de ton anim ou celui de silex. Pour changer le fps de silex, re-publie le loader (fla/loader.fla dans le dev kit) en spécifiant le fps que tu veux dans les parametres de publication


En effet, ça fonctionne nickel maintenant. Merci beaucoup :) !

lexa a écrit:
sur mon médiaswf "anim_1", j'ai mis l'action :
CODE:
onLoad anim_1.contenerVide_mc.stop


Sans succès... Y a-t-il un problème de syntaxe ?

ben moi quand je mets sur un swf
Code: Tout sélectionner
onRelease contenerVide_mc._alpha=0

ca se passe bien. donc soit c'est le onLoad qui arrive trop tot, soit c'est ton stop qui n'est pas au bon niveau. ton anim se déroule sur la timeline de _root dans ton fla ?
tu peux mettre un "stop()" dans ton fla et dans silex, sur l'anim :
Code: Tout sélectionner
onRelease contenerVide_mc.play

note qu'il faut que l'anim soit "clickable"

quand un swf est inclue dans une page Silex, y a-t-il une classe Silex qui lui est assigné et qui permette d'appeler ces action sur lui ? De quelle classe s'agit-il ?

dans n'importe quel élément chargé dans silex.swf, tu peux accéder à _global.getSilex() qui retourne l'objet silex, de type "org.silex.core.api", qui est décrit dans la doc de l'api Silex


J'ai mis un stop() en début de timeline dans mon fla. Mais le play dans Silex ne relance pas la lecture de l'animation.

Mon anim se déroule en effet sur la timeline de _root dans ton fla. Faudrait-il que je crée un movie clip "contenerVide_mc" dans mon fla et que je mette tout dedans ?


J'ai un autre problème côté Flash :

Dans mon cas, j'ai deux timelines dans mon swf : celles où l'écriture de la signature se déroule, et une où le son se déroule (j'ai simplement glissé le mp3 dans la première Frame cette deuxième timeline et il se joue tout seul au lancement de l'animation).

J'ai essayé de mettre stop() dans la timeline du son, mais ça ne l'arrête pas. Comment on met le son en pause dans le champs action de la timeline ?

Encore merci d'avance.

#4 Żabojad

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 114 messages

Posté 19 February 2010 - 18:54 PM

lexa a écrit:ben moi quand je mets sur un swf
Code: Tout sélectionner
onRelease contenerVide_mc._alpha=0

ca se passe bien. donc soit c'est le onLoad qui arrive trop tot, soit c'est ton stop qui n'est pas au bon niveau. ton anim se déroule sur la timeline de _root dans ton fla ?
tu peux mettre un "stop()" dans ton fla et dans silex, sur l'anim :
Code: Tout sélectionner
onRelease contenerVide_mc.play

note qu'il faut que l'anim soit "clickable"



Hahaaa, alors chez moi, ça ça marche aussi (le alpha qui passe à 0 en cliquant sur le swf).

Par contre, en mettant stop() en début de timeline dans mon fla (timeline de _root) et si je remplace l'action sur mon swf par "onRelease contenerVide_mc.play", ça ne fonctionne pas. L'animation ne se joue pas... Et clickable est bien à true.

Une idée ?

Merci d'avance.

#5 _lex

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 1016 messages

Posté 19 February 2010 - 19:48 PM

bon, en fait il faut écrire
Code: Tout sélectionner
onRelease contener_mc.contenerVide_mc._alpha=0


je ne supporte plus les players, ils ont été codés par quelqu'un qui avait du mal avec les noms de variable :(
a+



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)