Problème avec le composant FLVPlayback - Flash/ActionScript - Programmation
Marsh Posté le 19-08-2011 à 22:57:16
Je te suggère d'utiliser qu'un seul Loader pour charger les SWF enfants, parceque là c'est très bordélique... il ne faut pas oublier de le décharger avant de charger autre chose, ça permettra de supprimer proprement l'ancien contenu...
Fais des trace() permettant de vérifier le chemin FLV, si le composant FLVPlayback est présent, si oui dans quel états, quel url il est sencé lire etc....
Il faut aussi arrêter AS2, surtout si tu veux faire de l'interactivité, non pas qu'il soit moins "puissant", mais pas intuitif du tout, et parfois illogique, ce qui le rend difficilement débuggable...
Marsh Posté le 22-08-2011 à 15:04:06
Salut,
Merci pour ta réponse. Oui l'AS3 je dois m'y mettre mais j'ai été pris de court donc on a fait comme on a pu. Quelle méthode propre tu me conseillerais pour décharger complètement le swf ? Car à mon avis c'est surement ça qui plante.
Marsh Posté le 22-08-2011 à 22:14:47
la methode unload() sur ton Loader
Marsh Posté le 23-08-2011 à 14:53:22
Bon, on a tout essayé, rien n'y fait. On a même retiré tout le code superflu pour ne garder que le chargement/déchargement, et ça ne marche toujours pas.
Du coup ça doit venir du composant FLVPlayback...
Marsh Posté le 23-08-2011 à 22:28:36
et t'as moyen de partager la source ou c'est trop "confidentiel" ?
Marsh Posté le 24-08-2011 à 16:44:07
sisi je peux mettre à dispo une version avec juste 2 menus, mais là j'ai trouvé une solution de backup pour le moment donc comme ça urge je vais faire avec ça, ensuite quand ça sera terminé je me repencherais dessus et je ferais une version "propre".
Au lieu de lire les vidéos avec le composant, j'ai incorporé chaque vidéo dans un swf, et j'appelle ce swf... C'est pas top mais comme c'est fait pour être lu en local il n'y a pas de soucis au niveau du son ni rien. C'est juste pas propre...mais ça marche.
Merci en tout cas.
Marsh Posté le 19-08-2011 à 11:34:26
Bonjour à tous,
Je viens faire appel à vous car j'ai un soucis pour la lecture de .FLV avec le composant FLVPlayback et je n'arrive pas à trouver d'où viens le problème.
Je vous expose la chose :
_ J'ai un .SWF principal (en AS3) qui contient un menu, et chaque onglet charge un .swf distinct
_ Sur les .swf appelés (en AS2), à l'image 1, il y a (entre autres) 4 boutons appelants chacun une vidéo.
Par exemple : lorsque je clique sur le bouton 1, la timeline se lit et se stoppe à l'image clé 30 ( il y a une petite animation entre l'image 2 et la 29). Sur l'image clé 30, j'ai placé le composant FVLPLAYBACK, et celui-ci appelle donc une vidéo située dans mon répertoire vidéo (le chemin dans le composant c'est "video/nomDeLaVideo". Sous la vidéo j'ai placé un bouton fermé, qui quand je clique dessus nous ramène à l'image clé 1.
Quand je teste chaque .SWF 1 à 1 (donc sans passer par mon .swf principal), tout fonctionne correctement, peu importe le nombre de vidéos.
Par contre, quand je passe par le .swf principal qui me sert d'interface, ça se complique. Pour être plus simple je vais vous faire un exemple :
_ je lance mon .SWF principal
_ je clique sur un bouton du menu qui va charger un .swf
_ ce swf fonctionne correctement puisque j'arrive à lire puis fermer toutes les vidéos
_ je clique sur un autre bouton du menu (à ce moment là on lui demande de décharger le .swf en cours, puis d'en charger un autre)
_ et là lorsque je clique sur un bouton pour lancer une vidéo cela ne fonctionne pas. La timeline va bien jusqu'à l'image clé contenant le composant (j'ai fait un test en mettant un repère visuel à ce niveau), mais le composant ne semble pas trouver la vidéo.
_ je refais toute la manip en commençant cette fois par charger le .swf qui ne fonctionnait pas puis en terminant par celui qui fonctionnait, et bien le 1er fonctionne et plus le 2nd.
_ en gros, le premier .swf qui est lancé fonctionne très bien, mais dès que je veux le décharger pour en charger un autre il semble y avoir un problème.
La raison pour laquelle le menu est en as3 est que c'est une autre personne qui a travaillé dessus, moi je ne suis juste animateur flash et j'ai bidouillé comme j'ai pu pour pondre une "application interactive".
Voici un bout de code situé sur le .swf principal qui sert à charger/décharger les .swf
function tournage(evt:MouseEvent) {
TweenMax.to(fond_menu, 0.5, {x:230});
TweenMax.to(menu_tournage, 0.5, {x:284});
TweenMax.to(menu_montage, 0.3, {x:54});
TweenMax.to(btn_fond, 0, {x:8, y:88});
curseur.y=0;
chargeBA01_01.parent.removeChild(chargeBA01_01);
chargeBA01_02.parent.removeChild(chargeBA01_02);
chargeBA01_03.parent.removeChild(chargeBA01_03);
chargeBA01_04.parent.removeChild(chargeBA01_04);
chargeBA01_05.parent.removeChild(chargeBA01_05);
chargeBA01_06.parent.removeChild(chargeBA01_06);
}
menu_01.btn_tournage.addEventListener(MouseEvent.MOUSE_UP, tournage)
var chargeBA01_01:Loader = new Loader();
function bandeAnnonce(evt:MouseEvent) {
TweenMax.to(fond_menu, 0.5, {x:0});
TweenMax.to(menu_tournage, 0.5, {x:54});
var adresseBA01_01:URLRequest = new URLRequest("01 - production_tournage_ba.swf" );
chargeBA01_01.load(adresseBA01_01);
curseur.addChild(chargeBA01_01)
chargeBA01_01.x = 0;
chargeBA01_01.y = 0;
curseur.y=0;
chargeBA01_02.parent.removeChild(chargeBA01_02);
chargeBA01_03.parent.removeChild(chargeBA01_03);
chargeBA01_04.parent.removeChild(chargeBA01_04);
chargeBA01_05.parent.removeChild(chargeBA01_05);
chargeBA01_06.parent.removeChild(chargeBA01_06);
}
menu_tournage.btn_bandeAnnonce.addEventListener(MouseEvent.MOUSE_UP, bandeAnnonce)
---------------
Webdesigner Freelance | Feedback achat/vente