Questions de super Nioub

goonzy Messages postés 8 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 1 mai 2010 - 13 févr. 2010 à 00:06
goonzy Messages postés 8 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 1 mai 2010 - 21 févr. 2010 à 15:42
Bonjour,

Je suis un super débutant avec Flash et pour égayer un peu un boulot musical que j'ai fait, je suis en train de réaliser une petite anime Flash d'habillage. Et je me toruve face a pas mal de problemes.

Premier problème: Etant donné que mon "video clip" sera un enchainement de scenettes vaut-il mieux que je crée un projet ou chaque scenette sera une "séquence", ou vaut il mieux que je sauve chaque scenette dans un .swf séparé et que je les charge au fur et a mesure dans un projet "maitre" (et dans ce cas comment faire?)

2eme probleme: J'ai repris un bout de code pour jouer un mp3 en stream durant le "video clip". Je le colle dans un layer à la première keyframe de mon anim, mais quand je lance le test d'animation, l'anim reste figée (mais le son joue bien. Du coup, je me demande s'il faut que je le place autrement ou si j'ai autre chose à faire

Voici le code utilisé:

// Variables
var monSon:Sound = new Sound();
var fichierMP3:URLRequest = new URLRequest("http://g00nzor.free.fr/c64mix.mp3");
var canal:SoundChannel = new SoundChannel();

// chargement du mp3
monSon.load(fichierMP3);

// Lecture du son
canal = monSon.play();

Dernière Question: Dans certaines scenettes, je voudrais avoir un defilement de texte horizontal. Je vois bien comment créer un champs de texte Dynamique dans lequel je colle le texte que je veux voir défiler. Mais je ne trouve que des tutos pour voir le champs défiler sur un déplacement avec la souris (alors que je ne veux qu'un déplacement a vitesse fixe qui tourne en boucle le temps que le reste de l'animation se termine)

Je sais ce sont des questions qui doivent paraitre évidentes mais n'aiyant aucune base de programation, ca n'est pas évident du tout pour moi. Donc merci d'avance

6 réponses

docodoc Messages postés 1671 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2013 4
13 févr. 2010 à 09:09
salut
1 - PAS DE SEQUENCES
dans Flash !!!!! ----> c'est tres mal les sequences dans Flash et tu auras (tu as deja ?) des gros problemes de ciblages
utilises des clips ou - encore mieux - met tout en externe et charges au fur et a mesure
---> interesse toi aux createEmptyMovieClip(), leurs placement sur la scene et aux loadMovie()
2 - en meme temps que tu lances ta musique, lance aussi ton clip --> play() !
3 - fait defiler horizontalement clip texte via un onEnterFrame() et fait-le agir sur le _x du clip
la boucle va se faire avec une condition inseree dans le onEnterFrame style : if (tonClip._x<=....){tonClip._x= ....}
voila
bonne continuation
a+
0
goonzy Messages postés 8 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 1 mai 2010
13 févr. 2010 à 14:51
Merci pour tes reponses...

J4ai déja résolu mon premier probleme. EN fait, j'avais repris un script de preloader qui faisait un gotoAndStop à la fin... du copu comme j'avaismis le player sur la meme Keyframe ca le lancait mais le reste de l'anim restait figé..


Pour les sequences... aille.. j'ai déja pas mal avancé ... qu'entends tu par probleme de ciblage... pour le moemnt, je fais ma sequence et en derniere frame, je fais un gotoAndPlay (1,nom_sequence_suivante) et ca fonctionne comme je le veux... C'est vrai que ca m'arrange d'avoir tout en un seul fichier... mais je suivrai ton conseil pour la 2eme partie du projet.

Pour le texte... euh ah je suis paumé.

En gros je pensais faire un truc du genre:

Creer un champs de texte dynamique nommé Texte sur le calque, limité à une ligne..

addEventListener(Event.onEnterFrame,scrollTexte);

function scrollTexte(event:Event):void {
Texte.scrollH -=1;
}

Et sion, en admettant que j'aie un texte relativement long, et dont je voudrais voir chaque lettre suivre un "path", il va falloir que je divise tout le texte en calques séparés ou y'a un moyen "facile" de le faire?

Remerci d'avance.

Mais évidemment ca ne marche pas :)
0
docodoc Messages postés 1671 Date d'inscription dimanche 6 mars 2005 Statut Membre Dernière intervention 21 juillet 2013 4
13 févr. 2010 à 18:12
pour les sequences, saches que c'est une source de noeuds/prises de tete sans fin et de l'avis general il vaut mieux les eviter comme la peste .... mais a toi de voir hein !

pour ton texte tu veux juste faire un scroll, dsl je n'avais pas compris

finalement, si tu veux animer plusieurs objets separement (lettres) dans ton fla il est clair que tu dois les convertir en symboles et ensuite soit les repartir sur la timeline soit leur dire a chacun en code ce qu'ils doivent faire et quand le faire

a mon avis le moyen le plus "facile" ( et zouli en + !) est d'utiliser des tweens, chacune declanchant la suivante au onComplete
mais vois du cote de la class tweenMax
a+
0
goonzy Messages postés 8 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 1 mai 2010
15 févr. 2010 à 19:29
Re merci pour ty=es reponse.. effectivement les sequences peuvent devenir fastidieuses pour un truc "interactif" mais aufinal dans ma configuration ca marche plutot pas mal.. mais la suivante, je ferai du load de clip clairement vu qu'il y'aura un menu "interactif"

La classe Tweenmax de greensock a l'air vraiment terrible, je me choppe ca direct :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
goonzy Messages postés 8 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 1 mai 2010
17 févr. 2010 à 02:06
JE devrais peut être ouvrir un nouveau post mais finalement ca correspod toujours à cette scene

Donc j'ai un petit code pour scroller un texte de gauche a droite, et je voudrais qu'a la fin (disparition du dernier mot), passer à la frame 1 de la scene suivante.

Le probleme c'ets que quand je lance mon anim, ca passe direct a l'anim suiante et ca continue de jouer derriere elle.

Je suppose que c'est parce que je ne sais pas encore gérer les évennements et du coup, je suis obligé de coller un gotoAnPlay(1,nextScene) sur une frame vide sur la timeline correspondant au temps de sortie du texte.

voici mon code pour l'instant

// Nouvelle instance de la police importée Font1 dans la library.
var myFont:Font = new Font1();

/* Creation du TextFormat object, et mise en forme de la font utilisée */
var myFormat:TextFormat = new TextFormat();
myFormat.font = myFont.fontName; //police
myFormat.size = 10; //taille
myFormat.color = 0x6959bf //couleur

// Rectangle bleu de fond simulant le screen du Basic
var rectangle:Shape = new Shape ();
rectangle.graphics.beginFill(0x2D1F7D);
rectangle.graphics.drawRect(0, 0, 384, 322);
this.addChild(rectangle);


/* Mise en forme du champs texte avec le defautlTextFormat defini avec le format crée et l'intégration de la police avec embedFonts = true. */
var myTextField:TextField = new TextField();
myTextField.width = 2000;
myTextField.defaultTextFormat = myFormat;
myTextField.embedFonts = true;
myTextField.text = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&é"'(§è!çà)-^$ù`=:;,<>?./+%£¨*_°0987654321tc.......";
// var posX= myTextField.width; // variable pour prendre la taille du champs texte mais pas utilisée


addChild(myTextField);


// Masque de bordures simulant l'overscan du C64
var rectangle2:Shape = new Shape ();
rectangle2.graphics.beginFill(0x6959bf);
rectangle2.graphics.drawRect(0, 0, 384, 40);
this.addChild(rectangle2);

var rectangle3:Shape = new Shape ();
rectangle3.graphics.beginFill(0x6959bf);
rectangle3.graphics.drawRect(0, 241, 384, 282);
this.addChild(rectangle3);

var rectangle4:Shape = new Shape ();
rectangle4.graphics.beginFill(0x6959bf);
rectangle4.graphics.drawRect(0, 0, 30, 282);
this.addChild(rectangle4);

var rectangle5:Shape = new Shape ();
rectangle5.graphics.beginFill(0x6959bf);
rectangle5.graphics.drawRect(351, 0, 384, 282);
this.addChild(rectangle5);

// Creation de l'évennement. On repositionne à chaque frame
addEventListener(Event.ENTER_FRAME,ScrollTexte);

var i:int=0;

//Fonction de déplacement
function ScrollTexte (e:Event) {
myTextField.x=384+(i--);
myTextField.y= 131;

/* Si l'abcisse de mYTexfield est inférieure a la valeur negative de myTextField.width, on arrete l'eventlistener et on va à la scene suivante */
if (myTextField.x < -2000){
myTextField.removeEventListener(Event.ENTER_FRAME, ScrollTexte);
gotoAndPlay (1,"nextSeq");
}
}


Et donc ça ne marche pas... pas d'erreur de compil, maisca n'attend pas la fin du scroll.

si quelqu'un peut me guider?
0
goonzy Messages postés 8 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 1 mai 2010
21 févr. 2010 à 15:42
rooh suffit de mettre un stop() au debut ...je me sens faiiiible des fois :)
0