Site complet en flash : part 4

Retrouvez ici les topics qui font suite aux cours présentés sur explainMe. Si vous avez des questions par rapport aux cours, des remarques ou encore des infos à ajouter, c'est ici.

Re: Site complet en flash - part 4

Messagepar explainMe sur Mer 02 Sep 2009 18:16

Très bonne question(s) en effet !

Malheureusement j'ai bien peur que la réponse te déçoive un peu...

Comme tu l'as très bien compris, nous sommes ici en train de charger le SWF dans son entier (donc le clip interface, et le menu qu'il contient également), ainsi que le preloader).

Du coup effectivement, pour pouvoir afficher au minimum le preloder, il faut que celui-ci soit chargé !
Donc s'il représente la majorité du poids de ton fichier, ça pose problème fatalement. :(

Malheureusement pour ce cas de figure il n'y a pas réellement de solution (si une en fait, mais je garde un peu le suspense).

//=== APARTÉ ================================================

J'en profite pour signaler que le même type de problème peu survenir sur un swf qui contient des clip dans sa bibliothèque qui sont destinés à êtres chargés vie attachMovie();.
Pourquoi ?

Parce que bien souvent lors de la création de la liaison, on coche la magnifique case 'exporter dans l'image 1' (et paf ! C'est le drame !).
La solution ici est la suivante :
    1. décocher la fameuse case
    2. placer tous les clips concernés sur une image clef, quelque part sur la timeline où vous êtes sûr que l'internaute n'ira jamais.

//=== FIN APARTÉ ================================================

Sinon pour en revenir à ton cas de figure, il n'y a que 2 solutions :

    1. Comme tu l'as deviné, il faut que ton clip contiennent plus de contenu, de sorte que ton preloader ne représente plus qu'une part dérisoire du poids total de l'animation
    2. Créer complètement le preloader en ActionScript (c'est à dire que même la barre de progression est dessinée à partir de l'AS). Car l'AS lui, ne pèse presque rien !
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Messagepar Paperjuice sur Mer 02 Sep 2009 19:22

Je vois, merci pour ces réponses :]

Dans ce cas je vais continuer le cours pour le moment, et si je m'aperçois que le problème persiste même avec une taille totale plus importante, alors je me renseignerai sur le dessin via AS.

Merci encore et à bientôt !
Paperjuice
Nouveau membre
 
Messages: 3
Inscrit le: Lun 31 Aoû 2009 14:40
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Site complet en flash - part 4

Messagepar explainMe sur Mer 02 Sep 2009 19:29

Si tu n'es pas pressé, une fois le cours achevé (tous les chapitres), je ferait un chapitre supplémentaire avec quelques infos relatives aux différentes questions qu'y m'auront été posées lors de la publication du cours.
à cette occasion, je donnerai certainement un exemple de script (+ explications) pour faire ça.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 4

Messagepar Muktaditi sur Lun 02 Nov 2009 10:39

bonjour...

question relative a l'ajout d'un curseur dans le sous menu...

j'ai créé un truc simple, pour bien comprendre...

Mon sousMenu est constitué d'un fond, des textes statiques, d'un curseur et des boutons invisible
et voici mon code :
Code: Tout sélectionner
//
//--------------------------------------------- Initialisations ---//
//
//
//--- Importation de la class Tween ---
//
import fl.transitions.*;
import fl.transitions.easing.*;
//
//--- Positions initiales des curseurs et du sousMenu ---
//
var posInitCurseur:Number = menu1.curseur.x;
var posInitSousMenu:Number = menu1.sousMenu.y;
var posInitCurseur2:Number = menu1.sousMenu.curseur2.x;
//
//------------------------------------------- Animation du menu ---//
//
//
//--- Fonction deplaceCurseur ---
//
function deplaceCurseur(event:MouseEvent) {
   var translationCurseur:Tween = new Tween(menu1.curseur, "x", Strong.easeOut, menu1.curseur.x, event.currentTarget.x, 1, true);
}
//
//--- Fonction initCurseur ---
//
function initCurseur(event:MouseEvent) {
   var translationCurseur:Tween = new Tween(menu1.curseur, "x", Strong.easeOut, menu1.curseur.x, posInitCurseur, 1, true);
}
//
//---Fonction deplaceSousMenu ---
//
function deplaceSousMenu(event:MouseEvent){
   var translationSousMenu:Tween = new Tween(menu1.sousMenu, "y", Strong.easeOut, menu1.sousMenu.y, menu1.bPresentation.y-70, 1, true);
}
//
//---Fonction initSousMenu ---
//
function initSousMenu(event:MouseEvent){
   var translationSousMenu:Tween = new Tween(menu1.sousMenu, "y", Strong.easeOut, menu1.sousMenu.y, posInitSousMenu, 1, true);
}
//
//---Fonction deplaceCurseur2 ---
//
function deplaceCurseur2(event:MouseEvent) {
   var translationCurseur2:Tween = new Tween(menu1.sousMenu.curseur2, "x", Strong.easeOut, menu1.sousMenu.curseur2.x, menu1.sousMenu.currentTarget.x, 1, true);
}
//
//---Fonction initCurseur2 ---
//
function initCurseur2(event:MouseEvent) {
   var translationCurseur2:Tween = new Tween(menu1.sousMenu.curseur2, "x", Strong.easeOut, menu1.sousMenu.curseur2.x, posInitCurseur2, 1, true);
}


//
//----------------------------------------- Actions des boutons du menu1---//
//
//
//--- bPresentation ---
//
this.menu1.bPresentation.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur);
this.menu1.bPresentation.addEventListener(MouseEvent.MOUSE_OUT, initCurseur);
this.menu1.bPresentation.addEventListener(MouseEvent.CLICK, initSousMenu);
//
//--- bRealisations ---
//
this.menu1.bRealisations.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur);
this.menu1.bRealisations.addEventListener(MouseEvent.MOUSE_OUT, initCurseur);
this.menu1.bRealisations.addEventListener(MouseEvent.CLICK, deplaceSousMenu);
//
//--- bContact ---
//
this.menu1.bContact.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur);
this.menu1.bContact.addEventListener(MouseEvent.MOUSE_OUT, initCurseur);
this.menu1.bContact.addEventListener(MouseEvent.CLICK, initSousMenu);
//
//--- bLiens ---
//
this.menu1.bLiens.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur);
this.menu1.bLiens.addEventListener(MouseEvent.MOUSE_OUT, initCurseur);
this.menu1.bLiens.addEventListener(MouseEvent.CLICK, initSousMenu);
//
//--- Actions des boutons du  sousMenu---//

this.menu1.sousMenu.bDesign.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur2);
this.menu1.sousMenu.bDesign.addEventListener(MouseEvent.MOUSE_OUT, initCurseur2);

this.menu1.sousMenu.bMusique.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur2);
this.menu1.sousMenu.bMusique.addEventListener(MouseEvent.MOUSE_OUT, initCurseur2);

this.menu1.sousMenu.bDirAct.addEventListener(MouseEvent.MOUSE_OVER, deplaceCurseur2);
this.menu1.sousMenu.bDirAct.addEventListener(MouseEvent.MOUSE_OUT, initCurseur2);

quand je teste j'ai :

TypeError: Error #1010: Un terme n'est pas défini et n'a pas de propriété.
at reeeeeeeessais_fla::MC_INTERFACE_3/frame1()

j'ai beau chercher, je ne vois pas....
Avatar de l’utilisateur
Muktaditi
Habitué
 
Messages: 56
Inscrit le: Jeu 29 Oct 2009 08:50
Reputation points: 1
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 4

Messagepar explainMe sur Lun 02 Nov 2009 19:55

Salut,

Je ne vois rien de choquant dans ton code qui me semble bon à première vue.

Ce type d'erreur est due à un terme présent dans le code que flash n'arrive pas à retrouver dans les éléments physiques.

C'est à dire qu'un nom d'occurrence utilisé dans le code ne correspond à aucune nom d'occurrence d'aucun objet sur la scène.

Il peut s'agit d'une erreur dans le nom d'occurrence d'un objet :

ex : cusreur au lieu de curseur

Ou encore d'une non-correspondance des noms :
ex : Curseur et curseur

Ne pas oublier que l'ActionScript est sensible à la casse des caractères.

Enfin un espace peut s'être glissé dnas le nom d'une occurrence :

ex : cur seur ou _curseur ou curseur_ au lieu de curseur (où "_" désigne un espace).

Il faut juste refaire le tour des objets sur la scène et vérifier tous les nom d'occurrence pour s'assurer qu'ils correspondent à ceux utilisés dans le code. à ceux utilisés partout dans le code (il peux aussi s'agir d'un seul nom d'occurrence écrie de 2 manières différences dans le code, auquel cas le souci se trouve dans le code et non sur les occurrences).
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 4

Messagepar Muktaditi sur Mar 03 Nov 2009 09:16

bonjour...

Je me doutais bien que le problème était de cet ordre, j'ai vérifié et revérifié, je ne trouve rien, et ce n'est pas la première fois que ça arrive, c'est pour ça que je recommence sans arrêt la même chose...

tout à bien fonctionné jusqu'a ce que je rajoute les boutons du sousMenu et le curseur2... je vais refaire cette partie...parceque là, tous les noms d'occurences correspondent à ceux que j'ai mis dans le code...

Sincèrement, bloquer sur des trucs du genre c'est pénible...du coup j'avance pas pour la suite...
suite au prochain numéro....Merci



1/2 heure après:
j'ai renommé le curseur2 en etoile

ça marche :mrgreen:
Avatar de l’utilisateur
Muktaditi
Habitué
 
Messages: 56
Inscrit le: Jeu 29 Oct 2009 08:50
Reputation points: 1
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 4

Messagepar explainMe sur Mar 03 Nov 2009 19:10

Tant mieux.

En revanche c'est étrange, normalement ça ne devrait pas poser de problème. Un nom d'occurrence peut contenir un chiffre tant qu'il commence par une lettre (en principe...).

L'essentiel est que tu ai fini par te sortir d'affaire cela dit.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 4

Messagepar Ptitemimi sur Dim 28 Fév 2010 00:31

Bonsoir et bien moi j'ai un petit soucis
jusqu'a présent tout s'est bien passé mais là je ne sais pas où mettre le code pour le sous menu :(
je fais le site en AS3 mais je n'ai besoin que des sous menus du portfolio
pourriez vous m'expliquer s'il vous plait
je vous remercie beaucoup pour vos tutos qui sont vraiment très bien fait :)
bon week end ;)
Ptitemimi
Nouveau membre
 
Messages: 1
Inscrit le: Dim 28 Fév 2010 00:24
Reputation points: 0
Add reputation pointSubtract reputation point

Re: Site complet en flash : part 4

Messagepar explainMe sur Lun 01 Mar 2010 20:29

Bonjour et merci pour le compliment :oops: ,

Alors le code du sous-menu, si tu as suivit l'arborescence du cours, se place sur la première image, dans le clip MC_INTERFACE.

En gros le code se place comme suit :

- niveau 1 ---------- preload et clip interface (uniquement le code du prealoader, juste histoire de le séparer du reste)
---------- niveau 2 ---------- DANS le clip interface (tout le reste du code)
---------------------------------------- import de classe(s) (si nécessaire, comme la classe Tween par exemple)
---------------------------------------- déclaration des variables
---------------------------------------- fonctions
---------------------------------------- écouteurs


Au niveau de la hiérarchie des objets, nous sommes comme ceci :

- niveau 1 ---------- à la racine de l'animation :
---------- niveau 2 ----------- le clip preload
--------------------------------- le clip interface
-------------------- niveau 3 ---------- DANS le clip interface :
------------------------------------------ le CODE
------------------------------------------ le clip fond
------------------------------------------ le clip menu
---------------------------------------------------- niveau 4 ---------- DANS le clip menu :
-------------------------------------------------------------------------- les champs de textes, boutons et autres éléments constitutifs du menu.
------------------------------------------ le clip sous-menu
---------------------------------------------------- niveau 4 ---------- DANS le clip sous-menu :
-------------------------------------------------------------------------- les champs de textes, boutons et autres éléments constitutifs du sous-menu.
------------------------------------------ le clip conteneur (qui contiendra les swf externes que nous chargeons suivant le besoin)

C'est pourquoi dans le code, comme nous somme au même niveau que le clip sous-menu, lorsque nous voulons faire référence aux boutons contenus DANS le clip sous-menu, nous utilisons un code du type :

this.sousMenu.boutonA.addEventListener(...);

Où :
this est un mot réservé en ActionScript (c'est une sorte de raccourcis pour indiquer (l'endroit/l'objet où je me trouve actuellement : ici le clip interface donc).
sousMenu[/i] est le nom d'occurrence que l'on aurait donné à notre clip sous-menu.
et [i]boutonA
serait le nom d'occurrence que l'on aurait donné à l'un des boutons que contient le sous-menu.

Est-ce plus clair pour toi ?

N'hésites pas sinon.
"If you can't explain it simply, You don't understand it well enough."

www.explain-me.com | forum.explain-me.com | infoTRASH
Avatar de l’utilisateur
explainMe
Administrateur
 
Messages: 267
Inscrit le: Ven 03 Oct 2008 19:09
Localisation: Toulouse
Reputation points: 4
Add reputation pointSubtract reputation point
Nombre de post utiles: 1

Re: Site complet en flash : part 4

Messagepar lokoloks sur Jeu 29 Avr 2010 15:54

Bonjour Boris, bravo pour ton site, certainement le tuto le plus clair depuis que j'ai eu la chance de faire.
Je commence juste a m'intéresser à flash, je rame pas mal, et la je suis coincé!

Il me semble avoir tapé le code correctement, et j'ai toujours l'erreur TypeError: Error #1010: Un terme n'est pas défini et n'a pas de propriété.
at interface_fla::MC_interface_3/initSousMenu()
at interface_fla::MC_interface_3/afficheSousMenu()

Est il possible de t'envoyer mon fichier .fla pour que tu me dises si mon code est bien placé et quelles sont mes erreurs???

D'avance merci pour ton aide et ta générosité.
lokoloks
Nouveau membre
 
Messages: 2
Inscrit le: Jeu 29 Avr 2010 15:43
Reputation points: 0
Add reputation pointSubtract reputation point

PrécédentSuivant

Retourner vers Suite des cours

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 0 invités

cron