Articles taggés avec 'des tutoriels
Certains lecteurs m'ont demandé comment il a été créé le flocon de neige, tellement réaliste, le Noël Widget . Ceux qui ont téléchargé le code source, vous savez probablement déjà ... mais il était vraiment simple. D'abord, je choisis l'outil Pinceau dans Flash et j'ai dessiné un point.
J'ai su en faire un symbole et j'ai appliqué deux effets dans le bon ordre: biseau et flou:
Le résultat a été: 
A ce MovieClip (symbole) associé à une classe simple, je CNeve , qui crée réellement l'intelligence de l'agrafe elle-même:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20e 21 22 23 24 25
| MovieClip { Cneve classe étend MovieClip { _interval ; privés _interval var; _maxy : Number ; _maxy var privé: Nombre ; / / Fonction Cneve () { this , "_move" , 25 ) ; _interval = setInterval (this, "_move", 25); round ( ( Stage . height + 256 ) / 2 ) + _getRndRange ( - 20 , - 7 ) ; _maxy = Math . round (( Stade hauteur + 256) / 2.) + _getRndRange (- 20, - 7); } / / _getRndRange ( min : Number , max : Number ) : Number { _getRndRange fonction privée (min: Number , max: Number ): Number { Number = Math . floor ( Math . random ( ) * ( max - min + 1 ) ) + min ; randomNum var: Nombre = Math . floor ( Math . random () * (max - min + 1)) + min; retour randomNum; } / / _move ( ) { _move fonction privée () { 1 , 5 ) ; _getRndRange _y + = (1, 5); _getRndRange ( - 50 , 50 ) ) > 0 ) ? 1 : - 1 ; _x + = ((_getRndRange (- 50, 50))> 0) 1: -? 1; 1 , 5 ) ; _rotation _getRndRange + = (1, 5); _y > _maxy ) { if (_y> _maxy) { _interval ) ; clearInterval (_interval); } ; updateAfterEvent (); } } |
La méthode _move() contient les renseignements de l'agrafe, qui est la fonction d'une chute, extrêmement simple. En variant la fonction aléatoire _x += ((_getRndRange(-50, 50))>0) ? 1 : -1;, si può aggiungere un effetto effetto vento, cioè i fiocchi cadono con una pendenza particolare. _x += ((_getRndRange(-50, 50))>0) ? 1 : -1;, par exemple en insérant une _getRndRange(-550, 50), vous pouvez ajouter un effet de vent effet, que les flocons tombent avec une pente particulière. En particulier, les flocons peuvent être envoyés à droite et à gauche en utilisant un code comme ceci:
1
| _getRndRange ( _getRndRange ( - 350 , - 50 ) , _getRndRange ( 50 , 350 ) ) ) > 0 ) ? 1 : - 1 ; _x + = ((_getRndRange (_getRndRange (- 350, - 50), _getRndRange (50, 350)))> 0) 1: -? 1; |
La rotation ( _rotation += _getRndRange(1, 5); ), cela donne un autre détail à l'arc lui-même.
e uno scale randomico, per avere fiocchi di neve di diverse dimensioni. Quand je crée un arc (voir fonction creaFiocco() ci-dessous) J'ai aussi ajouté un alpha=90 escaliers et un hasard, d'avoir des flocons de neige de différentes tailles.
1 2 3 4 5 6 7 8 9 10 11 12
| / / Création de base Fonction creaFiocco () { 20 , 100 ) ; plageAleatoire var s = (20, 100); = randRange ( - Math . floor ( ( Stage . width - 320 ) / 2 ) , Math . round ( ( Stage . width + 320 ) / 2 ) ) ; plageAleatoire var x = (- Math floor ((. Stade largeur - 320) / 2),. Math round ((. Stade largeur + 320) / 2).); = - Math . floor ( ( ( Stage . height - 256 ) / 2 ) ) - 10 ; var = y - Math floor (((. Stade de hauteur - 256) / 2).) - 10; "neve" , "neve_" + index , index , { _x : x , _y : y , _xscale : s , _yscale : s , _alpha : 90 } ) ; . c_mc attachMovie ("neige", "neve_" + index, index, {_x: x, _y: y, _xscale: s, _yscale: s, _alpha: 90}); index + +; index > 1000 ) { if (index> 1000) { ; index = 1; , 2 ) ; c_mc = createEmptyMovieClip ("c_mc", 2); } } |
Et c'est tout ...
J'ai oublié ... Joyeuses fêtes et meilleurs voeux à tous ... 
Suite ...
? Comment un mode désactivé TextField entrée Puisque la propriété enabled n'est pas disponible, vous pouvez utiliser un simple artifice: état d'exécution du changement de TextField. Heureusement, les développeurs Flash sont autorisés à changer le statut d'un TextField également exécuter à travers la propriété type . Il s'ensuit que si un TextField est ajouté à la scène comme entrée (et donc type="input" ), par code, nous pouvons en faire un texte "statique". En réalité, la transformer en texte dynamique ( type="dynamic" ), mais le résultat visuel est le même. L'artifice fonctionne parce que les deux TextField TextField entrée les propriétés dynamiques partagent le même text . Donc, si j'ai mis un texte dans un TextField entrée quand il transformé en un champ de texte dynamique ont seulement l'impression de ne pas être en mesure d'insérer des caractères! Que j'ai désactivé l'entrée TextField!
L'objet TextField peut également être étendue en tant que MovieClip, alors nous pouvons utiliser le code suivant utiles:
1 2 3
| prototype . Enabled = function ( v : Boolean ) { TextField . prototype Enabled = function (v:. booléenne ) { type = v ? "input" : "dynamic" ; .? ce type v = "entrée": "dynamique"; }; |
Suite ...
di Flash. Illustrer une technique pour créer des symboles (MovieClip) composantes modales à être utilisés de façon similaire à l' Alert et la Window de Flash. Le but est de montrer un MovieClip-dessus tous les autres, la désactivation de - bien - l'accès à la base et tout autre objet / composant présent. Pour être honnête, j'ai réalisé qu'en faisant un peu de "code de la rétro-ingénierie d'Adobe, qui est en clair! En fait, j'ai résisté 
Le artefizio qui est utilisée pour désactiver toutes les interfaces présentes ci-dessous notre MovieClip, est de créer un MovieClip transparents prennent toute la zone de la scène. a false . A ce MovieClip, qui sera pratiquement pas visible s'enclenche une méthode "vide" sur l'événement onRelease , en prenant soin de définir le useHandCursor aux false .
Tout d'abord, nous créons un film avec n'importe quelle interface de la scène principale:

Suite ...
Dans Message Étendre MovieClip dans Flash MX j'ai eu une idée de prolonger un MovieClip. En particulier, j'ai dit que l'utilisation de MovieClip.prototype permet pas l'extension de leurs méthodes, mais seulement:
[...] Deux limites importantes de cette technique sont:
- Il ne peut pas être appliqué à tous les objets exposés par Flash
- Ils peuvent être «ajoutée» des méthodes et des propriétés que ne [...]
En effet, il est possible, avec une étape supplémentaire, même en utilisant ajouter dynamiquement des propriétés MovieClip.prototype . , infatti, Flash permetteva l'aggiunta di proprietà (in lettura/scrittura o solo lettura) tramite il metodo addProperty() . Avant l'introduction de function get et function set , en fait, permis l'ajout de propriétés Flash (lecture / écriture ou lecture seule) via le addProperty() . En pratique, cela se traduit par l'invocation de la méthode addProperty() et la définition de deux getters et setters. Le compositeur peut être null , afin de créer propriété en lecture seule. Par exemple, si nous voulions étendre MovieClip avec un tout nouvelle propriété _alpha pouvez ajouter une animation, il suffit d'écrire le code suivant:
1 2 3 4 5 6 7
| : Number { Fonction _get_alpha (): Number { this . _alpha ) ; retour (this. _alpha); } v : Number ) : Void { _set_alpha fonction (v: Nombre ): Void { this , "_alpha" , Strong . easeOut , this . _alpha , v , 1 , true ) ; new Tween (this, "_alpha", easeOut fort, ce _alpha, v, 1, c'est vrai..); } prototype . addProperty ( "_alpha_tween" , _get_alpha , _set_alpha ) ; MovieClip .. prototype addProperty ("_alpha_tween" _get_alpha, _set_alpha); |
A partir de maintenant, si nous avons un symbole "miosimbolo_mc" Nous pouvons exploiter cette nouvelle propriété:
1
| ; miosimbolo_mc _alpha_tween = 50.; |
. Qu'est-ce que vous pouvez faire à la place, est d'écraser les propriétés existantes, c'est pourquoi j'ai utilisé _alpha_tween lieu de _alpha . Voici donc une bonne raison de continuer à utiliser le 2,0 pour étendre les classes - et le résultat - toute MovieClip.
Suite ...
Revenant à la Poste classe StageExt: animations Flash redimensionnable voici une encore plus facile à obtenir le même effet, que si la bibliothèque de notre film est au moins un composant Flash!
Créer un symbole, un carré rouge 100 × 100 et le mettre dans les stades resizeWindow appelant. Entrez dans la bibliothèque, et non pas sur la scène, tout composant, comme un TextInput et entrez le code suivant dans la première image du film.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| managers . SystemManager ; . importation mx gestionnaires SystemManager.; / / scaleMode = "noscale" Stages . scaleMode = "noScale" / / / / SystemManager.init (); ( "resize" , resizeWindow ) ; . SystemManager addEventListener ("resize", resizeWindow); / / = function ( Void ) : Void { . resizeWindow redimensionner = function (Void): Void { Object = SystemManager . screen ; var s: Objet . SystemManager = écran; _width = s . width ; . présent _width = largeur s.; _height = s . height ; ce _height = s. hauteur.; _x = Math . round ( s . x ) ; . présent _x = Math . ronds (art. X); _y = Math . round ( s . y ) ; . cet _y = Math . ronde (S. Y); } ( ) ; resizeWindow redimensionner ().; |
La ligne 6 (SystemManager.init ();) peut être omis.
Suite ...
Lorsque estent une classe à partir d'un MovieClip qu'il contient d'autres objets (MovieClip, TextField, etc ...) ils ne peuvent être «prêt» au sein du constructeur. Cela arrive surtout quand les autres en utilisant des composants de MovieClip ou étendu (contrôles) de Flash. Pour résoudre le problème il suffit d'utiliser l'événement onLoad héritée de la classe elle-même. Par exemple, imaginez que vous avez un MovieClip qui contient un TextField (internes objet statique visuelle dans Flash) et un objet TextInput (inséré composants du panneau de contrôle) et que vous voulez définir certaines propriétés dans le constructeur de notre classe MyClass.
Nous créons un symbole et l'insérer dans l'objet TextField est (appelons text_txt) est l'objet (textinput_txt) TextInput. Nous associons à ce symbole pour une classe qui étend MovieClip, appelez notre classe MyClass. Ce que nous obtenons est que pendant le constructeur de notre classe MyClass ces deux contrôles sont initialisés. Si nous essayons d'utiliser un code comme ceci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| / / controls . TextInput ; l'importation mx contrôles TextInput..; / / MovieClip { classe MyClass étend MovieClip { / / text_txt : TextField ; private var text_txt: TextField ; textinput_txt : TextInput ; private var textinput_txt: TextInput; / / function MaClasse () { "MiaClasse::costruttore" ) ; trace ("MaClasse:: constructeur»); / / = "Ciao" ; . text_txt text = "Bonjour"; = "Ciao" ; . textinput_txt text = "Bonjour"; / / } } |
Suite ...
Flash a toujours soutenu le plein écran (plein écran) et en lecteur autonome sur le projecteur. Ce mode est encore entièrement pris en charge et n'a pas changé. Au lieu d'Adobe a récemment introduit la possibilité d'activer directement les films en plein écran s'affiche dans le navigateur. Nous avons introduit une nouvelle fonction ActionScript et simple qui fonctionne avec les deux joueurs autonomes joueur avec le navigateur. ed <embed> . Pour faire le plein écran fuzionante doit fonctionner HTML côté, en ajoutant un nouveau paramètre allowFullScreen de TAG <object> et <embed> . Tout le reste est laissé à l'interne du moteur de Flash.
Cette nouvelle fonctionnalité a encore quelques restrictions que vous devez savoir, tout d'abord l'utilisation du Flash Player version 9.0.28.0 ou supérieure. Par ailleurs, en résumé:
- Navigateur doit être installé sur la version du Player 9.0.28.0 ou plus
- e
<embed> . Le développeur doit ajouter un nouveau paramètre allowFullScreen balise dans <object> et <embed> . Ce paramètre est normalement réglé à false et ne permet pas en plein écran. Pour activer en plein écran, vous devez explicitement mis à true . - Une boîte de dialogue s'affiche lorsque vous entrez en mode plein écran et vous dire comment sortir de ce mode. Cette boîte sera visible pendant quelques secondes, après quoi il disparaîtra par lui-même.
- L'activation de l'ActionScript fullscreen ne peut être en réponse à un clic de la souris ou en appuyant sur un bouton, un autre mode sera ignoré dans ActionScript 2.0 et de déclencher une exception
throw dans ActionScript 3.0. - Pendant le mode plein écran, vous ne pouvez pas utiliser le clavier. L'utilisateur final ne peut pas entrer ou modifier du texte. La seule réponse est donnée au raccourci clavier utilisé pour quitter le mode plein écran (en appuyant sur
ESC )
ActionScript
Le code nécessaire pour régler le mode plein écran est très simple et utilise l'objet Stage discutées dans ce blog de classe StageExt: animations Flash redimensionnable :
1
| "displayState" ] = "fullScreen" ; Etape ["displayState"] = "fullScreen"; |
Suite ...
Comme promis voici la version actualisée de l'effet de magie sympathique écrite. J'ai fait une animation différente pour la «lettre», pour montrer combien les effets que vous pouvez faire. Le source complet, vous pouvez le télécharger ici .
Classe MagicLetter
C'est le code de la classe, bien sûr, peut encore être modifié et amélioré. Par exemple, vous pouvez entrer une supprot analyser pour un symbole de la "nouvelle ligne", pour envelopper les mots. Peut-être introduit les fonctions obtenir et définir certaines propriétés pour exporter à l'extérieur, et plus encore.
Suite ...
Ce que je propose est un article que j'ai écrit en août 2003 (titre original: la magie écrit dans Flash MX). En dépit d'être "daté" (maintenant je utiliser un code ActionScript différents), je pense que c'est un bel outil pour effet vraiment enchanteur. Proposer plus tard, ou que vous fassiez, la version mise à jour avec l'utilisation de classes ...
Dynamique MovieClip
L'élément qui joue un rôle clé nell'architetura flash MovieClip objet. La capacité à créer des objets de ce type de code donne un remarquable potentiel pour Flash, ce qui en fait un environnement de développement décent vraiment amusant. Avec la possibilité d'ajouter d'exécution des objets de type de MovieClip, nous allons voir comment il est facile d'obtenir l'effet de la figure 1.
Figure 1 - Exemple d'effet de texte
La classe de MagicText_class
Comme nous utilisons la dernière version de Flash MX, nous faisons les choses à droite et créer une classe MagicText_class être réutilisé à volonté. Ce que nous faisons est de définir une nouvelle classe MagicText_class , qui hérite de toutes les caractéristiques d'un classe MovieClip. De cette façon, nous aurions un objet réel, puis de créer la base pour une véritable composant Flash! Si nous le souhaitons. Pour le moment arrêtons-nous seulement sur notre classe et de voir comment le construire.
Suite ...
J'utilise deux techniques pour étendre les fonctionnalités d'un MovieClip. Le premier, utilisé dans les versions précédentes de Flash MX, utilisé la propriété prototype , un pointeur vers la superclasse (mère), comme indiqué dans le manuel:
Une référence à la superclasse d'un objet de classe ou fonction. La propriété prototype est automatiquement créé et associé à un objet de classe ou fonction créée. Cette propriété est statique et est spécifique à la classe ou fonction créée. Si, par exemple, vous créez une classe personnalisée, la valeur de la propriété prototype est partagée par toutes les instances de la classe et est accessible seulement comme une propriété de classe. . Les instances de la classe personnalisée ne peuvent accéder directement à la propriété prototype , mais peut être accessible via la propriété __proto__ .
Un des avantages de l'utilisation prototype , notamment avec le MovieClip MovieClip réside dans l'extension de tous, aucun marqué. En fait, vous faites une extension à tous les MovieClip diffusion statique ou dynamique. Par exemple, une extension pratique pourrait être:
1 2 3
| prototype . move = function ( x : Number , y : Number ) { MovieClip .. prototype de passer la fonction = (x: Number , y: Number ) { _x = x ; this . _y = y ; . présent _x = x;. présent _y = y; } |
Suite ...
Derniers Commentaires
Mark : @ Marc: Merci pour la réponse. Par exemple, si vous avez un code de sauvegarder / utiliser le dossier ...
Mark : Merci pour la réponse. Par exemple, si vous avez un code de sauvegarder / utiliser le dossier ...
Giovambattista Fazioli : @ Marc: en principe, absolument, beaucoup dépend de comment et quoi télécharger. La. ..
Mark : Bonjour, bon guide! Je voulais vous demander, vous pouvez utiliser le même code à exécuter une base de données SQL? Au lieu de ...
Joseph : Salut je voulais vous demander comment vous pouvez faire dans le post que j'ai téléchargé une galerie de 50 images, par exemple, ...