Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] deplacer un loadmovie???  (Lu 1771 fois)

dede4240

  • Wisi Addict
  • ***
  • Hors ligne Hors ligne
  • Messages: 125
    • Voir le profil
[Résolu] deplacer un loadmovie???
« le: Novembre 15, 2007, 12:53:01 pm »
bonjour a tous,
je me permets de poster ici une discussion que j'ai eu sur un autre forum car je n'ai plus de reponse depuis presque une semaine :(

"je commence bricoler un peu avec flash.. j'ai un soucis pour le moment j'ai ma page de site internet avec un bouton qui charge un loadmovie tous marche bien sauf que le loadmovie apparait aux abscisses et ordonnées 0 et ya pas moyen de le bouger...
j'ai essayé de regarder sur les forums mais les explications sont completement incomprehensible pour mon niveau... voila le script que je charge sur le bouton:
on(press){
loadMovieNum("ZOOFR.swf",1);
}
quest ce que je dois rajouter pour que l'anim apparaisse aux coordonnées indiquées ?, merci d'avance
( merci de me parler comme a un enfant de 4ans ;))

REPONSE:

salut!

J'ai eu le problème moi aussi, le résoudre est très simple en fait...
Le swf que tu charges doit avoir la même dimension que ton anim principale; sachant que le fond blanc du swf chargé se mettra transparent par défaut, il te suffit de placer l'élément que tu veux charger sur ton anim principal au même endroit sur ton anim secondaire!

En admettant que tu load un carré rouge devant se placer en haut à gauche, place le sur ta scène principale, sélectionne le puis opère un Ctrl-X, puis un Ctrl-Shift-V sur ton anim à loader, ce qui le collera exactement à la même place.

Voilà, j'espère que c'est assez clair (langage assez simple pour un enfant de 4 ans? ;) )

MA REPONSE :

HELLO
merci pour ta reponse... c'est bien cette methode que j'ai utilisée pour charger mes autres loadmovie. Mais pour celui ci je ne peux pas faire comme ca... j'utilise la base de ce .fla mis a disposition par POONOO ( voir deuxieme message)
http://www.flashxpress.net/forum/showthread.php?t=59086
quand jouvrele .fla, le fichier avec le boxer  est positionné au abcisse et ordonnées zero zero masi des que je le copie colle dans mon anim principale et que je change ses coordonnées, ca modifie le fichier, la loupe se décale et l'effet grossissant ne se fait plus au meme endroit....j'ai donc besoin de le charger a un emplacement precis... et encore peut etre que ca ne fonctionnera toujours pas ...
Si qqn peut m'expliquer pourquoi ca se décalle quand on change les coordonnées ca m'aiderait enormement et si possible comment bouger le fichier dans l'anim principale sasn qu'il soit modifier...
merci d'avance
merci a ceux qui prendront le temps de lire ce post jusqu'au bout... en esperant que vous pourrez m'aider ...
IP archivée

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 662
    • Voir le profil
    • WWW
[Résolu] deplacer un loadmovie???
« Réponse #1 le: Novembre 16, 2007, 10:11:50 am »
Bonjour,

Ton problème est un problème récurant dès lors que l'on souhaite scinder une animation en X fichiers SWF.

Je pense qu'il vaut mieux comprendre une bonne fois pour toute plutôt que de chercher d'un forum à l'autre et recopier au petit bonheur des lignes de code sans les comprendre. Cela étant un peu de théorie...

Il y a plusieurs méthodes possibles dans Flash pour organiser un site ou des animations entre elles.

1. Un seul fichier SWF avec tout dedans et utilisation des images clés pour passer d’une partie à l’autre.
  Instruction (gotoAndPlay,GotoAndStop)

Inconvénient : Dès que le fichier devient volumineux nécessité de faire une barre de préload.

Avantage : abordable pour le graphiste débutant dans la programmation AS

2. X fichier SWF chargés à des niveaux différents par empilement.
   Instruction (loadMovieNum, _level)

Inconvénient : l’utilisation des _level est buggée. De plus il faut superposer les niveaux correctement ou utiliser des SWF de mêmes tailles.

Avantage : petits fichiers à appeler à la demande de l’utilisateur donc  pas besoin de barre de téléchargement.

3. X fichiers SWF chargés dans des MovieClip sur des profondeurs différentes.
     Instruction (MovieClipLoader, ou composant Loader, createEmptyMovieClip, attachMovieClip)

Inconvénient : être organisé dans sa tête notamment si on emboite les Movieclip les uns dans les autres

Avantage : C’est comme ça qu’il faut utiliser Flash pour optimiser le code et la fluidité des animations.


Comment faire pour la troisième solution ?

Je propose ici une solution universelle de chargement de jpg,gig,swf,png externes, dans des MovieClip, à la demande.

Le principe est le suivant :
Nous utilisons la classe MovieClipLoader. Cette classe sert uniquement à charger des fichiers externes de type swf,jpg,gif,png.... Elle s'utilise sous la forme d'une occurrence de cette classe et d'un écouteur sur ses méthodes.

Quand elle est en place il faut créer un MovieClip vierge (createEmptyMovieClip) puis l'appeler (loadClip). Le code que je mets à votre disposition est utilisable tel que dans toutes vos réalisations.

Pour tester créez un fichier SWF avec un texte animé dedans, par exemple. Mettez dans le même dossier une image jpg ou png.

Pour illustrer le code je considère que vous avez un fichier swf nommé texteanime.swf et une photo portrait.jpg dans le même dossier que le fichier CodePrincipal.swf

Fichier CodePrincipal.swf

1 calque sur lequel il y à une zone de texte dynamique nommée message dans les propriétés (non obligatoire juste pour pouvoir afficher les messages lors du chargement d’un fichier externe)

1 calque nommé ActionScript sur lequel il faut écrire le code suivant sur la première image clé (respect des majuscules, minuscule obligatoire) :

//--------------------------- Module de chargement universel   ----------------------------------------
//Création d'une occurrence de l'objet MovieClipLoader pour gestion du chargement JPG, SWF, GIF, PNG
var ChargementFichier:MovieClipLoader = new MovieClipLoader();
/*Création d'un objet d'écoute sur lequel nous placerons un écouteur
chargé de nous décrire ce qui se passe pendant le chargement*/
var EcouteurDeChargement:Object = new Object();
//Fonction gérant le début du chargement
EcouteurDeChargement.onLoadStart = function(clipActuel:MovieClip):Void  {
//Message ça commence
message.text = "Le chargement débute"
message._visible = true;
};
//Fonction gérant l'arrivée des octets
EcouteurDeChargement.onLoadProgress = function(clipActuel:MovieClip, octetsCharger:Number, totalACharger:Number) {
//Message Déjà disponible
message.text = "Déjà disponible .."+((Math.round(octetsCharger/1024)*100)/100)+" Ko / "+((Math.round(totalACharger/1024)*100)/100)+" Ko";
message._visible = true;
};
//Fonction gérant la fin du chargement
EcouteurDeChargement.onLoadComplete = function(clipActuel:MovieClip):Void  {
//Message disponible
message.text = "Le fichier est complètement chargé"
message._visible = true;
};
//Fonction gérant l'exécution de la première image  de l'élément chargé
EcouteurDeChargement.onLoadInit = function(clipActuel:MovieClip):Void  {
message.text = "";
message._visible = false

/*En fonction du nom du Movie clip chargé, positionnement à l'écran.
il faut recopier les lignes suivante pour chacun des clips que
                vous souhaitez charger*/  
                //Traitement du fichier swf contenant l'animation du texte
  if (clipActuel._name == "AnimationTexte") {
/*Position à l'écran centré ou
clipActuel._x = valeur en pixel
clipActuel._y = valeur en pixel*/
                                //Centrage horizontal du texte à l'écran et position en haut
clipActuel._x = (Stage.width-clipActuel._width)*.5;
clipActuel._y = 0
}
              //Traitement du MovieClip contenant la photo
              if (clipActuel._name == "Photo") {
//Centrage de la photo
clipActuel._x = (Stage.width-clipActuel._width)*.5;
clipActuel._y = (Stage.height-clipActuel._height)*.5;
}


};
//Fonction gérant les erreurs de chargement
EcouteurDeChargement.onLoadError = function(clipActuel:MovieClip, codeErreur:String,numeroErreur:Number):Void  {
message.text = codeErreur + " " + numeroErreur
message._visible = true;
};
//Activation de l'écouteur de chargement
ChargementFichier.addListener(EcouteurDeChargement);
Bien maintenant faites une 2 image clé vide sur le calque ActionScript puis :

/*Dès que je souhaite appeler un fichier SWF externe ou autre image jpg, png, gif ...
je pratique comme suit :
this.createEmptyMovieClip("Le nom du MovieClip a créer", Profondeur)
ChargementFichier.loadClip(le nom du fichier SWF à charger,le nom du MovieClip qui vient d'être créé.)*/
//Création d'un MC chargé de recevoir le fichier swf contenant l'animation du texte
this.createEmptyMovieClip("AnimationTexte",0)
//Appel à la fonction de chargement précédement créé
ChargementFichier.loadClip("texteanime.swf",AnimationTexte)
//Création d'un MC chargé de recevoir la photo
this.createEmptyMovieClip("Photo",1)
//Appel à la fonction de chargement
ChargementFichier.loadClip("Portrait.jpg",Photo)
stop();
Voilà bon courage...
IP archivée
Savoir mal est pire qu'ignorer

Yorigami

  • Modérapeur
  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 1851
    • Voir le profil
    • WWW
    • E-mail
[Résolu] deplacer un loadmovie???
« Réponse #2 le: Novembre 16, 2007, 10:35:26 am »
Je suis complètement scotché par ta maîtrise, ton analyse et tes développements pour chaque discussion ou tu interviens RMistral.
Merci de nous faire partager cela. :)
IP archivée
MacIntel Pro 2x3 GHz 4Go Ram //

kriztho

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 1500
    • Voir le profil
    • WWW
    • E-mail
[Résolu] deplacer un loadmovie???
« Réponse #3 le: Novembre 16, 2007, 11:06:19 am »
Excellent et très fort effectivement.
Petite remarque sur la syntaxe proposée pour le [c]createEmptyMovieClip()[/c], tu ne le déclares pas en tant que variable et pour la profondeur pourquoi ne pas utiliser la méthode [c]getNextHighestDepth ()[/c] ? :
var conteneur_mc:MovieClip = this.createEmptyMovieClip("conteneur_mc",this.getNextHighestDepth ())
IP archivée
______________________________________________________________
Je ne connais pas grand chose, mais je progresse...
[La veille techno du web] - [Histoire d'écrire de l'informatique]

RMistral (Wisi)

  • Global Moderator
  • Wisi Comment on décroche
  • *****
  • Hors ligne Hors ligne
  • Messages: 662
    • Voir le profil
    • WWW
[Résolu] deplacer un loadmovie???
« Réponse #4 le: Novembre 16, 2007, 11:13:55 am »
Pour la déclaration tu a raison, j'ai oublié. Je mérite une baffe !!!

Le getNextHighestDepth  pose des problèmes s'il y à utilisation simultanée des composants V2. Adobe le déconseille dans la doc donc par habitude je ne l'utilise plus.
IP archivée
Savoir mal est pire qu'ignorer
 




 
Wisibility.com
Wisibility est un sité dédié à la formation aux métiers l’image. Vous y trouverez différentes ressources gratuites et payantes vous aidant à maîtriser les logiciels graphiques tels que Photoshop, Illustrator, InDesign, Flash…

Aujourd’hui, Wisibility réunit une vingtaine d’experts, intervenant en Entreprise pour former graphistes, webdesigners, développeurs web, photographes, monteurs, trucistes…

Depuis 2006 nous nous sommes spécialisés dans les tutoriels vidéos permettant de se former à distance. Des centaines de tutoriels accessibles gratuitement et une boutique sur laquelle vous trouverez des formations complètes et des exercices pratiques.

Wisibility organise des événements graphiques, réalise une WebTV

Wisibility sur Adobe TV

Retrouvez nos tutoriels et nos émissions
sur le site officiel Adobe



 
Nos partenaires

Adobe   fotolia   WebINK   Amka   macandphoto   club
 


Contact - Wisibility est une marque déposée - Mentions légales

Creative Commons License

infos - inspiration - rendez-vous - logiciels materiels - tutoriels gratuits - formations en ligne - forums - galeries - glossaire - wisi tv