ActionScript
Révisé
Le ActionScript est une langue scripting basée sur le ECMAScript (Javascript), utilisé principalement pour le développement des sites Web et du logiciel using la plate-forme instantanée du joueur d'Adobe de (sous forme de dossiers de SWF incorporés dans des pages Web). À l'origine développé par le Macromedia , la langue est maintenant possédée par le Adobe (qui a acquis Macromedia en 2005) qui continue son développement. ActionScript a été au commencement conçu pour commander les 2D animations simples de vecteur faites dans le Adobe instantané (autrefois flash de Macromedia). Les versions postérieures ont ajouté la fonctionnalité tenant compte de la création des jeux basés sur le WEB et des applications riches d'Internet avec couler des médias (tels que la vidéo et l'acoustique).
Histoire
ActionScript a commencé comme langue Scripting pour l'authoring tool instantané de Macromedia . Les trois premières versions de l'authoring tool instantané ont fourni les dispositifs limités d'interactivité. Les premiers réalisateurs instantanés ont pu attacher une commande simple, appelée un " ; action" ; , à un bouton ou à une armature. L'ensemble d'actions a été limité aux commandes de base de navigation, avec des commandes telles que le " ; play" ; , " ; stop" ; , " ; obtenir URL" ; , et " ; goto et play" ;.Avec le dégagement du flash 4 de 1999, cet ensemble simple d'actions a mûri dans une langue Scripting de petit . Les nouvelles possibilités ont présenté pour les expressions incluses des variables de l'instantané 4, les opérateurs , le si les rapports , et les boucles . Bien que désigné intérieurement sous le nom du " ; ActionScript" ; , le manuel d'utilisation de l'instantané 4 et les documents de vente ont continué à employer le " de limite ; actions" ; pour décrire cet ensemble de commandes.
Chronologie par le joueur
Flash Lite 1.0 : Flash Lite est la technologie instantanée spécifiquement développée pour des téléphones portables et des dispositifs d'électronique grand public. Flash 4 ActionScript de soutiens. Flash Lite de
1.1 : Soutien supplémentaire de certains flash 5 ActionScript.
de Flash Lite 2.1 de
: Soutien supplémentaire de flash 7 ActionScript 2.
Flash Lite de
3 : Playback supplémentaire de vidéo du FLV .
joueur 2 d'instantané de de
: La première version avec l'appui scripting. Les actions ont inclus gotoAndPlay, le gotoAndStop, le nextFrame et le nextScene pour la commande de chronologie.
joueur 3 d'instantané de de
: Appui scripting de base augmenté avec la capacité de charger le externe SWFs (loadMovie).
joueur 4 d'instantané de de
: Premier joueur avec une exécution scripting intégrale (appelée les actions de ). Scripting était une syntaxe basée par barre oblique et un soutien contenu des boucles, des conditionals, des variables et d'autres constructions de langue de base.
joueur 5 d'instantané de de
: A inclus la première version d'ActionScript vrai. Le utilisé Prototype-a basé de programmation basé sur ECMAScript, et a permis à plein de programmation procédural et à la programmation orientée objectivement .
joueur 6 d'instantané de de
: A ajouté un événement manipulant le modèle, et le soutien du commutateur. La première version avec le soutien des protocoles du AMF et du RTMP qui ont permis couler de phase et l'acoustique et le sur demande H.263 - vidéo basée de MP3 .
joueur 7 d'instantané de de
: Les additions incluent le CSS dénommant pour le texte, les améliorations d'exécution et le soutien d'ActionScript 2.0, un langage de programmation de la classe basé sur la proposition d'ECMAScript 4 Netscape. Cependant, ActionScript 2.0 peut croix de compiler au Byte-code d'ActionScript 1.0, ainsi il peut fonctionner dans le joueur instantané 6.
joueur 8 d'instantané de de
: Promouvoir ActionScript prolongé 1/2 en ajoutant de nouvelles bibliothèques de classe avec des api pour commander des données à mémoire d'image à d'exécution, et le dossier télécharge. Un nouveau codec visuel de H.263-based a été aussi bien inclus, la compression sportive et canal de meilleure qualité de un alpha.
joueur d'instantané de de
9 (au commencement appelé 8.5) : ActionScript supplémentaire 3.0 avec l'arrivée d'une nouvelle machine virtuelle, appelée l'AVM2 (la machine virtuelle d'ActionScript 2), qui coexiste avec l'AVM1 précédent a dû soutenir le contenu de legs. Les augmentations d'exécution étaient un objectif important pour ce dégagement du joueur comprenant une nouvelle compilation du JIT . Le playback du AAC et du H. C'est le premier dégagement du joueur à intituler joueur instantané d'Adobe.
Chronologie par version d'ActionScript
2000-2003 : " d'ActionScript ; 1.0" ; Avec le dégagement du flash 5 en septembre 2000, le " ; actions" ; du flash 4 ont été augmentés une fois de plus et " appelé ; ActionScript" ; pour la première fois. C'était la première version d'ActionScript avec des influences du Javascript et la norme du ECMA-262 (troisième édition), soutenant le modèle d'objet de la norme dite et plusieurs de ses types de données de de noyau les variables locales de peut être déclarée avec le rapport de var, et les fonctions définies pour l'utilisateur avec le paramètre dépassement et les valeurs de retour de peuvent également être créées. Notamment, ActionScript a pu être maintenant également dactylographié avec un éditeur de texte plutôt qu'étant réuni en choisissant des actions des commandes de listes drop-down et de zone de dialogue. Avec le prochain dégagement de son authoring tool, MX instantané, et de son joueur correspondant, le joueur instantané 6 , la langue est demeurée essentiellement inchangée ; il y avait seulement les modifications mineures, telles que l'addition du rapport de switch et du " ; equality" strict ; opérateur (===), qui l'a apporté plus près d'être le ECMA-262 - conforme. Deux dispositifs importants d'ActionScript qui le distinguent des versions postérieures sont son type lâche système et sa confiance dans la transmission de Prototype-basée par . La dactylographie lâche se rapporte à la capacité d'un variable de tenir n'importe quel type de données. Ceci tient compte du développement rapide de manuscrit et est particulièrement bien adapté pour des projets scripting de petite taille. la transmission Prototype-basée est le mécanisme d'ActionScript 1.0 pour la réutilisation et la programmation orientée objectivement de code de . Au lieu d'un mot-clé de class qui définit des caractéristiques communes d'une classe , ActionScript 1.0 emploie un objet spécial qui sert de " ; prototype" ; pour une classe des objets. Toutes les caractéristiques communes d'une classe sont définies dans le objet de prototype de s de classe le 'et chaque exemple de cette classe contient un lien à cet objet de prototype.2003-2006 : ActionScript 2.0 La prochaine révision principale de la langue, ActionScript 2.0, a été présentée en septembre 2003 avec le dégagement de MX 2004 d'instantané et de son joueur correspondant, le joueur instantané 7 . En réponse à la demande d'utilisateur d'un meilleur de langue équipé type vérification au moment de la compilation décrit pour de plus grands et plus complexes applications, d'ActionScript 2.0 et syntaxe classe-basée , tel que les mots-clés class et extends. (Tandis que ceci tenait compte d'une approche plus souple de programmation orientée objectivement, le code était encore compilé au Bytecode d'ActionScript 1.0, lui permettant d'être aussi bien employé sur le joueur instantané précédent 6. En d'autres termes, la syntaxe de transmission de classe-basée par était une couche sur le système de prototype-basé par existant.) Avec ActionScript 2.0, les réalisateurs pourraient contraindre les variables à un type spécifique en ajoutant un type annotation de sorte que le type erreurs de disparité ait pu être trouvé au au moment de la compilation. Syntaxe classe-basée également présentée de transmission d'ActionScript 2.0 de sorte que les réalisateurs aient pu créer des classes et des interfaces, beaucoup comme elles dans des langues classe-basées telles que le Java et le C++ . Cette version s'est conformée partiellement aux spécifications d'ébauche d'édition d'ECMAScript quatrième de .
2006 aujourd'hui : ActionScript 3.0 En juin 2006, ActionScript 3.0 debuted avec le câble 2.0 d'Adobe de et son joueur correspondant, le joueur instantané 9 .0 était une restructuration fondamentale de la langue, tellement de sorte qu'il utilise une machine virtuelle entièrement différent. Le joueur instantané 9 contient deux machines virtuelles , AVM1 pour le code écrit dans ActionScript 1.0, et AVM2 pour le contenu écrit dans ActionScript 3.0 fournit non seulement un perfectionnement significatif dans l'exécution, mais également un modèle de programmation plus robuste qui se prête au développement riche de l'application d'Internet de complexe.
La mise à jour à la langue a présenté plusieurs nouveaux dispositifs :
type vérification d'exécution au moment de la compilation de et - le type l'information existe à au moment de la compilation et à d'exécution.
Exécution améliorée d'un système classe-basé de transmission séparé du système prototype-basé de transmission.
Le soutien du empaquette , namespaces , et expressions régulières .
Compile à un type entièrement nouveau de Bytecode , incompatible avec ActionScript 1.
Le instantané révisé api de joueur, organisé en empaquette .
Événement unifié de manipulant le système de basé sur l'événement des DOM de manipulant la norme de .
Intégration du ECMAScript pour XML ( E4X ) aux fins du traitement du XML .
Accès direct à la liste instantanée d'affichage du temps d'exécution pour le contrôle complet de ce qui obtient montré au temps d'exécution .
Exécution complètement de conformation des spécifications d'ébauche d'édition d'ECMAScript quatrième de .
Syntaxe
Le code d'ActionScript est la forme libre et peut être créé ainsi avec n'importe quelle quantité ou modèle de whitespace que l'auteur désire.
ActionScript 2.0
Quand on fonctionne avec le instantané ide de Macromedia , il est possible d'employer la fonction dutrace () pour imprimer l'information dans la borne de rendement de l'application. Si on emploie cette commande, puis un " très court ; legal" ; le programme dans ActionScript serait le code suivant sur l'armature 1 d'une couche 1 dans un document instantané autrement vide : lang=" de Cependant, en raison de cette commande étant inutilisée dans d'autres interprètes de la langue, tels que le joueur instantané d'Adobe de standard, il est raisonnable de suggérer que ceci ne suffise pas. Pour une telle raison, on peut considérer le code suivant à la place, qui fonctionne dans n'importe quel joueur conforme, comme programme le plus court à la place : lang=" de
Ceci crée un gisement en profondeur 0 des textes, à l'endroit 0, 0 px sur l'écran, qui est le px 100 large et haut. Puis le " ; text" ; le paramètre est placé au " ; Hello, monde ! " ; de la corde, et lui est automatiquement montrée dans le joueur.
Quand l'inscription de la classe externe d'ActionScript 2.0 classe l'exemple ci-dessus pourrait être écrite dans un dossier appelé Greeter.as comme suivant. lang=" de
ActionScript 3.0
ActionScript minimal 3.0 programmes sont dû légèrement plus grand et plus compliqué à la structure en soi différente d'une application, et la plus grande séparation du langage de programmation et du flash ide. Présumer le dossier suivant pour être Greeter.as : lang=" de la classe publique Greeter prolonge le Sprite { fonction publique Greeter () { txtHello de variété : TextField = nouveau TextField () ; txtHello.text = " ; Bonjour World" ; ; addChild (txtHello) ; } } }
Ce code fonctionnera avec le dossier d'application suivant du MXML : lang=" de
Exemples
ActionScript 2.0 exemples
Le monde suivant d'impression bonjour dans le panneau instantané de rendement du ide . Noter ceci travaillera seulement une fois couru à l'intérieur du instantané ide , comme fonction de trace est seulement soutenu à l'intérieur de elle. lang=" de Le code suivant imprime le monde bonjour à l'étape. lang=" de
Le code suivant produit la position actuelle de souris quand les mouvements de souris, en employant l'événement d'onMouseMove. Encore ceci fonctionnera seulement dans le flash ide. lang=" de
Le code suivant, une fois placé sur un bouton , commence à jouer la chronologie du MovieClip que le bouton est placé dedans. Ceci s'applique également à la chronologie de racine puisque la racine est aussi bien considérée un MovieClip. lang=" de
Cet exemple plus avancé crée une rangée contenant des nombres et des cordes, et assigne un nombre à une variable appelée Array.pickString = fonction () : Corde { couche-point de variété : Nombre = aléatoire (this.length) ; retourner " de == (de typeof (ceci) ; string" ;) ? ceci : this.pickString () ; } ; variété myArray : Rangée = nouvelle rangée (" ; Hello" ; , " ; ActionScript" ; , 3, 7, 11, " ; Flash" ;); variété numérique : Nombre = myArray.pickNumber () ; streptocoque de variété : Corde = myArray.pickString () ; _root.createTextField (" ; txt" ; , 1, 10, 10, 530, 390) ; txt.text = " ; Rangée = " ; + myArray + " ; \ nombre = " de nRandom ; + numérique + " ; \ corde = " de nRandom ; + streptocoque ; num et une corde à une variable appelée le str using des fonctions de prototype et la récursion de fonction. Puis, using le MovieClip api, un gisement des textes est dessiné sur l'écran, dans lequel les valeurs variables sont écrites. lang=" de
Rangée et exemple de dataProvider : lang=" de
ActionScript 3.0 exemples
Ceci bonjour exemple du monde emploie ActionScript 3.0 : lang=" dela classe publique HelloWorld2 prolonge le Sprite { fonction publique HelloWorld2 () { alose de variété : DropShadowFilter = nouveau DropShadowFilter (2, 45, 0x000000, 25, 3, 3, 2, 2) ; txt de variété : TextField = nouveau TextField () ; txt.textColor = 0xFFFFFF ; txt.random () * 300 ; txt.random () * 300 ; txt.selectable = faux ; txt.text = " ; Bonjour bienvenue du monde ! + Math.x) + " ; , " ; + Math.y) + " ; " ; ; addChild (txt) ; } } }
Structures de données
Types de données
ActionScript se compose principalement du " ; fundamental" ; ou " ; simple" ; types de données qui sont employés pour créer d'autres types de données. Ces types de données sont très semblables aux types de données de Java. Puisqu'ActionScript 3 était une réécriture complète d'ActionScript 2, les types de données et leurs transmissions ont le changed ActionScript 2 types de données de niveau supérieur
corde - une liste de de
caractères tels que le " ; Bonjour World" ;
Nombre - toute valeur numérique de
booléen - un stockage binaire simple qui peut seulement être " ; true" ; ou " ; false" ;.
Objet - l'objet est le type de données que tous les types de données complexes héritent de. Il tient compte du groupement des méthodes, des fonctions, des paramètres, et d'autres objets.
ActionScript 2 types de données complexes
Il y a " additionnel ; complex" ; types de données. Ce sont plus de processeur et de mémoire intensifs et se composent beaucoup du " ; simple" ; types de données. Pour AS2, quelques ces types de données sont :
MovieClip - une création de
d'ActionScript qui permet l'utilisation facile des objets évidents.
TextField - un gisement simple dynamiques ou d'entrée des textes. Hérite du type de Movieclip.
Bouton - un bouton simple de avec 4 armatures (états) : Vers le haut de, plus de, vers le bas et coup. Hérite du type de MovieClip.
La date - permet l'accès aux informations sur un moment spécifique.
La rangée - permet le stockage linéaire des données.
XML - un objet de XML
XMLNode - un noeud de XML
LoadVars - un objet de variables de charge tient compte du stockage et envoie du POTEAU de HTTP et le HTTP OBTIENNENT des variables
sain
NetStream
NetConnection
MovieClipLoader
EventListener
ActionScript 3 types de données de niveau supérieur (voir le type de données descriptions)
booléen de
- le type de données booléen a seulement deux valeurs possibles : vrai et faux. Aucune autre valeur n'est valide.
international - le type de données d'international est un nombre entier à 32 bits entre -2.
nul - le type de données nul contient seulement une valeur, nulle. C'est la valeur par défaut pour le type de données de corde et tous classes qui définissent des types de données complexes, y compris la classe d'objets.
Nombre - le type de données de nombre peut représenter des nombres entiers, des entiers sans signe, et des nombres à point mobile. Le type de données de nombre emploie le format à double précision 64-bit comme spécifique par la norme d'IEEE pour l'arithmétique à point mobile binaire (IEEE-754).
Corde - le type de données de corde représente un ordre des caractères de 16 bits. Des cordes sont stockées intérieurement comme caractères d'Unicode, using le format UTF-16. Les versions préalables du flash ont employé le format UTF-8.
uint - le type de données d'uint (entier sans signe) est un entier sans signe à 32 bits entre 0 et 4.
vide - le type de données vide contient seulement une valeur, non définie. Dans les versions préalables d'ActionScript, éliminées était la valeur par défaut pour des exemples de la classe d'objets.0, la valeur par défaut pour des exemples d'objet est nulle.
ActionScript 3 types de données complexes (voir le type de données descriptions)
objet de
- le type de données d'objet est défini par la classe d'objets. La classe d'objets sert de classe basse à toutes les définitions de classe dans ActionScript.
La rangée - contient une liste de données. Bien qu'ActionScript 3 soit une langue strongly-typed, il ne soutient pas des rangées dactylographiées. Ainsi le contenu d'une rangée peut être de n'importe quel type.
Date
Erreur
Fonction
RegExp
XML
XMLList
Using des types de données
Using ces données dactylographie dedans ActionScript est tout à fait simple. La syntaxe de base est : lang=" de
Apostilles
.| Random links: | San Mateo, Rizal | Ptolémée (mythologique) | Le Roi Movement de Māori | Brunswick est, Victoria | Filtre de reconstruction | ActionScript |