Avec Flash CS3 a changé la façon de lire les paramètres passés à un film, ou comme params que paramètres GET. Dans les versions précédentes de Flash, il est un paramètre était disponible comme une variable directement dans la première image. Maintenant, heureusement, nous avons un objet qui gère le passage de paramètres, et pas seulement: LoaderInfo .
Catégorie "Flash CS3"
Lire les paramètres d'un film en Actionscript 3.0
Adobe AIR FAQ: Tout ce que vous devez savoir
En tournant sur le blogue différentes (merci Frank) et par des discussions avec Jules , j'ai réalisé que, en plus de l'intérêt extrême dans Adobe AIR , il ya aussi beaucoup de confusion, et à juste titre. Les deux développeurs et les utilisateurs continuent à ne pas être clair ce qu'il est, ce que vous servir et comment les évolutions dans Adobe AIR . J'ai donc décidé de rassembler les différents fils dans ce genre de FAQ pour tenter d'éclaircir un peu "ce qui est réellement caché derrière d'Adobe AIR.
Tout ce que vous avez toujours voulu faire avec Actionscript 3
Une grande innovation introduite par ActionScript 3.0 est d'être capable de lister tous les objets (y compris forme dessinée à l'époque) présente dans un conteneur ( DisplayObjectContainer ). En fait, il était maintenant que Adobe a introduit cette fonctionnalité. J'avais toujours plaints de ce manque, surtout depuis que va débogage de l'environnement Flash a été capable de le mener à bien tranquillement, mais est resté totalement inaccessible à partir du code!
Flash CS3 Professional: code non formaté
Je suppose que je me demande pourquoi Adobe avec une liste de bogues en pleine croissance!?. Le bug que j'ai trouvé, dans CS3 Professional en italien, est très ennuyeux et dangereux. Oeil au code suivant:
1 2 3 |
Après le formatage automatique:
1 2 3 |
Il a enlevé les crochets dans le calcul du max-min+1 ! Ce qui, évidemment, ne retourne plus la valeur correcte! . Le support, en fait, est essentielle car elle permet de multiplier Math.random() pour le résultat de l'ensemble (max-min+1) . e poi, al risultato di questa moltiplicazione, viene sottratto (min+1) !! Dans le second cas, après que le code était "sformattato", Math.random() est multiplié par "seulement" à l' max et ensuite, le résultat de cette multiplication est soustrait (min+1) ! Je lui ai expliqué que pour le souci d'exhaustivité ... mais je pense qu'il était clair pour tout le monde ...
Evidemment à la maison Adobe pense vraiment que les mathématiques sont une opinion?
Ceci est un bug de dangereux ... si les codes de formatage corps "perturbe" le code, il devient un sérieux problème va tout remettre en place! J'espère que Adobe peut fournir un patch dès que possible! Alors ATTENTION! Laissez-moi savoir si c'est fait pour vous, à votre version ...
UMAP Flash Component (v0.6 bêta)
Elle a été libérée de la beta 0.6 composante UMAP pour Flash CS3 (ActionScript 3.0) - est également présent dans la version du package pour Flex. Parmi les nouvelles que nous voyons l'adoption d' OpenStreetMap comme fournisseur par défaut. Ajout également été un marqueur gestionnaire avancé et une série d'optimisations diverses.
Adobe AIR 1.0, Adobe Flex 3.0 et Adobe Source nouveau Open
Bonnes nouvelles pour les développeurs AIR. Il a finalement été libéré la version 1.0 ! Fin de la bêta alors! Nouveau SDK (vitale pour la construction dans des domaines comme Aptana Studio , Eclipse , etc ...) et mettre à jour les extensions Dreamweawer et Flash CS3 Professional en italien ! Jusqu'à hier, en fait, il n'était pas possible de développer une application AIR avec Flash CS3 profession en italien. Maintenant, le nouveau menu pour la création de RIA AIR est disponible et fonctionne! Vous pouvez trouver toutes les mises à jour (correctifs de sécurité et les extensions) directement sur le site.
Une autre nouveauté est le lancement officiel de Adobe Open Source , un nouveau site qui permettra de suivre toutes les dernières en open source, et pas seulement d'Adobe. Cela devient, alors, du point de référence pour les développeurs qui inciteront les contributions des démos intéressantes, le code source et plus, comme le soutien à des projets open source Tamarin et BlazeDS .
Bientôt nous allons voir comment développer une application AIR simple avec Flash et Dreamweaver!
Peintre: application simple pour le dessin dans Flash Pro CS3
Voici une démonstration de comment il est facile de développer des applications dans Flash CS3. Après plusieurs discussions sur le développement d'une «effacer», je propose une application simple qui met pleinement en œuvre certaines des choses que dit dans les messages précédents. Dans cet exemple, j'ai ajouté une barre d'outils "draggabile", la possibilité de choisir la couleur de la brosse et le fond, le choix de l'instrument "effacer" et un léger "flou" lors de la conception!
Téléchargez le code source pour Adobe Flash CS3 Professional
Flash CS3: Un bug de texte
Travailler avec du texte statique cuorioso j'ai découvert une faille dans Adobe Flash CS3 Professional . En plaçant le texte statique dans un film et un angle (inclinaison), des résultats différents sont obtenus quand il exécute le film, basé sur l'anti-aliasing:

Création Flash environnement, cependant, l'aperçu est le même pour les choix d'anti-aliasing. Dans l'exemple montré ci-dessus, j'ai utilisé une police Arial. Cependant, le problème se produit avec n'importe quelle source, y compris ceux des bitmaps. Le même défaut se fait par la saisie de texte statique dans un MovieClip et il bascule au lieu du texte actuel. (?)
Peinture Flash CS3: véritable outil d'effacer le temps
En commençant par les codes fournis dans Flash CS3 Créer une peinture , et effectuer des modifications mineures, peuvent grandement améliorer l'instrument de "gommer". Ajout d'une figure n'est pas visible, vous pouvez l'utiliser comme un «plan» pour exécuter le draw() le mode de fusion «effacer». Comme le montre l'exemple ci-dessous, après avoir tiré quelque chose, maintenir enfoncée la touche Ctrl enfoncée et l'effet de «l'annulation» est désormais en temps réel.
Le code est comme suit: - Source :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | . MouseEvent ; flash.events importation. MouseEvent ; . BitmapData ; import flash.display. BitmapData ; . Bitmap ; import flash.display. bitmaps ; . GradientType ; . import flash.display GradientType ; / / . Matrix ; les importations flash.geom. Matrice ; / / Boolean = false ; MD var: booléen = false; / / Sprite = new Sprite ( ) ; var event_spr: Sprite = new Sprite (); event_spr ) ; addChild (event_spr); / / Number = event_spr . stage . stageWidth ; var area_width: Nombre = event_spr stages stageWidth;.. Number = event_spr . stage . stageHeight - 32 ; area_height var: Nombre .. = event_spr stages stageHeight - 32; / / String = GradientType . LINEAR ; fillType var: Chaîne = GradientType . linéaires; : Array = [ 0xFF0000 , 0x00FF00 , 0x0000ff ] ; couleurs var: tableau = [0xFF0000, 0x00FF00, 0x0000FF]; : Array = [ 1 , 1 , 1 ] ; var alphas: tableau = [1, 1, 1]; : Array = [ 0 , 128 , 255 ] ; ratios var: tableau = [0, 128, 255]; String = SpreadMethod . PAD ; spreadMethod var: Chaîne = SpreadMethod PAD;. : Matrix = new Matrix ( ) ; var matrice: Matrice = new Matrice (); createGradientBox ( area_width , area_height , 1 , 0 , 0 ) ; . createGradientBox matrice (area_width, area_height, 1, 0, 0); / / event_spr . graphics ) { avec (event_spr. graphiques) { fillType , colors , alphas , ratios , matrix , spreadMethod ) ; beginGradientFill (fillType, couleurs, alphas, ratios, matrice, spreadMethod); 0 , 0 , area_width , area_height ) ; drawRect (0, 0, area_width, area_height); ; endFill (); } / Événement / Peinture ( MouseEvent . MOUSE_DOWN , _onMouseDown ) ; . event_spr addEventListener ( MouseEvent MOUSE_DOWN, _onMouseDown.); ( MouseEvent . MOUSE_MOVE , _onMouseMove ) ; . event_spr addEventListener ( MouseEvent MOUSE_MOVE, _onMouseMove.); ( MouseEvent . MOUSE_UP , _onMouseUp ) ; . event_spr addEventListener ( MouseEvent MOUSE_UP, _onMouseUp.); ( MouseEvent . MOUSE_OUT , _onMouseUp ) ; . event_spr addEventListener ( MouseEvent MOUSE_OUT, _onMouseUp.); / / BitmapData = new BitmapData ( event_spr . width , event_spr . height , true , 0 ) ; var bmpd: BitmapData = new BitmapData (largeur event_spr., event_spr la hauteur, c'est vrai, 0.); Bitmap = new Bitmap ( bmpd ) ; var bmp: Bitmap = new Bitmap (bmpd); bmp ) ; addChild (bmp); / / / / Forme temporaire Shape = new Shape ( ) ; draw_shape var: Shape = new Shape (); draw_shape ) ; addChild (draw_shape); / / / / Shape n'est pas visible, utilisé pour la «annulation» Shape = new Shape ( ) ; erase_shape var: Shape = new Shape (); / / e : MouseEvent ) : void { Fonction _onMouseDown (e: MouseEvent ): void { ) ; debug ("_onMouseDown"); . lineStyle ( 10 , 0xffffff , 1 ) ; .. draw_shape graphiques lineStyle (10, 0xFFFFFF, 1); . lineStyle ( 20 , 0xffffff , 1 ) ; .. erase_shape graphiques lineStyle (20, 0xFFFFFF, 1); . moveTo ( e . localX , e . localY ) ; .. draw_shape graphiques moveTo (et. localX et localY.); . moveTo ( e . localX , e . localY ) ; .. erase_shape graphiques moveTo (et. localX et localY.); md = true; } / / e : MouseEvent ) : void { _onMouseUp function (e: MouseEvent ): void { md = false; . draw ( draw_shape ) ; .. bmp bitmapData tirage (draw_shape); . clear ( ) ; . draw_shape graphiques clairs ().; . clear ( ) ; . erase_shape graphiques clairs ().; } / / e : MouseEvent ) : void { _onMouseMove function (e: MouseEvent ): void { ) ; debug ("_onMouseMove"); md && ! e . ctrlKey ) { if (MD & &! et. ctrlKey) { . lineTo ( e . localX , e . localY ) ; .. draw_shape graphiques lineTo (et. localX et localY.); ( md && e . ctrlKey ) { } Else if (MD & & et. CtrlKey) { . lineTo ( e . localX , e . localY ) ; .. erase_shape graphiques lineTo (et. localX et localY.); . draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData tirage (erase_shape, null, null, "effacer")..; } } / / v : String ) : void { debug fonction (v: cordes ): void { : Date = new Date ( ) ; var d: Date de = new Date de (); d . getMinutes ( ) + ":" + d . getSeconds ( ) + ":" + d . getMilliseconds ( ) + ": " + v ) ; trace (d. getMinutes () + "" + d. getSeconds () + "" + getMilliseconds d. () + "" + st); } |
): Nous avons ajouté une nouvelle forme, erase_shape pas visible (il a été procédé à aucune addChild() ):
1 2 3 |
Le morceau de code qui prend soin de dessin a été introduit pour la touche de contrôle et, si pressée, est intéressé précisément la forme erase_shape et copié dans le bitmap:
1 2 3 | .... . lineTo ( e . localX , e . localY ) ; .. erase_shape graphiques lineTo (et. localX et localY.); . draw ( erase_shape , null , null , "erase" ) ; bmp bitmapData tirage (erase_shape, null, null, "effacer")..; |
Peinture pour créer une application dans Flash CS3
Comme expliqué dans Flash Actionscript concours: l'outil d'effacement vous ne pouvez pas "effacer" une zone particulière d'un Sprite, MovieClip ou forme sur laquelle des lignes ou des rectangles ont été tirées à l'aide du curseur graphique. Il est, en fait, la seule méthode clear() , cependant, n'a aucun effet sur toute la surface de l'objet. La solution à ce problème réside dans la possibilité d'utiliser le bitmap et objets BitmapData. Comme nous le verrons, nous pouvons directement accéder et manipuler des données bitmap afin de "gommer" coups avec un instrument "effaceur" réel.
Présenter deux méthodes différentes pour atteindre la "porte". per esempio. Le premier "tirage" (supprimer) les données directement dans le BitmapData, en utilisant la méthode fillRect() - peut également être utilisé setPixel() par exemple. La seconde méthode, celle que je préfère, utilise les méthodes de fusions (blendMode).
Tout d'abord nous allons voir ce genre d'organisation est minimalement nécessaire pour atteindre un peintre Flash simple. Le schéma présenté ci-dessous s'applique à la fois les propositions de la «porte»:

J'ai créé trois couches: la première, MovieClip ou Sprite, le contexte et le travail du gestionnaire d'événement (MouseDown, MouseMove et MouseUp). Le second, le bitmap est notre principale couches, celui qui sera effectivement établi graphiques seront appliquées et sur lequel la "porte". , ecc…). La troisième couche et la dernière, la forme, traite de deux questions: la première est qu'il permet d'utiliser directement les fonctions prévues par le curseur graphique (comme lineStyle , drawRect() , etc ...). Elle accroît également la performance au cours du tableau de suivi, comme expliqué en détail ci-dessous.







Derniers Commentaires
Giovambattista Fazioli : mise à jour: WordPress a mis à jour la documentation de cette fonction.
Giovambattista Fazioli : @ iLeW: bien sûr, voir ici
iLeW : Ce n'est pas que vous pourriez avoir un dernier exemple de l'utilisation de délégués? Ici, vous êtes limité à ...
David Ganz : Merci!
Giovambattista Fazioli : @ kheimon: Je suis d'accord, ce n'est pas aujourd'hui ne serait jamais utiliser dans un code réel, en particulier en relation ...