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.
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:

À 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.; |











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!
@ 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
[...] 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 à [...]
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
reflexOffsetetcMerci
@ Linus: Vous pouvez utiliser
miaistanza.reflexOffsetpour l'accès à toutes les propriétés. Lorsque vous utilisez la classeReflexprolongent, 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.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!
@ Carlitos: exactement ce que vous avez besoin?
@ 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
@ Alberto: vous devez placer le SLR de classe (spot. As) dans le même dossier que votre fichier FLA.
@ Giovambattista Fazioli: bien sûr, il a déjà été placé dans le même dossier que mon fla.
@ Alberto: Modifie le début de la classe:
dans tout simplement:
@ Giovambattista Fazioli: j'avais déjà fait les mêmes résultats
Ils sont dans la même situation ne fonctionne pas ... alberto!
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
@ 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étailsEh 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
@ 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.