JDNet | Solutions | Emploi | Votre high-tech
 
Linternaute | Copainsdavant
Séminaires & Evénements | Etudes
   

Rechercher  

 
Sociétés Prestataires Carnet Formations Progiciels Encyclo Fonds Guide d'achat Comparateur Téléchargement Livres
Actualités
   2003
   2002
   2001
   Livres
Rubriques
   Java/J2EE
   PHP
   XML
   Client Web
   Technos .NET
   Flash
   Algo/Méthodes
   Outils

Dossiers
   Tous les dossiers

   PHP, Flash, SVG
   Perl / CGI - SSI
   Langages Web
   Services Web
   Sécurité
Ressources
   Interviews

   Téléchargement
   Composants
   Documentation
Contacts
   Rédaction
   Webmaster
© Benchmark Group


SWFAction


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- Crée une nouvelle action.

Description
new swfaction ( string script)

swfaction() crée une nouvelle action, et compile le script script.

La syntaxe du script est basée sur le langage C, mais il utilise aussi beaucoup de notions propres à SWF : le bytecode SWF est trop simpliste pour faire l'essentiel de ce que l'on veut. Par exemple, il n'est pas possible de faire des fonctions sans descendre profondément dans les entrailles de la machine, car le bytecode de saut est écrit en dur. Pas moyen de pousser une adresse dans la pile, ou de dépiler - Chaque fonction doit savoir exactement où elle retourne.

Alors, que reste-t-il? Le compilateur reconnaît les mots suivants :

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

Il n'y a pas de type de données : toutes les valeurs de SWF sont stockées comme des chaînes de caractères. Les fonctions suivantes peuvent être utilisées dans les expressions :

time()

Retourne le nombre de milli-secondes depuis le début de l'animation.

random(seed)

Retourne un nombre pseudo-aléatoire, entre 0 et seed.

length(expr)

Retourne la taille de l'expression donnée.

int(number)

Retourne le nombre number, arrondi à l'entier inférieur le plus proche.

concat(expr, expr)

Retourne la concaténation des deux expressions.

ord(expr)

Retourne le code ASCII du caractère expr.

chr(num)

Retourne le caractère pour le code ASCII num.

substr(string, location, length)

Retourne la sous-chaîne, extraite de string, de longueur length et commençant au caractère location.

De plus, les commandes suivantes sont accessibles :

duplicateClip(clip, name, depth)

Duplique le sprite nommé clip. La nouvelle animation a le nouveau nom name et la profondeur depth.

removeClip(expr)

Supprime l'animation nommée expr.

trace(expr)

Ecrit l'expression expr dans le fichier de d'historique. Il est peut probable que le navigateur ou le lecteur ne fasse quoi que ce soit avec.

startDrag(target, lock, [left, top, right, bottom])

Comment à déplacer l'animation target. L'argument lock indique si le déplacement verrouille la souris (utilisez 0, FALSE) ou 1 (TRUE)). Les paramètres optionnels délimitent la zone de déplacement.

stopDrag()

Cesse le déplacement de l'animation.

callFrame(expr)

Appelle l'image expr comme une fonction.

getURL(url, target, [method])

Charge l'URL url dans l'objet target. target peut être l'image courante (je pense) ou une des valeurs magiques "_level0" (remplace l'animation courante) ou "_level1" (charge une nouvelle animation à la place de la courante). L'argument optionnel method peut être post ou get, si vous voulez envoyer des variables au serveur.

loadMovie(url, target)

La même chose que ci-dessus, plus ou moins. En fait, je ne sais pas trop quelle est la différence.

nextFrame()

Va à l'image suivante.

prevFrame()

Va à l'image précédente.

play()

Joue l'animation.

stop()

Cesse de jouer l'animation.

toggleQuality()

Passe de haute en basse qualité (et vice-versa).

stopSounds()

Cesse de jouer les sons.

gotoFrame(num)

Va à l'image numéro num. Les images sont numérotées à partir de 0.

gotoFrame(name)

Va à l'image nommée name. Ce qui est carrément cool, car les labels ne sont pas encore supportés pour les images.

setTarget(expr)

Modifie le contexte de l'action. C'est ce qu'ils disent, mais je n'ai pas trop d'idées là-dessus.

Et il y a un truc bizarre : l'expression frameLoaded(num) peut être utilise dans les conditions if et dans les boucles while pour vérifier si une image a été chargée. En tous cas, c'est ce qu'il est supposé faire, mais je ne l'ai jamais testé, et je doute sérieusement que cela fonctionne. Vous pouvez utiliser plutôt /:framesLoaded à la place.

Les sprites ont des propriétés. Vous pouvez les lire toutes (vraiment?), en modifier quelques unes. Les voici :

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (lecture seule)

  • totalFrames - (lecture seule)

  • alpha - Niveau de transparence

  • visible - 1=on, 0=off (?)

  • width - (lecture seule)

  • height - (lecture seule)

  • rotation

  • target - (lecture seule) (???)

  • framesLoaded - (lecture seule)

  • name

  • dropTarget - (lecture seule) (???)

  • url - (lecture seule) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

Modifier la position d'un sprite est aussi simple que /box.x = 100;. Pourquoi le slash initial? C'est comme cela que Flash garde la trace des sprites dans les animations, un peu comme des fichiers sous Unix. Si le sprite qui s'appelle box a lui-même un autre sprite appelé biff, vous pouvez y accéder avec la commande /box/biff.x = 100;. En tous cas, ça marche pour moi. Corrigez moi si c'est faux!.

Cet exemple simple va déplacer le gros carré rouge dans la fenêtre.

Exemple 1. Exemple avec swfaction()

Cet exemple suit votre souris sur l'écran.

Exemple 2. Exemple avec swfaction()

La même chose que ci-dessus, mais en couleurs.

Exemple 3. Exemple avec swfaction()

Cet exemple simple gère le clavier (vous devrez cependant cliquer dans la fenêtre pour lui donner le focus, et vous devrez aussi laisser votre souris dans la fenêtre. Si vous savez comment faire cela automatiquement, dites-le moi!).

Exemple 4. Exemple avec swfaction()


[Engendré le 8 mars 2002, JDNet]

Société | Contacts | Publicité | Presse | Recrutement | Tous nos sites | Données personelles
Pour tout problème de consultations, écrivez au Webmaster.
© Benchmark Group, 4 rue diderot 92156 Suresnes Cedex