Contribuez ici à la FAQ Flash
Dans le cadre de la refonte de la FAQ Flash, nous faisons appel à vos connaissances pour nous aider.
Vous pouvez, dès à présent, postez vos propositions de Q/R à la suite de ce post. Si elles se révèlent intéressantes, elles seront intégrées à la FAQ avec votre nom. Indiquez dans votre post si vous voulez afficher votre nom complet ou seulement votre pseudo. Vous pouvez aussi participer en découvrant des erreurs dans la FAQ, des fautes d'orthographe, des liens morts ou en complétant une question/réponse actuelle.
Règles importantes pour participer :
:arrow: Si vous proposez une question, vous devez impérativement proposer la réponse qui va avec ... (les questions sans réponses seront supprimées)
:arrow: Un code source n'est pas une réponse en soit. Il est grandement apprécié de rédiger un paragraphe pour approfondir le sujet, apporter des précisions sur ce qu'on fait, pourquoi on fait comme ça, etc. On peut aussi en profiter pour inviter le lecteur à lire des questions/réponses dans des domaines proches ...
:arrow: Un code source doit être court : les imports ne sont pas nécessaires, aller à l'essentiel en 5 ou 6 lignes.
:arrow: En dessous des réponses sont souvent proposés des liens. Pensez à indiquer les liens utiles pour que le lecteur puisse approfondir. Cela peut être des liens vers des ressources de developpez.com, des Q/R de la FAQ ou des ressources externes.
:arrow: Dans certains cas, en plus des exemples courts dans la réponse, on peut ajouter un programme complet.
:arrow: Pensez à indiquer également la version d'ActionScript que vous utilisez pour votre exemple.
Merci à tous pour vos contributions
Bonne rédaction.
Cordialement,
comment remplir une matrice par des chiffres stockés dans un fichier texte ?
merci de faire figurer mon prénom : Mohamed Slim
cet exemple est souvent utilisé dans les jeux vidéo pour la création de la surface du jeu.
le code est en AS2.
le fichier doit contenir les données sous cette forme (sur la même ligne pour ne pas gérer les retours de ligne):
Code:
texte=1 ,2 ,3 ,4 ,5 ,0 ,1 |0, 0 ,0 ,0, 0 ,0 ,0|0, 0 ,0 ,0 ,0 ,0, 0|0 ,1 ,0, 1, 0, 2 ,0|0, 0, 0 ,0 ,0 ,0, 0|1, 0 ,0 ,0, 0 ,0 ,1|
notre matrice va contenir 6 lignes et 7 colonnes.
texte est la variable à utiliser dans le code ActionScript qui peut être fait de cette façon :
Code:
1 2 3
|
temp = new Array();
matrice = new Array(); |
temp et un premier tableau pour contenir la décomposition de texte suivant le caractére " | "
Code:
1 2
| //pour faire le transfert de variables entre une animation flash et une source externe.
variables = new LoadVars(); |
Code:
1 2 3 4 5 6 7 8 9 10 11
| // fonction qui se déclenche à la fin du chargement
variables.onLoad=function()
{
temp = variables.texte.split("|");
for(n=0;n<temp.length;n++)
{
// découpage de temp suivant le caractère virgule " , "
matrice[n] = temp[n].split(",");
}
} |
Code:
1 2 3
|
// chargement de variables à partir du fichier " fichier.txt " et place les variables obtenues dans un objet LoadVars
variables.load("fichier.txt"); |
Comment créer un tableau de deux dimensions en AS2
Code:
1 2 3 4
| matrice = new Array();
for(var i=0;i<nb;i++)
matrice[i] = new Array(); |
après pour remplir le tableau matrice, on peut faire :
Code:
1 2 3 4
|
for(var i=0;i<nb;i++)
for(var j=0;j<nb;j++)
matrice[i][j] = valeur; |
coment faire le tri d'un tableau contenant des objets en AS2
Supposant qu'on cherche à faire le tri d'un tableau contenant des objets MovieClips suivant la valeur de l'ordonnée. la propriété ici est _y .
donc on doit utiliser la fonction sortOn de la façon suivante :
Code:
1 2 3 4 5 6 7
| TAB.sort(order);
function order(a, b):Number {
if (a._y<b._y) return -1;
if (a._y>b._y) return 1;
return 0;
} |
liens utilies :
fonction sort : http://help.adobe.com/fr_FR/FlashPla...LangRef_1.html
fonction sortOn :http://help.adobe.com/fr_FR/FlashPla...LangRef_1.html
comment changer le framerate d'une animation flash en AS3 ?
Code:
stage.frameRate=50;
le changement de la fréquence d'animation n'est pas possible en AS2
comment passer d'un code en AS2 à AS3 et inversement
il faut faire la traduction du code vers la version cible.
sur cette page, on trouve la correspondance entre les instructions AS2 et les instructions AS3
comment obtenir un nombre aléatoire entre deux autres
il faut utiliser la fonction Math.random():Number qui renvoie un nombre entre 0 et 1.
Code:
1 2 3 4
| function aléatoire(min:Number, max:Number):Number
{
return (max-min)*Math.random()+min;
} |
la fonction aléatoire renvoi un nombre réel. pour obtenir un entier, on peut utiliser la fonction Math.round de cette façon :
Code:
entier_aléatoire = Math.round(aléatoire(X,Y));
comment lire un son en boucle en AS2
au début, il faut importer le fichier son dans la bibliothèque.
il faut attribuer un nom de liaison pour ce fichier.
on écrit ensuite ce code:
Code:
1 2 3
| son = new Sound();
son.attachSound("nom_liaison");
son.start(); |
à la fin, pour faire la lecture en boucle, on utilise l'évènement onSoundComplete
Code:
1 2 3 4
| son.onSoundComplete = function()
{
this.start();
} |
Comment ouvrir un fichier externe en AS2
Tout d'abord, il faut avoir un fichier .exe qui permet d'ouvrir un fichier externe.
Une manière de le faire est de créer un fichier .bat et convertir ce dernier en .exe.
un exemple :1)- Ouvrir un fichier texte avec bloc note;
2)- Ecrire C:\Users\slim_java\Desktop\flash\ActionScript.pdf dans ce fichier;
3)- Enregistrer ce fichier sous l'extension .bat
4)- Utiliser un logiciel pour convertir le fichier .bat en .exe.
Maintenant, après avoir eu ce .exe, on doit crée un répertoire qui porte le nom fscommand et mettre le .exe dans ce répertoire.
Finalement, dans la scène flash, on doit créer un bouton sur lequel on met le script suivant :
Code:
1 2 3 4 5 6 7
|
// En suppose que le fichier .exe porte le nom ouvrir.exe
on (release)
{
fscommand("exec", "ouvrir.exe");
} |
Comment connaitre la version du Flash Player
En ActionScript 2:
Code:
trace(getVersion());
En Actionscript 3:
Code:
trace(flash.system.Capabilities.version);