Flash CS3: Créer un effet réflexe sur un MovieClip

Profitant d'une caractéristique remarquable de Actionscript 3.0 (voir ActionScript 3.0, tous avec le nouvel opérateur ), j'ai créé un ReflexMe classe capable de générer un effet de "réflexion" de toute MovieClip dans cette bibliothèque.

Flash Player Loading ...

La source fait partie du paquet undolibrary - GoogleCode de ce - mais si vous voulez, vous pouvez télécharger les fichiers simples ReflexMe.as .


Utilisation

Télécharger les fichiers ReflexMe.as et le placer dans le dossier de votre film. fla. Sélectionnez le MovieClip dans la bibliothèque à laquelle vous appliquez le réflexe effet et ouvrir la fenêtre des propriétés symbole. Dans la section Liaison ReflexMe inclus dans le champ Classe de base:

MovieClip

À ce stade, d'essayer le film, les MovieClip sélectionnés auront l'effet de la SLR. Si le MovieClip donné un nom d'instance potrente également régler certains paramètres tels que:

  • reflexOffset - distance de la réflexion
  • gradientOffset - l'extension du gradient reflète
  • alphaOffset - canal alpha de la réflexion
  • gradientRadial - type de réflexion: radiale ou linéaire

Remarques

La classe ReflexMe.as est écrit comme une classe de base de prolonger toute MovieClip. Sa simplicité est telle que vous pouvez riaddatarla et le code de désarmement comme «fallacieux» pour être utilisé par du code, au lieu de l'IDE Flash. L'effet d'ensemble est généré par les quelques commentaires (retiré) de lignes de code qui suivent:

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
/ / Je conserve orginali La taille de la MovieClip
width ; __oWidth = ceci largeur.;
height ; __oHeight = ceci hauteur.;
/ / Créer un BitmapData de la taille des
/ / MovieClip pour que j'applique le réflexe effet
( this . width , this . height , true , 0x000000 ) ; __bmpd = new BitmapData (largeur this., cette hauteur, c'est vrai, 0x000000.);
/ / Je copie le BitmapData sur MovieClip
( this ) ; . __bmpd dessiner (this);
/ / Créer un objet Bitmap pour afficher
/ / Cela va affecter notre SLR
( __bmpd ) ; __bmp = new Bitmap (__ bmpd);
/ / Pas voir que
__bmp ) ; addChild (bmp __);
/ / Les 180 degrés: le rotate inversent
= - 1 ; . __bmp scaleY = - 1;
/ / La position qu'il à la base de MovieClip oroginale
/ / Le x 2 de la hauteur est nécessaire en raison de sorte
/ / Rotation qui s'est déplacé à l'origine des axes
= __oHeight * 2 + __reflexOffset ; __bmp y = 2 + __ * __ oHeight reflexOffset.;
/ / Cache bitmap comme: besoin de couvrir après
/ / Avec effet de dégradé et de canal alpha
= true ; __bmp cacheAsBitmap = true.;
/ / Création d'un masque
( ) ; __mask = new Shape ();
/ / Cache bitmap comme: besoin de couvrir après
/ / Avec effet de dégradé et de canal alpha
= true ; __mask cacheAsBitmap = true.;
/ / Position il a également réfléchi sur l'image
= __oHeight + __reflexOffset ; __mask y = __ + __ oHeight reflexOffset.;
/ / Créer une matrice pour le gradient
( ) ; __matrix = new Matrice ();
/ / Créer le gradient de la même taille
/ / MovieClip originales
( __oWidth , __oHeight , Math . PI / 2 ) ; __matrix createGradientBox (oWidth __, __ oHeight,. Math PI / 2.);
__mask . graphics ) { avec (__ masque. graphiques) {
; clear ();

0 , 0 , __oWidth , __oHeight ) ; drawRect (0, 0, __ oWidth, __ oHeight);
; endFill ();
}
__mask ) ; addChild (masque __);
Masque / / Set
= __mask ; __bmp masque __ = masque.;

17 commentaires à "Flash CS3: Créer un effet réflexe sur un MovieClip"

  1. 5 juin 2008 Mark:

    bonjour j'ai essayé d'utiliser cette classe, mais j'obtiens des erreurs.

    Je vous dis la procédure que j'ai fait, alors peut-être que je peux dire que ce soit, et où mauvais.

    Nuono-créer un document en AS3,
    -Dessin d'un simple carré, et l'a transformé en movieclip;
    -Faites un clic droit sur le symbole dans la bibliothèque, dans l'insert ReflexMe section Liaison de classe de base;
    Logiquement-j'ai enregistré le fichier FLA dans le même dossier où ReflexMe.as

    Mais donnez-moi ces erreurs:
    Erreur-1017 ne peut pas trouver la définition de la classe de base ReflexMe;
    -5000: «ReflexMe« La classe doit être une sous-classe de «flash.display.MovieClip» parce qu'il est connecté à un symbole de la bibliothèque de ce type;
    -5001: Le nom du package 'undolibrary.sfx' ne reflète pas la position du fichier. Changer le nom de la définition du package dans le fichier ou déplacer le fichier. C: \ Documents and Settings \ User \ Desktop \ ReflexMe.as

    It Off? Que dois-je faire?
    Je vous remercie à l'avance.
    Bonjour!

  2. 5 juin 2008 Giovambattista Fazioli :

    @ MARK: si vous utilisez le fichier ReflexMe.as undolibrary extérieur de la bibliothèque doit changer le "namespace" de l'emballage. Au début du fichier sont «paquet undolibrary.sfx», supprimer l'espace de noms "undolibrary.sfx", dans la pratique et encore moins "package {" - avec le clip :)

  3. 13 Juin 2008 Reflex et ReflexMe: catégorie par catégorie | Undolog.com :

    [...] Message Flash CS3: Créer un effet réflexe sur un MovieClip nous avions vu ce qu'il peut écrire une classe qui étend MovieClip, de se connecter à [...]

  4. 9 juillet 2008 Linus:

    Félicitations pour votre site merveilleux. Je voulais savoir si je lui ai donné un nom d'instance de mon MovieClip comment puis-je accéder aux propriétés reflexOffset etc
    Merci

  5. 10 juillet 2008 Giovambattista Fazioli :

    @ Linus: Vous pouvez utiliser miaistanza.reflexOffset pour l'accès à toutes les propriétés. Lorsque vous utilisez la classe Reflex prolongent, en effet, les caractéristiques fondamentales de la MovieClip. Cela signifie que le MovieClip obtient toutes les propriétés et méthodes de l' Reflex .

  6. 3 août 2008 carlitos:

    Bonjour à tous ceux qui sont à lire mon message. Je voulais demander à certains d'entre vous, si vous m'avez appris comment créer des sous-menus sur Flash CS3. J'ai cherché sur internet, mais je ne sais pas comment le faire. S'il vous plaît pourriez-vous m'aider? Mon contact est: sicilianofolle@hotmail.it
    s'attendre merci beaucoup!

  7. 4 août 2008 Giovambattista Fazioli :

    @ Carlitos: exactement ce que vous avez besoin?

  8. 8 mars 2010 alberto:

    @ Giovambattista Fazioli:
    1017: Vous ne trouvez pas la définition de la classe de base SLR.
    5000: «ReflexMe« La classe doit être une sous-classe de «flash.display.MovieClip» parce qu'il est lié à un symbole de la bibliothèque de ce type.
    sont les erreurs dans une tentative de l'aide s'il vous plaît
    par alberto

  9. 8 mars 2010 Giovambattista Fazioli :

    @ Alberto: vous devez placer le SLR de classe (spot. As) dans le même dossier que votre fichier FLA.

  10. 8 mars 2010 alberto:

    @ Giovambattista Fazioli: bien sûr, il a déjà été placé dans le même dossier que mon fla.

  11. 8 mars 2010 Giovambattista Fazioli :

    @ Alberto: Modifie le début de la classe:

    1
    sfx { undolibrary paquet. sfx {

    dans tout simplement:

    1
    package {
  12. 8 mars 2010 alberto:

    @ Giovambattista Fazioli: j'avais déjà fait les mêmes résultats

  13. 21 août 2011 Luc:

    Ils sont dans la même situation ne fonctionne pas ... alberto!

  14. 21 août 2011 Luc:

    C'est, si vous voyez reflexMe.as le code que vous posté ne dit rien dans quais
    Je pense que vous avez fait une erreur dans l'écriture de l'article

  15. 30 août 2011 Giovambattista Fazioli :

    @ Luc: non, le code et l'article ne sont pas mauvais. La problème est l'inclusion de la bibliothèque undolibrary . Lire ici pour plus de détails

  16. 30 août 2011 Luc:

    Eh bien, vous avez dit que c'était suffisant pour télécharger reflexMe.as

    cmq dans l'intervalle, j'ai trouvé une autre classe qui crée l'effet de réflexion et fonctionne bien, même avec MC animée

  17. 31 août 2011 Giovambattista Fazioli :

    @ Luc: pourrait effectivement être mal compris. En fait, cette classe est basée sur (c.-à-veut) sur la bibliothèque undolibrary . Si vous êtes déjà installé, vous pouvez télécharger uniquement les fichiers indiquée, sinon, si vous télécharger la dernière version dispose de tout le paquet.

Laisser un commentaire

TAG XHTML PERMIS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> code d'insertion:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Arrêtez SOPA