Blocs de texte spéciaux. Macromedia Flash MX - premiers pas


Supports de cours, devoirs et tests
cours à distance « École électronique Macromedia Flash MX »
Journal méthodologique hebdomadaire russe destiné aux professeurs d'informatique. Maison d'édition "Premier septembre" n°42 (2003)
"Un analogue du programme "Rule" du package "Hits of Robotland"
dans l'environnement Macromedia Flash."

Publications imprimées

ÉCOLE ÉLECTRONIQUE MACROMÉDIA FLASH MX
Cours III : Fondamentaux de la programmation dans Macromedia Flash MX
Module IV : Le avec Commande. Programme "Règle"
Langage ActionScript

Forfait module express :
  • avec commande
  • Copie Flash du programme « Rule » du package « Hits of Robotland ».

avec commande

Lors de l'utilisation d'objets dans le code d'un programme (script), il est facile de remarquer que même dans un petit bloc de script, le nom du même objet est répété à plusieurs reprises. De telles répétitions se produisent particulièrement souvent lors de l'utilisation de certains objets individuels, par exemple des objets Mathématiques, appartenant au niveau supérieur. Par exemple, le code suivant est assez courant :

A = Math.PI * r * r ; x = r * Math.cos(Math.PI); y = r * Math.sin(Math.PI/2);

Voici l'objet Mathématiques se produit à plusieurs reprises, ce qui rend le script difficile à comprendre. Cette entrée peut être grandement simplifiée si le bloc de script est mis entre parenthèses à l'aide de la commande with. Ensuite, au sein de ce bloc de script, l'interpréteur ActionScript accédera à l'objet spécifié. Le code peut maintenant être réécrit comme suit :

Avec (Math) ( a = PI * r * r; x = r * cos(PI); y = r * sin(PI/2); )

Jetons un coup d'œil au format général des commandes :

avec (objet) (
déclaration(s);
}

objet- une instance d'un objet ActionScript ou d'un clip.

déclaration(s)- une commande ou un groupe de commandes entouré d'accolades.

Regardons un autre exemple dans lequel l'objet est utilisé FilmClip nommé someOtherMovieClip :

Avec (someOtherMovieClip) ( _x = 50; _y = 100; gotoAndStop(3); )

L'extrait de script suivant montre comment l'exemple précédent peut être écrit sans utiliser la commande with :

UnAutreMovieClip._x = 50 ; unAutreMovieClip._y = 100 ; someOtherMovieClip.gotoAndStop(3);

Il est possible d'utiliser des commandes imbriquées avec pour accéder aux informations dans de nombreuses zones contextuelles.

Copie flash du programme « Pravilka » du package « Hits of Robotland »

Lors de la programmation des boutons, nous utiliserons activement l'opérateur de branchement : if et if else. Nous organiserons également le fonctionnement d'un compteur qui ajoute des points à l'utilisateur en cas de réponse correcte et soustrait des points dans le cas où, sans corriger une erreur ou faire des corrections incorrectes, l'utilisateur appuie sur le bouton « Suivant ».

Nous organiserons le travail d'un Movie Clip (prix), dans lequel le « Fonds du Prix » sera placé. Si l'utilisateur marque 10 points, son prix sera un panier de délicieux fruits. Si l'utilisateur a 9 ou 8 points comme prix, il recevra un morceau de fromage, si l'utilisateur a la « chance » de marquer 6 ou 7 points, il recevra une citrouille, mais s'il obtient 5 ou moins de 5 points , il aura une tomate !

Pour ceux qui aiment une note de cinq points, traduisons ce qui précède dans un langage accessible au magazine scolaire :

Corbeille de fruits - 5 ;
Morceau de fromage - 4 ;
Citrouille - 3 ;
Tomate - 2 .

Lors de l’accès à Movie Clip, nous utiliserons la commande with.

Notre scène utilisera 11 images. Les 10 premiers cadres seront des « feuilles de travail » sur lesquelles seront placées les phrases contenant des erreurs grammaticales (Texte d'entrée). Habituellement, les champs de saisie sont laissés vides, mais dans notre cas, ils devraient fonctionner ! Chaque feuille sera programmée avec un champ dynamique. Si l'utilisateur ne corrige pas l'erreur grammaticale, le texte s'affichera : « Vous n'avez pas corrigé l'erreur !

Ce programme utilise deux couches. Le calque inférieur est l'arrière-plan, il contient le texte statique « Program Correct » et un symbole graphique avec un chapeau.

Si vous souhaitez absolument utiliser une police exotique installée sur votre machine dans le programme pour écrire le titre, n'oubliez pas d'utiliser la procédure Break Apart du menu Modifier pour ce texte. En d’autres termes, transformez le texte en graphiques. Et puis votre texte ne se transformera pas en charabia sur une machine qui n’a pas cette police !

Maintenant, tout est en ordre. Écrivons un script pour l'image 1 :

Arrêt(); fscommand("showmenu", "false"); je = 0 ;

Lors de la lecture d'une vidéo, vous devez désactiver le « Menu ». De cette façon, nous ne permettrons pas à l’utilisateur de prendre du « recul ». Et on « allume » aussi le compteur.
Écrivons l'action pour les images 2 à 10 :

Regardons comment fonctionnent les boutons en utilisant la première image comme exemple. Vous pouvez programmer vous-même les boutons restants.

Sur (version) ( if (t1=="Chrysanthème blanc") ( i++; gotoAndPlay(2); ) else ( i--; z1 = "Vous n'avez pas corrigé l'erreur!"; ) )

Nous allons maintenant former le « Fonds des prix ». Créons nouveau symbole tapez le clip vidéo avec le nom prix dans lequel 5 images fonctionneront. Nous rédigerons une promotion pour toutes les images du clip :

La première image du clip sera vide.

Dans le deuxième cadre, nous placerons une corbeille de fruits et donnerons une étiquette au cadre : cinq.
Dans le troisième cadre, nous placerons un morceau de fromage et attribuerons une étiquette au cadre : quatre.
Plaçons une citrouille dans le quatrième cadre et attribuons une étiquette au cadre : trois.
Plaçons une tomate dans le cinquième cadre et attribuons une étiquette au cadre : deux.

Dans ce programme, toute cette « variété alimentaire » a été importée de la collection ClipArt97 (fichiers wmf). Cependant, vous pouvez créer votre propre « Prize Fund », tout dépend uniquement de votre imagination.

Revenons sur scène et sur la 11ème image finale, nous placerons le clip que nous avons créé avec des prix. N'oubliez pas de le préciser sur scène. Nom de l'instance: prix. Nous allons écrire un script sur ce cadre qui, en analysant le contenu du compteur, « donnera » un prix à l'utilisateur :

Arrêt(); sh = je; avec (_root.priz) ( si (je

Testez la vidéo. Et si nécessaire, déboguez-le.

Pour simplifier le processus de test, créez un champ de texte dynamique sur la dernière image avec le nom merde et affichez les données du compteur dans ce champ. Pour ce faire, ajoutez la deuxième ligne au script de la 11ème image :

Après avoir terminé le processus de débogage, supprimez ce champ et la ligne que vous avez saisie.

Devoir : Bases de la programmation dans Macromedia Flash MX

Oh, combien de merveilleuses découvertes nous avons
Préparer l'esprit d'illumination
Et l'expérience, fils d'erreurs difficiles,
Et le génie, ami des paradoxes,
Et le hasard, Dieu l'inventeur.
Alexandre Sergueïevitch Pouchkine, « Eugène Onéguine »

Votre tâche consiste à créer une vidéo dupliquant le matériel présenté dans cette conférence. Vous pouvez choisir vous-même les phrases.

Vous pouvez trouver le matériel d'illustration utilisé pour constituer le « fonds de prix » de la vidéo dans les archives accompagnant le matériel de conférence. Cette archive contient des fichiers au format wmf. Si cette cagnotte ne répond pas à vos exigences, n'hésitez pas à faire preuve de créativité et à utiliser votre propre bibliothèque.

Soumettez votre devoir terminé sous forme de fichier au format fla (si la taille du fichier dépasse 150 Ko, veuillez l'archiver) et envoyez-le à votre professeur.

Je vous souhaite de réussir dans votre apprentissage de Macromedia Flash MX par vous-même !

Sections sur cette page :

Parlons maintenant de ce qu'on appelle des blocs de texte spéciaux, c'est-à-dire sur les blocs de texte qui remplissent des fonctions spéciales. Pour le moment, cependant, ils ne nous seront pas utiles, mais ils seront nécessaires lorsque nous commencerons à écrire des programmes dans l'environnement Flash (la programmation est dédiée à partie IV ce livre).

Champs de saisie

Champ de saisie - Il s'agit d'une sorte de petit éditeur de texte placé dans une fenêtre de programme Windows et conçu pour saisir du texte sur une ou plusieurs lignes. En même temps, Windows gère lui-même la saisie du texte : on tape simplement des caractères, on utilise les touches fléchées, , , sélectionnez le texte, utilisez le presse-papiers, comme dans tout « grand » éditeur de texte. Les programmeurs Microsoft ont travaillé dur pour rendre les champs de saisie Windows standard vraiment pratiques.

Pour créer un champ de saisie dans Flash, vous devez d'abord placer un bloc de texte ordinaire sur votre feuille de calcul et le sélectionner avec l'outil flèche (vous n'avez pas besoin de saisir de texte dans le bloc de texte). Ensuite, recherchez dans le coin supérieur gauche du panneau Propriétés une petite liste déroulante (voir Fig. 7.4) et sélectionnez l'élément qu'elle contient Texte de saisie. Si après cela nous ouvrons le bloc de texte résultant, nous verrons ce qui est montré sur la Fig. 7.9.


Alors que voit-on ? Et nous voyons un ensemble complet de marqueurs de redimensionnement (ils seront enregistrés même si nous fermons le champ de saisie). Cela signifie que nous pouvons également modifier la taille verticale du champ de saisie résultant. Et le marqueur rectangulaire du coin supérieur droit se déplacera vers le bas à droite - c'est le signe que nous avons un champ de saisie devant nous.

Vue panneau Propriétés après avoir sélectionné le champ de saisie, est illustré à la Fig. 7.10. Comme on le voit, ils y sont apparus éléments supplémentaires contrôles à prendre en compte.


Tout d'abord, juste en dessous de la liste que nous venons d'utiliser, apparaît un champ dans lequel nous devrons préciser un nom unique. Nom, identifiant le champ de saisie Flash que nous avons créé. Chaque champ de saisie créé sur une feuille de calcul doit avoir un nom unique. Ce nom peut contenir des lettres de l'alphabet russe et latin, des chiffres et des traits de soulignement, et il doit commencer par une lettre ou un trait de soulignement.

Sous le champ de saisie de la tâche de suivi se trouve une autre liste déroulante. Utilisez-le pour sélectionner le type de champ de saisie. Quatre éléments sont disponibles dans cette liste :

? Une seule ligne- régulier champ de saisie sur une seule ligne;

? Multiligne- champ de saisie multiligne(c'est-à-dire la zone d'édition) ;

? Multiligne sans retour- un champ de saisie multiligne qui ne coupera pas automatiquement une ligne (bien que l'utilisateur puisse toujours couper une ligne manuellement en appuyant sur la touche );

? Mot de passe- champ de saisie du mot de passe. Semblable à un champ de saisie classique sur une seule ligne, mais masque le texte saisi, affichant à la place une chaîne d'astérisques.

À droite de cette liste se trouve un ensemble de trois boutons de commutation. Le premier d'entre eux nous est déjà familier - il permet à l'utilisateur de sélectionner du texte dans le champ de saisie :


Comme on peut le voir sur la Fig. 7.10, ce bouton est enfoncé et désactivé, c'est-à-dire qu'il ne peut pas être désactivé.

Le deuxième bouton de commutation, lorsqu'il est activé, demande à Flash de traiter toutes les balises HTML rencontrées dans le texte :


Donc, si nous enfermons un morceau de texte dans une balise<В>.. , Flash le mettra en évidence en gras. Si ce bouton est désactivé, Flash affiche le texte « tel quel », ainsi que toutes les balises HTML qui y sont spécifiées.

De manière générale, cette fonctionnalité n'est utile que si nous spécifions le contenu d'un champ de saisie à partir d'un script ActionScript, elle est donc décrite ici à l'avance. Informations d'assistance détaillées Balises HTML Les champs de saisie et les blocs de texte dynamiques sont disponibles dans l'aide en ligne Flash.

Le troisième bouton bascule, lorsqu'il est activé, fait en sorte que Flash affiche une bordure autour du champ de saisie, le faisant ressembler à un champ de saisie Windows standard :


S'il est désactivé, le champ de saisie a un aspect « plat ».

Si le champ de saisie que nous avons créé doit faire partie de l'interface d'origine, il est préférable de laisser ce bouton désactivé. Si nous voulons rendre le champ de saisie plus familier à l'utilisateur ou plus visible, nous pouvons activer ce bouton.

A droite de ces trois boutons se trouve un champ de saisie Var. Ce champ spécifie le nom de la variable ActionScript dans laquelle sera placé le texte saisi dans le champ de saisie que nous avons créé. Une variable est une sorte de « cellule de stockage » de données créée dans la mémoire de l’ordinateur et porte un nom unique par lequel elle peut être identifiée de manière unique. Nous pouvons faire référence à cette variable par son nom, en extraire des données ou y mettre une nouvelle valeur. Les variables seront discutées en détail dans Chapitre 19.

Dans le champ de saisie Caractères maximum définit le nombre maximum de caractères que l'utilisateur peut y saisir. Si nous ne voulons pas limiter ce nombre, nous y entrerons la valeur 0 (c'est d'ailleurs la valeur par défaut du champ).

Revenons maintenant au sujet de l'implémentation des polices, mais en relation avec les champs de saisie (plus précisément, à tous les blocs de texte spéciaux). Le fait est que dans ce cas, aucune intégration n'est effectuée - Flash ne stocke que les noms des polices utilisées. Lorsque vous lisez une image terminée, Flash Player recherche d'abord ces polices sur l'ordinateur du client et, le cas échéant, les utilise pour afficher du texte. Si aucune police appropriée n'est trouvée, le lecteur utilise la police similaire la plus proche de celle souhaitée, ce qui peut entraîner une distorsion de l'image. Et ce n'est pas toujours acceptable.

Mais nous pouvons toujours forcer Flash à intégrer les descriptions des caractères sélectionnés de la police spécifiée pour un champ de saisie donné dans le fichier Shockwave/Flash résultant. Nous allons maintenant voir comment cela se fait.

La sélection des caractères de police à intégrer se fait dans la boîte de dialogue Incorporation de personnages(Fig. 7.11). Cette fenêtre apparaîtra à l'écran après avoir appuyé sur le bouton Intégrer panneaux Propriétés(voir Fig. 7.10).


La grande liste de cette fenêtre nous permettra de sélectionner des groupes entiers de symboles qui doivent être intégrés dans le fichier Shockwave/Flash résultant. Il contient un certain nombre d'éléments ; les mêmes qui nous sont garantis utiles sont indiqués ci-dessous :

? Tous (39477 glyphes)- tous les caractères de cette police au nombre de 39 477. Cet élément est fourni à titre informatif uniquement ; en réalité, presque personne ne l’utilisera ;

? Majuscules (27 glyphes)- lettres majuscules latines (27 caractères) ;

? Minuscules (27 glyphes)- des petites lettres latines (également 27 caractères) ;

? Chiffres (11 glyphes)- Chiffres arabes (11 caractères) ;

?Ponctuation [!@#$%…] (52 glyphes)- signes de ponctuation et désignations spéciales (52 caractères) ;

?Latin de base (95 glyphes)- les lettres de la plupart des langues européennes (95 caractères) ;

?Cyrillique (499 glyphes)- Lettres cyrilliques (499 caractères). Peut-être le point le plus important dans notre cas.

En règle générale, plusieurs éléments sont mis en évidence sur cette liste à la fois (c'est vrai - qui a besoin de lettres sans chiffres !). Pour ce faire, cliquez d'abord sur le premier élément de l'ensemble de ceux que l'on souhaite sélectionner, puis appuyez sur la touche et, en le maintenant enfoncé, cliquez sur les éléments restants jusqu'à ce que nous sélectionnions tout. Après cela, vous pouvez relâcher la clé .

Sous la liste des polices se trouve un champ de saisie Incluez ces personnages. Nous pouvons y saisir manuellement les caractères qui doivent être intégrés. Cette méthode est utile si l’on souhaite intégrer uniquement certains caractères dans une police. Et si on appuie sur le bouton Remplissage automatique, Flash lui-même substituera dans ce champ de saisie tous les caractères que nous avons utilisés dans le texte du champ de saisie sélectionné.

Tout en bas de la fenêtre Options de personnage il y a un petit champ de texte Nombre total de glyphes, montrant combien de caractères nous avons déjà sélectionnés pour l'intégration. Nous pouvons donc nous arrêter à temps.

Bouton Ne pas intégrer vous permettra de supprimer rapidement tous les caractères que nous avons choisis pour la mise en œuvre. Lorsque vous cliquez dessus, le champ de saisie sera effacé Incluez ces personnages, et dans une grande liste, la sélection des éléments que nous avons sélectionnés disparaîtra.

En définissant les options d'intégration de polices dans la boîte de dialogue Incorporation de personnages, il faut appuyer sur le bouton D'ACCORD, pour les appliquer. Si vous devez annuler ces paramètres, cliquez sur le bouton Annuler.

Blocs de texte dynamiques

Souvent, au lieu d'afficher du texte brut et inchangé, vous souhaitez afficher la sortie d'un script ActionScript sous forme de texte. Par exemple, un tel script pourrait extraire des actualités du site Web Compulents, des prévisions météorologiques du site Web Aporta et des taux de change du site Web Rambler, ajouter l'heure actuelle aux données extraites et afficher tout cela sous forme de texte à l'écran. (Au fait, idée intéressante...)

C'est précisément pour afficher du texte résultat du script qu'ils sont utilisés. blocs de texte dynamiques.(Les blocs de texte normaux sont souvent appelés statique.) Peut-être que le besoin de tels blocs de texte dynamiques se fait sentir plus souvent que celui des champs de saisie.

Un bloc de texte dynamique est créé de la même manière qu'un champ de saisie. Créez un bloc de texte normal, sélectionnez-le avec l'outil flèche et recherchez-le dans le coin supérieur gauche du panneau Propriétés une petite liste déroulante (voir Figure 7.4). Il vous suffit de sélectionner un élément dans cette liste Texte dynamique.

Un bloc de texte dynamique sélectionné est similaire à un champ de saisie (voir Fig. 7.9), et le panneau Propriétés aura à peu près le même aspect que celui illustré sur la Fig. 7.10. Nous ne donnerons donc pas une description des contrôles qu’il contient, mais nous limiterons à souligner les différences existantes.

Les mêmes variables sont utilisées pour afficher du texte dans un bloc de texte dynamique. Le script ActionScript place le texte de sortie dans une telle variable et le lecteur Flash effectue la sortie. Le nom de cette variable est saisi dans le même champ de saisie que celui situé sous la liste, à l'aide duquel nous venons de transformer un bloc de texte ordinaire en un bloc dynamique.

Parlons maintenant des différences. Il n’y a en fait qu’une seule différence au niveau de l’interface et, en plus, elle nous est déjà familière. Le bouton de l'interrupteur:


La possibilité de surligner et de copier du texte placé dans un bloc de texte dynamique est désormais disponible, et nous pouvons la désactiver si nous le souhaitons.

La différence en termes de capacités est qu'un bloc de texte dynamique peut être créé défilable. Un bloc dynamique ordinaire doit certainement avoir des dimensions telles qu'il puisse contenir tout son contenu. Pour un bloc déroulant, ce n'est pas nécessaire : ​​semblable aux zones Édition de Windows, il peut "faire défiler" le texte qu'il contient. Pour contrôler le défilement, nous devrons écrire des scripts ActionScript appropriés - un bloc de texte défilant ne contient pas de barres de défilement.

Pour rendre un bloc de texte dynamique défilable, vous devez d'abord le sélectionner. Après cela, vous devez allumer l'interrupteur Défilable menu Texte ou l'élément de menu contextuel du bloc de texte du même nom. Si un bloc de texte est actuellement ouvert, vous pouvez double-cliquer sur la poignée carrée située dans le coin inférieur droit du rectangle de sélection tout en maintenant enfoncée . Le bloc de texte déroulant terminé est illustré à la Fig. 7.12 ; Notez que le marqueur sur lequel nous avons cliqué a la forme d’un carré noir.


Sous le titre "Macromedia Flash 8 : un cours pour un jeune combattant", dédié à ce merveilleux logiciel et Technologies Flash. À partir d'aujourd'hui, les sujets dont nous parlons sur Flash deviendront plus ciblés. Par conséquent, à partir de maintenant, j’omettra les mots « cours de jeune combattant » dans le titre. Cependant, cette circonstance n'affectera en rien la manière dont le matériel est présenté, dont l'objectif principal est de répondre à de nombreuses questions que se posent les concepteurs de flash débutants et de donner matière à réflexion aux plus expérimentés.

Ainsi, aujourd'hui à l'ordre du jour figurent les composants de l'interface utilisateur de Macromedia Flash Professional 8, ainsi que la manière de les personnaliser.


Composants Flash 8 standard

La dernière version du puissant progiciel graphique Macromedia Flash 8, en plus d'un ensemble d'outils, de méthodes et d'effets de chronologie conçus pour créer une animation de haute qualité, contient un langage de programmation orienté objet à part entière, ActionScript 2.0 et de nombreux composants (intégrés). dans des blocs de programme comme Film).

Pourquoi avons-nous besoin de composants ? Dans de nombreux cas, ils simplifient grandement le processus de développement d’une application interactive. À l'aide de champs de saisie de données et de divers commutateurs sur les sites Web, des formulaires d'inscription peuvent être facilement créés, à l'aide de chargeurs, vous pouvez contrôler le chargement de données texte et multimédia provenant de diverses sources, etc. Aujourd'hui, nous allons nous familiariser avec l'une des classes de composants de Flash 8 - les éléments de l'interface utilisateur (User Interface - UI).

L’objet le plus populaire dans Flash est bien entendu le bouton. Il est présent dans Flash à la fois en tant que type de symbole et en tant qu'élément d'interface utilisateur. Les composants RadioButton, CheckBox, MenuBar, etc. sont moins fréquemment utilisés, mais ils ne sont pas pour autant moins importants. La fenêtre des composants est appelée en appuyant sur Ctrl+F8 ou depuis le menu Fenêtre -> Composants. Consultez le tableau pour connaître les principaux composants de l'interface utilisateur.

Composant Description
Accordéon Navigateur de formulaire
Alerte Message texte
Bouton Bouton simple
Case à cocher Case à cocher
Boîte combo Liste combinée
Liste Liste
Chargeur Conteneur chargeur
Bouton radio Sélecteur
Zone de texte Zone de texte
Fenêtre Conteneur en forme de fenêtre

Aujourd'hui, en utilisant l'exemple de définition des paramètres d'un élément d'interface utilisateur appelé Alert, nous examinerons les principes de travail avec les styles de composants.


Préréglage des propriétés des composants

Le composant Alerte permet d'organiser un petit dialogue entre l'utilisateur et l'ordinateur. Imaginons quelque chose de similaire au programme parlant Alice, créé dans les années 60 et possédant une petite intelligence artificielle qui permettait d'engager une conversation avec une personne en utilisant ses réponses aux questions posées précédemment.

Tout d'abord, modifions les étiquettes des boutons et écrivons un gestionnaire pour leurs clics. En fonction du bouton sur lequel l'utilisateur a cliqué, un message spécial apparaîtra. Tout cela est réalisé sans utiliser de styles. Alors, faisons glisser la fenêtre Alerte sur une feuille vierge à partir du panneau Composants et fournissons-lui tous les paramètres nécessaires. Rappelons que dans tout fichier Flash fla, il existe une bibliothèque (appelée en appuyant sur Ctrl+"L"), dans laquelle sont stockées les instances des composants. La fenêtre Alerte s'adapte également ici. Comme nous ne voulons pas qu'il traîne toujours dans l'espace de travail, nous pouvons le supprimer de là (du plan de travail, bien sûr). L'alerte restera dans la bibliothèque.

Sélectionnez maintenant la première image de la timeline, allez dans la section Actions (F9) et écrivez le code de programme suivant : « import mx.controls.Alert » (pour plus de détails, voir la liste). La plupart des paramètres requis ne peuvent être définis qu'à l'aide d'ActionScript. La fenêtre Alerte est appelée par la procédure Alert.show ("texte", "titre de la fenêtre", "boutons utilisés", "fenêtre", "gestionnaire de clic", "bouton sélectionné") avec de nombreux paramètres précisés entre parenthèses. Pour les boutons utilisés, "Alert.YES | Alert.NO" est indiqué entre guillemets simples (il existe également des boutons "OK" et "Cancel"), et pour le gestionnaire d'événements - la fonction "buttonclick", que nous écrirons un un peu plus tard. Modifions maintenant les étiquettes des boutons "OUI" et "NON" à l'aide des propriétés du composant Alert "yesLabel" et "noLabel". Définissez ensuite les dimensions requises (« ButtonWidth » et « ButtonHeight »). Pour sélectionner les paramètres optimaux, il est utile d'exécuter la vidéo à tester - touches "Entrée" + Ctrl. La logique de la fonction « bouton-clic » est la suivante : lorsque vous appuyez sur le bouton « Merveilleux », le message « Continuez comme ça ! » apparaît, lorsque « So-so » - « Gardez le nez levé ! » Pour que les modifications prennent effet, la description de cette fonction et les paramètres du composant Alert doivent précéder l'appel à la procédure Alert.show, comme indiqué dans le listing :

Importer mx.controls.Alert ; Alerte.buttonWidth=150 ; Alerte.buttonHeight=25 ; Alert.yesLabel="Merveilleux"; Alert.noLabel="So-so..."; buttonclick = function(evt)(if (evt.detail == Alert.YES) (Alert.show("Continuez comme ça !", "Macromedia Flash 8");) if (evt.detail == Alert.NO) ( Alert .show("Gardez le nez!", "Macromedia Flash 8");)) Alert.show("Quoi de neuf, mon pote?", "Macromedia Flash 8", Alert.YES | Alert.NO, ceci, cliquez sur le bouton , Alerte .OUI);

De la même manière, vous pouvez organiser un dialogue plus complexe avec l'utilisateur.


Travailler avec des styles

A quoi servent les styles ? Je vais vous expliquer maintenant. Tout composant Flash a un certain jeu de couleurs, une certaine taille de police, etc. Mais si vous développez, par exemple, votre propre site Web, afin de ne pas violer l'intégrité de l'image, vous devrez « ajuster » les composants du site. Je pense que je ne me tromperai pas si je dis que chaque concepteur Flash s'efforce de créer ses vidéos d'une manière particulière qui lui est propre. Avec les styles et les thèmes de Flash 8, vous pouvez rendre chaque composant unique. Mais ne nous emballons pas et concentrons-nous sur les styles pour l'instant.

L'interface de programmation d'applications de formatage (API Styles) fournit à l'utilisateur des propriétés et des méthodes qui peuvent être utilisées pour changer la couleur d'un composant et formater le texte qu'il contient. Habituellement, cela suffit. Flash 8 est livré avec deux styles avec un ensemble de paramètres : "Halo" et "Sample", qui se trouvent respectivement dans les fichiers HaloTheme.fla et SampleTheme.fla. La figure montre leur emplacement sous Windows 2000/XP. A noter que le thème « Sample » possède beaucoup plus de propriétés, il est donc plus conseillé de l'utiliser pour modifier des composants. Et cela se fait de la manière suivante :

  1. La commande Fichier -> Importer -> Ouvrir une bibliothèque externe est appelée et le fichier SampleTheme.fla est spécifié dans la boîte de dialogue. Ensuite, dans le panneau de la bibliothèque importée, sélectionnez Flash UI Components2 -> Themes -> MMDefault. Ensuite, à partir de cette fenêtre, vous devez faire glisser le dossier contenant les ressources du composant souhaité (actifs) dans la fenêtre de la bibliothèque de symboles du document actuel.
  2. À l'aide des méthodes setStyle (paramètre, valeur) et getStyle (paramètre), vous pouvez définir ou obtenir la valeur d'un paramètre particulier du style sélectionné.

Puisque nous travaillons avec le composant Alert, nous allons faire glisser le dossier "Alert Assets" dans la bibliothèque de symboles de notre document. Ensuite nous utiliserons les propriétés standards du thème « Sample » (voir listing).

Global.styles.Alert.setStyle("couleur", "rouge"); _global.styles.Alert.setStyle("themeColor", "haloBlue"); _global.styles.Alert.setStyle("backgroundColor", "0xE0C5FE"); _global.styles.Alert.setStyle("fontFamily", "times new roman"); _global.styles.Alert.setStyle("fontSize", "15");

La couleur de la boîte de dialogue Alerte est désormais violette (0xE0C5FE) et son texte est désormais bleu, avec la police définie sur Times New Roman 15 points. Il convient de noter que le symbole Alerte a été modifié de cette manière, les modifications affecteront donc toutes ses instances. Une description de toutes les propriétés des thèmes Halo et Samlpe est disponible dans l'aide de Flash 8.


Et si cela ne me suffit pas ?

Si, même avec les styles, l'apparence des composants ne répond pas à vos exigences esthétiques, vous pouvez alors essayer d'écrire votre propre thème. Pour ce faire, il suffit d'éditer ou de remplacer les coques des composants nécessaires dans l'un des thèmes standards. Pour cela, enregistrez le fichier HaloTheme.fla ou SampleTheme.fla sous un nom unique, chargez-le, allez dans la fenêtre de la bibliothèque de symboles (Fenêtre -> Bibliothèque ou Ctrl+L), sélectionnez le composant souhaité et sélectionnez l'option "Modifier". dans le menu contextuel. Certains éléments de l'interface utilisateur sont constitués de plusieurs parties, ils peuvent donc être facilement transformés en redessinant ou en recréant chaque partie. Ces composants sont Button, CheckBox, ComboBox, DataGrid, RadioButton, etc. D'autres shells sont dessinés par programme. Dans ce cas, pour changer apparence Le composant devra modifier le code source. Il s'agit par exemple du composant Alert. Étant donné que la création d’un thème personnalisé prend du temps, nous ne l’aborderons pas en détail. Au moins pour l'instant. C'est tout.

La direction s'est fixée la tâche : elle doit être tenue à jour Lecteur Flash. Échelle : ~15 000 ordinateurs, dont la moitié ont réellement besoin de FP.

Il semblerait que le problème soit le suivant : nous créons une politique de domaine, insérons le package MSI et nous nous réjouissons... Mais ce n'est pas le cas ! La structure de l'entreprise est très distribuée, c'est-à-dire Dans les endroits éloignés avec un canal d'environ 1 Mbps sur 20 ordinateurs, pousser ne serait-ce que 15 Mo par les politiciens est déjà un problème - le matin, les employés allument l'ordinateur et attendent une demi-heure qu'il se charge jusqu'à ce que tout soit téléchargé et installé (ou tombe simplement en raison d'un délai d'attente). Sans parler du fait que les ordinateurs de ces bureaux ont la désagréable propriété de tomber périodiquement hors du domaine.

Nous avions besoin d'une autre solution qui fonctionnerait quelles que soient les politiques, ne mettrait pas l'utilisateur à rude épreuve et utiliserait la chaîne de manière minimale (au moins pour que tout le monde ne télécharge pas en même temps). Les options avec scripts ne convenaient pas non plus pour des raisons évidentes.

Google est venu à la rescousse, comme d'habitude : il s'est avéré que vous pouvez installer un serveur de mise à jour interne et y configurer le programme de mise à jour FP intégré. Dans ce cas, il vous suffira de distribuer le fichier de paramètres aux clients. Détails sous la coupe.

Configuration d'un serveur de mise à jour

1. On a accord de licence

Adobe nécessite un accord de licence pour distribuer son logiciel. Ne violons pas les conditions d'utilisation et obtenons une licence (heureusement, ce n'est pas difficile du tout) : FlashPlayer : Adobe Runtimes / Reader Distribution License Agreement. Le permis est délivré pour une durée d'un an. Après expiration, vous pouvez renvoyer la demande.

2. Augmenter le serveur Web

La plateforme n'a pas d'importance ; dans mon cas, je gère le Nième site sur IIS sous Win2012. Il ne consomme pratiquement aucune ressource même si environ 3 000 ordinateurs sont déjà configurés pour ce serveur.

Paramètres du serveur :

  • Accès via les ports 80, 443 (respectivement http, https).
    Le premier est nécessaire, en effet, pour le téléchargement, le deuxième FP ira pour la version XML de la version actuelle.
  • Certificat https valide.
    J'ai émis un certificat basé sur celui de la racine de l'entreprise, qui est présent par défaut sur toutes les machines.
  • Liste du répertoire.
    Je n'ai pas vérifié le travail sans cela - la documentation le demande, j'ai décidé de le faire comme écrit.
Je n'entrerai pas dans les détails de la configuration du serveur.

Pour plus de clarté, appelons le serveur FlashPlayerUpdate.domain.local.

3. Téléchargez des ressources et téléchargez-les sur le serveur

Nous créons une arborescence de répertoires à la racine du serveur web : /pub/flashplayer/update/current/sau/ .

Arborescence des répertoires sur mon serveur :

Si vous avez demandé une licence dans la première étape, vous devriez recevoir en réponse une lettre avec un lien d'où télécharger FlashPlayer - suivez ce lien même. Si vous ne l'avez pas reçu ou ne l'avez pas demandé, alors rendez-vous ici : https://www.adobe.com/products/flashplayer/distribution3.html et téléchargez l'archive à partir du lien " Télécharger les ressources de mise à jour en arrière-plan":

Version de support étendu ou version publique

Une remarque s'impose ici. Il existe 2 options de téléchargement sur la page : version standard (publique) et version de support étendue. Dans mon cas, la stabilité est importante et de nouvelles fonctionnalités ne sont pas nécessaires, c'est pourquoi l'option ESR a été choisie. En même temps, je me suis ajouté un certain nombre d'hémorroïdes : la version publique peut être directement téléchargée par script depuis le site Macromedia. Je n'ai toujours pas cherché sur Google comment télécharger ESR, donc dans mon cas, le contenu du serveur interne est mis à jour dans mode manuel.

A la fin de l'article j'ai joint 2 scripts PowerShell : pour mise à jour automatique(uniquement pour la version standard ; facilement porté sur bash), pour vérifier les mises à jour et notifier par e-mail (pour n'importe quelle version, y compris ESR).


Décompressez l'archive téléchargée dans le dossier /pub/flashplayer/update/current/sau/ sur le serveur.

4. Distribution du fichier de configuration aux clients

En fonction de la capacité du système :

  • 32 bits : C:\Windows\ Système32\Macromed\Flash\mms.cfg
  • 64 bits : C:\Windows\ SysWOW64\Macromed\Flash\mms.cfg
Vous pouvez le distribuer de n'importe quelle manière. J'ai utilisé une combinaison de politique de domaine et d'un serveur d'administration antivirus (pour les ordinateurs qui ont quitté le domaine).

Dans le fichier, nous activons la mise à jour automatique silencieuse, spécifions l'intervalle de mise à jour (en jours), le chemin d'accès à notre serveur et, juste au cas où, la journalisation pour faciliter le diagnostic des problèmes s'ils surviennent :

AutoUpdateDisable=0 SilentAutoUpdateEnable=1 AutoUpdateInterval=2 SilentAutoUpdateServerDomain=FlashPlayerUpdate.domain.local SilentAutoUpdateVerboseLogging=1
Si tout a été fait correctement, Flash Player sur les machines clientes devrait commencer à se mettre à jour selon un calendrier (selon le fichier ci-dessus - une fois tous les 2 jours). En règle générale, le service de mise à jour Adobe s'exécute une fois par heure pour vérifier les conditions de mise à jour. À ce moment-là, le programme de mise à jour doit voir le fichier de configuration, reconfigurer les mises à jour en fonction des paramètres spécifiés et accéder à nouveau serveur vérifier la version.

Autrement dit, environ une heure après la distribution du fichier de configuration, vous pouvez consulter les journaux sur le serveur pour rechercher des demandes de vérification de version.

Automatisation

En tant que représentant classique de la fraternité informatique, je déteste le travail manuel de routine et je ne pouvais tout simplement pas m'empêcher d'automatiser le processus de vérification et de téléchargement. nouvelle version. Cependant, comme indiqué ci-dessus, je n'ai pas encore trouvé de moyen de télécharger les versions ESR à partir du site Web de Macromedia, j'utilise donc le script uniquement pour vérifier les mises à jour. Les suggestions sont les bienvenues.
Script pour télécharger automatiquement les mises à jour
Uniquement pour la version publique !

Logique de fonctionnement : le script télécharge bêtement les fichiers de mise à jour directement depuis Macromedia pour les versions 11,15,16,17,18,19 (si une version a déjà été supprimée du site, le script jurera simplement qu'il n'a pas pu télécharger et ignorez-le) et le remplace par un serveur de mise à jour. Aucune vérification de version. Au stade des tests, j'ai utilisé ce script : je l'ai exécuté la nuit via le planificateur du serveur.

Si vous le souhaitez, vous pouvez croiser ce script et le suivant et bénéficier d'une automatisation complète avec vérification de version, notifications et téléchargement uniquement s'il existe des mises à jour.

Paramètres du script :

  • *FPRoot- chemin d'accès au dossier racine du serveur de mise à jour. Local ou réseau. Naturellement, l'utilisateur à partir duquel le script sera lancé doit disposer des droits d'écriture sur ce dossier.
  • FPDéléchargerRacine- chemin sur le site Macromedia. Ceci est défini par défaut, mais peut être modifié si nécessaire.
  • TéléchargerProxy http:// proxy.domaine.local.
  • Crédits proxy
  • Agent utilisateur
  • Forcer
* - paramètre obligatoire

Exemple d'utilisation :

Powershell.exe -command "& ".\FPUpdater.ps1" -FPRoot "\\FlashPlayerUpdate\pub\flashplayer\update\current\sau" -DownloadProxy "http://proxy.domain.local" -ProxyCreds "DOMAIN\UserName " -UserAgent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) comme Gecko""
Tous les paramètres peuvent être codés en dur dans un script si les longues lignes de démarrage sont intimidantes.

Script pour vérifier les mises à jour et notifier par e-mail
Les mises à jour sont vérifiées selon la version standard, mais comme elles sont mises à jour en même temps (personne n'a annulé les correctifs de sécurité), cela fonctionnera également pour ESR. Pour que le script fonctionne, vous devez créer un fichier CurrentPublic à la racine du serveur Web (à côté du dossier pub), dans lequel vous saisissez la version publique actuelle. pour ActiveX(c'est la version ActiveX qui est utilisée pour la vérification).

Logique de fonctionnement : le script compare la version obtenue à partir du fichier CurrentPublic de votre serveur avec la version sur le serveur Macromedia. Il examine la version sur le serveur selon la logique de la mise à jour automatique : il recherche d'abord la version majeure actuelle en XML, va dans le dossier avec la version majeure et y examine la version complète.

Paramètres du script :

  • *FPIntServerRoot- L'adresse de notre serveur. Par exemple : FlashPlayerUpdate.domain.local
  • FPDéléchargerRacine- chemin sur le site de macromedia. Ceci est défini par défaut, mais peut être modifié si nécessaire.
  • RSE- vérifier la version ESR (sans ce flag il vérifiera la version publique).
  • TéléchargerProxy- serveur proxy, s'il est utilisé dans une entreprise. Écrivez en entier : http:// proxy.domaine.local.
  • Crédits proxy- nom d'utilisateur pour l'autorisation sur le proxy.
  • Agent utilisateur- pour changer l'agent utilisateur avec lequel PowerShell va télécharger. Par exemple, notre proxy est limité par les UserAgents, j'utilise l'agent Internet Explorer.
  • Forcer- désactivez la vérification des certificats pour la cmdlet Invoke-Webrequest (plus précisément, faites-la approuver tous les certificats).
  • *MailÀ- les adresses e-mail auxquelles les notifications seront envoyées.
  • *Courrier de- de qui proviendront les notifications. Par exemple: [email protégé]
  • Serveur SMTP- le serveur SMTP via lequel le message sera envoyé.
* - paramètre obligatoire

Exemple d'utilisation :

.\FPCheckUpdate.ps1 -FPIntServerRoot "fp-update.domain.local" -ESR -Proxy "http://proxy.domain.local" -UserAgent InternetExplorer -Force -MailTo " [email protégé]","[email protégé]"-Courrier de" [email protégé]" -SmtpServer "smtp.company.com"

Ressources utilisées

MISE À JOUR

Mise à jour un peu tardive du 17/06/16.

Depuis la rédaction de cet article, Adobe a réussi à modifier deux fois l'ordre d'accès à la page de téléchargement de FlashPlayer. Par conséquent, désormais, pour accéder à la page de téléchargement, vous devez d'abord vous connecter à Adobe ID. C'est-à-dire l'option de l'analyse de la page pour la version ESR n'est plus disponible.

Je ne me suis pas encore soucié de l'autorisation ni de la réception et de l'envoi de cookies via PowerShell. Du coup, j'ai refait le script de vérification de l'ESR sur la page distribution3, qui peut disparaître à tout moment. Pour l’instant, nous verrons plus loin.

En début d'année, j'ai posé une question sur le forum Adobe sur le thème de la vérification des mises à jour de la version ESR. Ils promettent de trouver une solution, mais jusqu’à présent, le problème persiste.

UPD2

L'autre jour, les informations suivantes sont apparues sur la page de distribution de Flash Player (le lien vers lequel vous avez reçu lorsque vous avez reçu une licence de distribution) :

ATTENTION! Modifications importantes avec la version de support étendu

La version de support étendu a été conçue à l'origine pour minimiser le temps passé par les administrateurs informatiques à certifier chaque nouvelle version de Flash Player : la version de support étendu limitait les modifications apportées aux modifications de sécurité et aux correctifs pour les problèmes fonctionnels critiques. À cette époque, chaque version de Flash Player comportait bien plus de modifications fonctionnelles que de modifications de sécurité. Cependant, la situation a désormais changé : le nombre de mesures de sécurité proactives et réactives dépasse de loin les changements fonctionnels. En pratique, la version de support étendu ne protège plus les organisations informatiques contre énorme montant modifications apportées aux versions standard de Flash Player, mais ne fait que réduire les risques fonctionnels. À cet égard, la décision a été prise d'abandonner la version de support étendu et de se concentrer sur le développement uniquement de versions standard. Ajouter des balises

Le dernier article était consacré à l'animation. Nous avons créé une animation basée sur l'interpolation de mouvement, l'interpolation de forme et simplement la composition de mouvements à partir d'images individuelles. Je pense qu'il est temps de passer à un sujet plus avancé, en examinant l'outil qui constitue la base de la plupart des films Flash de qualité.

Cet outil est ActionScript, un langage événementiel intégré à Flash. Dernière version ActionScript (présent dans Flash 5) est très différent d'ActionScript, présent dans Flash 4. Si dans la version précédente il s'agissait d'un ensemble limité de commandes, permettant uniquement des actions de base, et saisies à l'aide d'une interface peu conviviale, alors le nouveau ActionScript est un langage puissant, avec un ensemble accru de commandes, une prise en charge des classes, un héritage. (!), et une interface bien plus pratique.

ActionScript rend vos pages interactives. Vous pouvez réagir aux événements à partir de la souris ou du clavier et effectuer n'importe quelle action lors de la lecture d'une certaine image.

Afin de maîtriser pleinement ActionScript, il est conseillé d'avoir déjà une expérience en programmation (de préférence en C++, JavaScript, etc.). Cependant, l'un des avantages du langage Flash est que vous n'avez pas besoin d'être un pro de Flash, ni de parfaitement familier avec ActionScript, pour y écrire du code de qualité. Vous pouvez utiliser les fonctionnalités linguistiques que vous jugez nécessaires à votre travail.

Puisque cet article porte sur les bases du langage, nous y aborderons :

  • Le panneau Actions est l'endroit où se produisent presque toutes les communications avec ActionScript.
  • Boutons - comment les faire fonctionner selon nos besoins.
  • Chemins - comment accéder aux objets nécessaires ?
  • Actions de base avec les dessins animés Flash (clips de films) - nous contrôlerons le processus de lecture du film à notre guise.
  • Débogage dans ActionScript - Fenêtres Sortie et Débogueur.

Le but de cet article est de vous donner une idée d'ActionScript, de montrer que ce langage peut être utilisé à la fois pour créer des programmes très impressionnants et pour effectuer des actions basiques qui rendront votre page beaucoup plus attractive.

Termes

Avant d'entrer dans les actions spécifiques, quelques termes ActionScript :

  • Actions- ce sont des instructions qui indiquent au dessin animé Flash quoi faire. D'eux vient le nom du langage - ActionScript (littéralement - script d'action). Soyons d'accord que dans le cadre de cet article, nous utiliserons le terme « instructions » afin de ne pas confondre avec les actions réelles que nous allons réaliser.
  • Événements- ce sont les actions qui se produisent lorsque le dessin animé est joué. Des événements, par exemple, peuvent se produire à la fin du chargement d'une certaine image, lorsque nous atteignons une certaine image, lorsque l'utilisateur appuie sur une touche du clavier ou que le curseur de la souris se trouve sur notre objet.
  • Expressions est n'importe quelle partie d'une instruction qui produit une valeur. Les exemples suivants sont des expressions : 2 + 2, 2 * 2, a + b, 2*pi*r, (15 + k) * aléatoire(10).
  • Les fonctions est un bloc de code qui peut être réutilisé. Vous pouvez transmettre des valeurs à une fonction et en recevoir un résultat de retour. Par exemple, nombre = get_color(15, 24). 15 et 24 sont des arguments (ou paramètres) de la fonction get_color, dont la valeur de retour est écrite dans la variable number.
  • Des classes sont des types d’objets. Par exemple, la classe des arbres est plante. Flash possède un certain nombre de classes prédéfinies (un peu comme les classes JavaScript). Vous pouvez créer vos propres classes ou modifier celles existantes.
  • Instances sont littéralement des instances de certaines classes. Par exemple, une instance végétale peut être un arbre, un buisson ou une fleur. Une instance est déjà un objet réel spécifique. Si une classe est une définition d'un objet (instance), alors une instance est déjà une incarnation concrète, c'est une classe en action. Chaque instance peut recevoir un nom afin que les fonctions ou variables de l'objet soient accessibles via celle-ci.
  • Gestionnaires sont des instructions spéciales qui traitent les événements. Par exemple surClipEvent- un gestionnaire pour les actions associées à un symbole spécifique (voir).
  • Les opérateurs sont des éléments de langage qui calculent des valeurs en fonction d'un ou plusieurs arguments. Par exemple, l'opérateur d'addition (+) renvoie la somme des deux valeurs à gauche et à droite de celui-ci.
  • Variables sont des identifiants qui peuvent stocker des valeurs. Par exemple, a = 5 ; ou nom = "Michael".

Ce sont les termes que nous utiliserons lorsque nous discuterons d'ActionScript. Donc…

Panneau Actions

La barre d'action permet d'afficher et de saisir des programmes ActionScript (Fig. 1). Il existe deux modes de fonctionnement avec le panneau : normal (pour les nuls) et expert. En mode expert, la liste des commandes est un simple champ de saisie de texte. En mode normal, nous ne pouvons pas éditer directement les commandes. Pour ce faire, utilisez le panneau d'options.

Vous pouvez ajouter une instruction en cliquant sur le bouton « + » (voir Fig. 1) ou en sélectionnant l'instruction appropriée dans la liste des éléments du langage. De plus, pour toutes les actions dans Flash, il existe des séquences de touches qui peuvent être utilisées pour le faire beaucoup plus rapidement. Ils sont affichés à droite de chaque action dans le menu du bouton "+". Par exemple, pour ajouter une fonction arrêt(), vous devez appuyer sur Esc+st (séquentiellement : Esc, puis « s », puis « t »).

Vous pouvez supprimer une instruction en la sélectionnant et en appuyant sur le bouton "-" (ou simplement sur la touche Suppr).

Je vous recommande de ne pas commencer immédiatement à utiliser le mode expert si vous n'avez pas d'expérience en programmation dans des langages de type Java (C++, Java, JavaScript). Le mode normal présente un grand avantage qui le rend indispensable pour les débutants : il y a beaucoup moins de risques de se tromper avec la syntaxe du langage. Cela aidera les débutants à comprendre rapidement les subtilités d'ActionScript.


Riz. 1 - Barre d'actions

Le panneau d'action affiche les actions de l'objet ou du cadre actuellement sélectionné.

Boutons

La première chose que vous souhaitez lorsque vous commencez à apprendre l'interactivité Flash est de créer quelque chose qui répondrait aux actions de l'utilisateur, de « faire revivre » votre création, d'ajouter retour. Le moyen le plus simple de procéder consiste à utiliser des boutons. Nous allons donc commencer par eux.

Comme vous le savez, dans Flash, il existe un type spécial de symbole pour créer des boutons - Bouton (voir). Supposons que vous ayez déjà appris à créer des boutons, apprenons maintenant à suivre les clics sur ces boutons.

Les boutons de Macromedia Flash disposent d'une longue liste d'événements auxquels nous pouvons répondre :

  • presse- le bouton de la souris est enfoncé lorsque le curseur est à l'intérieur du bouton ;
  • libérer- le bouton de la souris est relâché lorsque le curseur se trouve à l'intérieur du bouton ;
  • libérerDehors- le bouton de la souris est relâché lorsque le curseur est en dehors du bouton ;
  • rouler sur- le curseur de la souris entre dans le bouton ;
  • dérouler- le curseur dépasse le bouton ;
  • trainer- le curseur entre dans les limites du bouton, pendant que le bouton était enfoncé et que la touche de la souris était enfoncée ;
  • faire traîner- le curseur dépasse le bouton, alors que le bouton a été enfoncé et que la touche de la souris a été enfoncée ;
  • appuyez sur la touche("touche") - une "touche" a été enfoncée. Vous pouvez afficher une liste de clés dans l'aide Flash (objet Clé) ou utiliser la barre d'options pour saisir la clé souhaitée.

Malheureusement, Flash ne « comprend » que le bouton gauche de la souris. Celui de droite sert à appeler le menu contextuel (clic droit sur un dessin animé Flash). Je n'ai pas encore trouvé de moyen d'attraper la touche centrale ou la molette de la souris dans Flash ; je ne pense pas qu'ils existent.

Ces événements sont interceptés à l'aide de la directive sur(). Sa syntaxe est :

Sur (événement) (... // Nos actions)

Ci-dessous, vous pouvez essayer de déclencher vous-même certains événements :

Un exemple très couramment utilisé consiste à suivre un lien lorsqu'un bouton est cliqué :

Sur (version) ( getURL("http://rubs.boom.ru"); )

Pour tester ce scénario, mettez votre bouton en surbrillance, appuyez sur Ctrl+Alt+A et entrez dans le programme.

C'est ainsi que vous pouvez facilement intercepter tous les événements associés à un bouton. Eh bien, comment les utiliser est entièrement une question de votre imagination.

Étapes de base avec les clips vidéo

Une énorme quantité de créativité dans Flash vient de la manipulation des symboles. Presque toutes les techniques de base, toutes les astuces et tous les effets sont impossibles sans ces actions.

Avec ActionScript, vous pouvez faire presque tout ce que vous voulez avec les caractères. Vous devez juste vous rappeler que ces actions ne peuvent être effectuées qu'en réponse à une action de l'utilisateur ou lorsqu'une certaine image se produit sur la timeline.

Alors qu'est-ce que nous avons? Je n'énumérerai que les principaux outils (à mon avis). Le reste vous le trouverez dans la liste des éléments du langage ou dans l'aide.

Fonctions de clip vidéo pouvant être appelées :

  • jouer() - démarre ou reprend la lecture d'un clip ;
  • arrêt() - arrête la lecture du clip ;
  • aller à Et Jouer() - va à une certaine image (scène) et continue la lecture ;
  • aller àEtStop() - va à une image spécifique (scène) et arrête la lecture.

Propriétés (paramètres) des clips pouvant être lus/modifiés :

  • _x, _y - coordonnées du clip (en pixels) ;
  • _xscale, _yscale - échelle du clip (en pourcentage), respectivement horizontalement et verticalement ;
  • _largeur hauteur - largeur et hauteur du clip (en pixels) ;
  • _rotation - angle de rotation du clip (en degrés) ;
  • _alpha - transparence du clip (en pourcentage) ;
  • _visible - visibilité.

Ce n’est pas tout ce que l’on peut faire avec des clips. Utilisez d'autres paramètres, expérimentez, faites preuve de créativité !

Des noms

Pour accéder aux clips, nous devons comprendre le concept de nom d'objet (nom d'instance) et de chemin d'accès à un objet (chemin cible). Admettons que le clip et l'objet sont pour nous la même chose.

Le nom de l'objet est le nom d'une instance de symbole spécifique. Disons que nous pouvons avoir un symbole - une voiture, et les instances de ce symbole seront appelées "Machine1", "Machine2", "Pickup", "Zaporozhets"...

Pour donner un nom à un objet, vous devez sélectionner l'objet, et dans le panneau Instance (Fenêtre->Panneaux->Instance, Ctrl+I) dans la colonne Nom, saisir le nom de l'objet (Fig. 2 ). Les noms ne peuvent être composés que de lettres, de chiffres et du caractère de soulignement ("_"), et le nom ne peut pas commencer par un chiffre.


Riz. 2 - Panneau des instances

Chemins

Le chemin d'accès à un objet est un enregistrement du nom de l'objet, prenant en compte la hiérarchie. Je vais essayer d'expliquer ce que c'est.

Vous savez que dans Flash, les objets peuvent être imbriqués les uns dans les autres, formant ainsi une hiérarchie. Ainsi, cette imbrication facilite non seulement la manipulation des objets, mais limite également la visibilité des noms d’objets. La visibilité est limitée à son niveau. Un objet ne peut accéder directement (par son nom) qu'aux objets qu'il contient qui se trouvent à un niveau inférieur dans la hiérarchie.

Pour accéder à un objet à un autre niveau, vous devez connaître le chemin qui y mène. De plus, le chemin peut être spécifié soit de manière absolue (à partir du niveau le plus élevé de la hiérarchie), soit de manière relative (à partir du niveau actuel).

Le chemin comprend des objets par lesquels nous devons « passer » le long de l'arborescence hiérarchique pour accéder à l'objet dont nous avons besoin, répertoriés par un point. De plus, il existe plusieurs pointeurs (on pourrait les appeler « objets virtuels ») qui sont souvent très utiles :

ce - un pointeur vers « lui-même » (c'est-à-dire vers l'objet courant). Cela peut être nécessaire, par exemple, lorsque vous devez transmettre un pointeur vers l'objet à partir duquel cette fonction est appelée vers une fonction.

_parent - pointeur vers le "parent". Pointe vers un objet à un niveau supérieur dans la hiérarchie.

_racine - "racine". C'est le début de la hiérarchie. Vous ne pouvez pas vous en passer lorsque vous spécifiez un chemin absolu.

Le chemin ressemble à ceci :

feuille.play();- au sous-objet feuille fonction (feuille) appelée jouer();

_parent.tree.leaf.stop();- on suppose qu'il y a un objet à un niveau arbre, qui a un objet feuille, à partir duquel la fonction est appelée arrêt();

_root.banner._visible = faux ;- faire un clip bannière, situé au 1er niveau, invisible.



Riz. 3 - Hiérarchie des clips

A titre d’illustration, prenons une hiérarchie de 5 objets (Fig. 3). Les objets 1 à 4 sont sur le 1er calque, l'objet 5 est sur le 2ème calque. L'objet 2 est imbriqué dans l'objet 1 et l'objet 3 est imbriqué dans l'objet 2. Les objets de l'image sont visuellement imbriqués les uns dans les autres, mais cela ne signifie en aucun cas que cela devrait être le cas « dans la vraie vie ». Ici, ils sont regroupés pour plus de clarté. Puisque le nom d'un objet ne peut pas commencer par un nombre, appelons nos objets obj1-obj5.

Parlons maintenant des chemins. Voyons d’abord quels objets peuvent se référer les uns aux autres par leur nom. obj1 peut contacter obj2, UN obj2- À obj3, mais en même temps obj1 je ne peux pas contacter obj3 directement, parce que il n'est pas contenu dans obj1, et en obj2.

Disons que le premier objet a besoin de l'objet 3 pour recommencer la lecture à partir de la 1ère image. Voici comment procéder :

Obj2.obj3.gotoAndPlay(1);

Pour que le 4ème objet rende le 1er objet (notez avec tous les sous-objets !) semi-transparent, il doit écrire ce qui suit dans son script :

Parent.obj1._alpha = 50 ;

Racine.obj1._alpha = 50 ;

Parce que obj4 est au premier niveau de la hiérarchie, alors pour lui _racine Et _parent- même.

Maintenant, pour l'objet 3, nous allons écrire un script qui rendra l'objet 5 invisible lorsque le bouton de la souris sera enfoncé. Dans le script de l'objet 3 nous écrivons :

OnClipEvent (mouseDown) ( _root.obj5._visible = false; )

Dans cet extrait, nous avons utilisé un chemin absolu. Si nous utilisions relatif, cela ressemblerait à :

Parent._parent._parent.obj5._visible = faux;

J'espère avoir résolu le problème du chemin.

Les exemples ci-dessus ont montré non seulement à quoi ressemblent les chemins, mais également comment les fonctions sont appelées et les valeurs des propriétés sont attribuées.

Publications sur le sujet