Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1449 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  AS3 : Transmettre une variable entre SWF

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

AS3 : Transmettre une variable entre SWF

n°1698649
electroger
Posté le 07-03-2008 à 09:07:14  profilanswer
 

Bonjour,
 
Je cherche un moyen de transmettre une variable depuis un SWF vers un autre SWF. Avant j'utilisais des variables globales mais depuis AS3 "_global" n'existe plus... Est ce que vous connaissez un moyen de passer des variables entre SWF?
 
 

Code :
  1. var accueil_progres:Function = function(evt:Event):void {
  2. var preloader_progres = Math.round((evt.bytesLoaded/evt.bytesTotal)*100);
  3. };


 
Dans une variable du type fonction je déclare une variable "preloader_progres" et j'aimerai transmettre cette variable à mon 2eme SWF.
 
 
Merci !

mood
Publicité
Posté le 07-03-2008 à 09:07:14  profilanswer
 

n°1699191
antika
Posté le 08-03-2008 à 00:16:58  profilanswer
 

Ce n'est pas assez précis pour pouvoir t'aider - quelle est la structure des classes de ton application ?

n°1699195
electroger
Posté le 08-03-2008 à 00:32:26  profilanswer
 

En fait je cherchais un moyen propre de gérer mes chargements de SWF et je suis tombé sur l'API Masapi qui permet ce genre de choses. Peut être que tu connais? Je commence juste l'AS3 et je connaissais pas du tout.
 
Voici le code de ma page principale :
 

Code :
  1. import ch.capi.net.*;
  2. import ch.capi.events.*;
  3. import flash.events.*;
  4. var factory:LoadableFileFactory = new LoadableFileFactory();
  5. var loader:PriorityMassLoader = new PriorityMassLoader();
  6. //création des fichiers
  7. var bdz_preloader:ILoadableFile = factory.create("mon_preloder.swf" );
  8. //création du loader
  9. //var loader:MassLoader = new MassLoader();
  10. //ajout des fichiers dans la liste de chargement
  11. loader.addPrioritizedFile(bdz_preloader, 10);
  12. // Chargements des autres fichiers
  13. var accueil_progres:Function = function(evt:Event):void {
  14. var mc_bdz_preloader:Loader = bdz_preloader.loadManagerObject as Loader;
  15. addChild(mc_bdz_preloader);
  16. var preloader_progres:int = Math.round((evt.bytesLoaded/evt.bytesTotal)*100);
  17. };
  18. var accueil_complet:Function = function(evt:Event):void {
  19. // affichage des autres SWF
  20. };
  21. var p:Function = function(evt:ProgressEvent):void {
  22. };
  23. loader.addEventListener(ProgressEvent.PROGRESS, accueil_progres);
  24. loader.addEventListener(Event.COMPLETE, accueil_complet);
  25. loader.start();


 
la variable accueil_progres va afficher mon swf, le preloader. J'aimerai transmettre à ce swf la variable preloader_progres mais je sais pas comment m'y prendre.
 
J'espère que c'est clair  :sweat: .

n°1699226
antika
Posté le 08-03-2008 à 11:12:14  profilanswer
 

Quelle est la structure des classes de ton application ?

n°1699645
electroger
Posté le 09-03-2008 à 22:55:19  profilanswer
 

antika a écrit :

Quelle est la structure des classes de ton application ?


 
Je vois pas ce que je peux te répondre. Pour l'instant je n'ai créé aucune classe, j'ai juste utilisé celles de Masapi. Est ce que tu veux que je te montre le contenu d'un fichier AS de Masapi?

n°1700111
antika
Posté le 10-03-2008 à 19:29:11  profilanswer
 

Considère tes .swf comme des objets, attache-leur une classe Document, et fais un getter-setter sur la classe.
 
En AS3 on ne mets plus de code en timeline. Ton code devrait aussi être dans une classe document attachée à ton .swf "racine".
 
Flash CS3 est un Flex light. Donc tu dois bosser de la même manière que sous Flex : des composants, des skins, des classes. Toute autre méthode est vouée à l'échec.

Message cité 1 fois
Message édité par antika le 10-03-2008 à 19:31:14
n°1700326
electroger
Posté le 11-03-2008 à 09:07:12  profilanswer
 

Merci beaucoup pour ces précisions ! Ca reste un peu flou, je suis obligé de l'avouer, mais je vais me renseigner.
 

antika a écrit :

En AS3 on ne mets plus de code en timeline. Ton code devrait aussi être dans une classe document attachée à ton .swf "racine".


 
Est ce que ça veut dire que dans mes fichiers FLA je vais juste définir des variables et appeler mes objets? Tout le reste se jouera dans les fichiers AS?

n°1700672
antika
Posté le 11-03-2008 à 21:14:05  profilanswer
 

oui.

n°1701348
electroger
Posté le 12-03-2008 à 20:06:30  profilanswer
 

Ca veut dire que je peux déplacer (changer les dimensions, l'opacité...) d'un clip du fichier preloader.swf, charger dans index.swf via un classe importer elle aussi dans index.swf?
Pour l'instant j'ai une classe qui calcule le taux de chargement de mon animation totale, mais je vois pas comment modifier un clip de preloader.swf...
 

Code :
  1. package {
  2. public class Preloader {
  3.  public function setPourcent(loaded:Number,total:Number):int {
  4.   // Calcul du pourcentage chargé
  5.   var preloader_progres:int = Math.round((loaded/total)*100);
  6.   trace(preloader_progres);
  7.  }
  8. }
  9. }


 
EDIT : Peut être que je devrait plutôt créer l'objet dans me FLA pour ensuite lancer l'affichage du Preloader dans la classe et utiliser des fonctions pour altérer sa présentation. Je vais voir ça. En tout cas je suis pas au point sur la POO...


Message édité par electroger le 13-03-2008 à 09:28:45

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  AS3 : Transmettre une variable entre SWF

 

Sujets relatifs
Comment afficher le code binaire du contenu d'une variable quelconque[C pour PIC] Variable en I2C
probléme pasage texte dans une variable[Résolu] Problème de variable qui veut pas sortir d'une fonction.
Preloader pour plusieurs SWFpartager de variable entre plusieurs threads
Passer une variable C en Shell avec un system()EXCEL VBA - Addition de cellule et de variable !
Pb de passage de variableVariable et php
Plus de sujets relatifs à : AS3 : Transmettre une variable entre SWF


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR