Créer son site Gratuitement : Service / Outils webmaster gratuit
Mon Site Gratuit
Contactez nous
Nos partenaires
Scripts
Tutoriaux
Nos services
Forums
Accueil
ForumsCS3|AS3 : Programmer un masque 2
      Imprimer le sujet FAQ  M'enregistrer 
  Le monde virtuelle du flash vous réserve plein de suprise éblouissante rien que pour vous !
Animations à gogo ... Bonne visite !

CS3|AS3 : Programmer un masque 2

Messagede zardoz le 30 Mar 2008, 20:39



Consignes d'utilisations

:: Créé un dossier et nommé le: [ msg ].
:: Placer vous à l'intérieur du dossier [ msg ] et créé un autre dossier. Nommé le [ icom ].
:: Placer vous à l'intérieur du dossier [ icom ] et créé un autre dossier. Nommé le [ design ].
:: Placer le source qui suit dans le dossier [ design ].
:: NOTE : Charger le sur votre zone de travail. Vous devrez en faire un fichier << Design.as >>
:: et placer le comme ci-haut mentionner.

:: Prenez conscience que ce source est une classe nommé << Design.as >>
:: Arborescence : [msg [icom [design << Design.as >>] icom] msg].
:: Je vous suggère le fichier masque2.zip :: joint ici sur le post.

Le fichier Design.as

Code: Tout sélectionner
package icom.design
{
   import flash.display.Sprite;
   import flash.display.MovieClip;
   import flash.filters.BlurFilter;

   public class Design extends Sprite
   {
      // -- Objets Visuelles --
                private var nom:String;
      private var posx:Number;
      private var posy:Number;
      private var radius:Number;
      private var largeur:Number;
      private var hauteur:Number;
      private var couleur:uint;
      private var ligneGrosseur:Number;
      private var ligneCouleur:uint;
      private var trans:Number;
      private var filtre:Boolean;
      private var flou:BlurFilter;
      private var matrice:Array;
      // --
      public function Design ()
      {
           
      }
      public function rectangleDesign($nom:String, $posx:Number, $posy:Number, $largeur:Number, $hauteur:Number, $couleur:uint, $ligneGrosseur:Number,$ligneCouleur:uint, $trans:Number , $filtre:Boolean):void
      {
                        this.name = $nom;
         posx = $posx;
         posy = $posy;
         largeur = $largeur;
         hauteur = $hauteur;
         couleur = $couleur;
         ligneGrosseur = $ligneGrosseur;
         ligneCouleur = $ligneCouleur;
         trans = $trans;
         filtre = $filtre;
         // --
         this.graphics.lineStyle (ligneGrosseur, ligneCouleur, trans);
         this.graphics.beginFill (couleur, trans);
         this.graphics.drawRect (posx, posy, largeur, hauteur);
         this.graphics.endFill ();
         // --
         if (filtre == true)
         {
            flou = new BlurFilter();
            flou.blurX = 12;
            flou.blurY = 0;
            matrice = [flou];
            this.filters = matrice;
         }
         else if (filtre == false)
         {
            matrice = [];
         }
      }
      // -->
      public function cercleDesign($nom:String, $posx:Number, $posy:Number, $radius:Number, $couleur:uint, $ligneGrosseur:Number, $ligneCouleur:uint,  $trans:Number, $filtre:Boolean):void
      {
                        nom = $nom;
         posx = $posx;
         posy = $posy;
         radius = $radius;
                        couleur = $couleur;
         ligneGrosseur = $ligneGrosseur;
                        ligneCouleur = $ligneCouleur;
         trans = $trans;
         filtre = $filtre;
         // -->
         this.graphics.lineStyle(ligneGrosseur, couleur, trans);
         this.graphics.beginFill(couleur, trans);
         this.graphics.drawCircle(posx, posy, radius);
         this.graphics.endFill();
         // --
         if (filtre == true)
         {
            flou = new BlurFilter();
            flou.blurX = 12;
            flou.blurY = 0;
            matrice = [flou];
            this.filters = matrice;
         }
         else if (filtre == false)
         {
            matrice = [];
         }
      }
   }
}


Mise en site le :: 30 Mars 2008.
Dernière modification le :: 30 Mars 2008.


Consignes d'utilisations

:: Dimension : Largeur : 605px - Hauteur 810px.
:: Stage Color : Black << Important : Pour une optimisation des filtres.
:: Placer le source sur le premier keyframe.
:: ctrl + enter.
:: Arborescence finale : [msg << masque2.fla >> [icom [design << Design.as >> ] icom] msg].

Le fichier masque2.fla


Code: Tout sélectionner
// -- Nos importations
// --
import icom.design.*;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Point;
import flash.geom.Rectangle;
// --
// -- Variables de positionnement par défaut
// --
var px:Number = 0;
var py:Number = 0;
// --
// -- Instancié l'objet 'pt' de la classe Point
// -- et l'objet 'rect1' de la classe Rectangle
// --
var pt:Point = new Point(10, 10);
var rect1:Rectangle = new Rectangle(px, py, 605, 12);
// --
// -- Variable de duplication de l'objet visuelle 's'.
// --
var espace:Number = 17;
var nombres:Number = 47;
var compteur:Number;
// --
// -- Deux Containers : 'baseConteneur' pour le background visuelle.
// -- Ainsi qu'un container 'contCercle' pour le masque.
// --
var baseConteneur:Sprite = new Sprite();
addChild (baseConteneur);
var contCercle:Sprite = new Sprite();
baseConteneur.addChild (contCercle);
// --
// -- Nous écrivons une boucle de duplication de l'objet visuelle.
// -- et nous profitons de l'occasion pour construire l'objet visuelle.
// -- C'est cet objet visuelle qui sera dupliquer au nombres de fois de
// -- la variable 'nombres'. C'est à dire 47 fois. C'est aussi l'objet masqué.
// --
for (compteur = 0; compteur < nombres; compteur++)
{
   var s:Design = new Design();
   s.rectangleDesign ('zone-x2', 0, 0, rect1.width, rect1.height, 0xD4D0C8, 2, 0x0000FF, 0.7, true);
   baseConteneur.addChild (s);
   baseConteneur.x = pt.x;
   s.y = pt.y + 5 + compteur * espace;
   trace (compteur);
   trace (baseConteneur.x + " " + baseConteneur.y + " " + baseConteneur.width + " " + baseConteneur.height);
}
// --
// -- Costruisons le cercle qui en fait, sera le masque.
// -- Il n'étais pas essentielle ici d'utilisé la classe Design
// -- puisque le rôle du masque, est tout simplement invisible.
// -- laissant traverser les données du background à l'intérieur de sa zone.
// --
var cercle:Design = new Design();
cercle.cercleDesign ('cercle', 0, 0, 200, 0x000000, 0, 0x000000, 1, false);
contCercle.addChild (cercle);
// --
// -- Comprenez ici que je me sert du containers 'baseConteneur' comme objet de masque
// -- mais c'est la valeur de l'objet cercle à l'intérieur du conteneur qui est cibler.
// -- N'oubliez pas que c'est 'baseConteneur' qui contient le background visuelle.
// --
baseConteneur.mask = cercle;
contCercle.x = 302.5;
contCercle.y = 405;
cercle.width = 0;
cercle.height = 0;
s.alpha = 0;
// --
// -- On prépare l'évènemet d'animation, il s'exécute au lancement
// -- du Flash Player, bref de l'animation.
// --
contCercle.addEventListener (Event.ENTER_FRAME, actionAnimation);
function actionAnimation (event:Event):void
{
   cercle.width += 5;
   cercle.height += 5;
   // --
   if (cercle.height >= 300)
   {
      cercle.width = 40;
      cercle.height = 40;
      // -- Le programme de positionnement aléatoire en 'x' et 'y'.
      // -- C'est le conteneur de 'cercle' qui est positionner de façon aléatoire.
      // -- Largeur >> ' * 605 ' Hauteur >> ' * 810 ' détermine une zone que le programme
      // -- ne doit pas dépasser.
      contCercle.x = Math.random() * 605;
      contCercle.y = Math.random() * 810;      
   }
}


Mise en site le :: 30 Mars 2008.
Dernière modification le :: 30 Mars 2008.


zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582


Retourner vers Flash

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité