Créer son site Gratuitement : Service / Outils webmaster gratuit
Mon Site Gratuit
Contactez nous
Nos partenaires
Scripts
Tutoriaux
Nos services
Forums
Accueil
ForumsCS3|AS3 :: l'importance des Containers 3
      Imprimer le sujet FAQ  M'enregistrer 
  Grâce aux fichier Flash, votre site devient 100% interactif !
Des cours pour savoir gérer les ActionsScripts, les interpolations ...ect ...

CS3|AS3 :: l'importance des Containers 3

Messagede zardoz le 25 Fév 2008, 18:05


Je vous offre le source dès maintenant et nous allons l'étudier

:: Vous devrez cepandant lire les quelques propos afin de mieux discerner les avantages liés aux Containers
:: Le source suivant est plus complet :: Il interroge le programme avec la fonction traceInfos() ::
:: Aussi il est sujet à une courte animation d'entré en matière ::
:: Tous les conteneurs sont en position et l'image ajuster en conséquence ::

Voici le source :: Placer le en zone.fla :: Et suivez les quelques instructions qui vous sont données en lecture

:: Dimension :: 800px de largeur et 780px de hauteur.
:: background color :: Black. // -- C'est une question d'optimisation des filtres ici.
:: Placer le source au premier keyframe.
:: ctrl + enter.

Code: Tout sélectionner
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.filters.BlurFilter;
// --
// -- Vos variables d'objets/programmes
// --
var hautPageDesign:MovieClip = new MovieClip();
var basPageDesign:MovieClip = new MovieClip();
var gaucheNavigDesign:MovieClip = new MovieClip();
var droiteNavigDesign:MovieClip = new MovieClip();
var zoneChargement0Design:MovieClip = new MovieClip();
var zoneChargement1Design:MovieClip = new MovieClip();
var zoneChargement2Design:MovieClip = new MovieClip();
// --
// -- Vos variables d'objets/conteneurs + 'name' des conteneurs
// --
var baseConteneur:Sprite = new Sprite();
baseConteneur.name = 'baseConteneur';
var hautPage:Sprite = new Sprite();
hautPage.name = 'hautPage';
var basPage:Sprite = new Sprite();
basPage.name = 'basPage';
var gaucheNavig:Sprite = new Sprite();
gaucheNavig.name = 'gaucheNavig';
var droiteNavig:Sprite = new Sprite();
droiteNavig.name = 'droiteNavig';
var zoneChargement0:Sprite = new Sprite();
zoneChargement0.name = 'zoneChargement0';
// --
// -- Fonction d'intrrogation des conteneurs
// --
function traceInfos():void
{
   trace(baseConteneur.name + "\n" + baseConteneur.x + " " + baseConteneur.y + " " + baseConteneur.width + " " + baseConteneur.height);
   trace(hautPage.name + "\n" + hautPage.x + " " + hautPage.y + " " + hautPage.width + " " + hautPage.height);
   trace(basPage.name + "\n" + basPage.x + " " + basPage.y + " " + basPage.width + " " + basPage.height);
   trace(gaucheNavig.name + "\n" + gaucheNavig.x + " " + gaucheNavig.y + " " + gaucheNavig.width + " " + gaucheNavig.height);
   trace(droiteNavig.name + "\n" + droiteNavig.x + " " + droiteNavig.y + " " + droiteNavig.width + " " + droiteNavig.height);
   trace(zoneChargement0.name + "\n" + zoneChargement0.x + " " + zoneChargement0.y + " " + zoneChargement0.width + " " + zoneChargement0.height);
}
// --
// --
// -- Ajout des conteneurs au display
// --
addChild(baseConteneur);
baseConteneur.addChild(hautPage);
baseConteneur.addChild(basPage);
baseConteneur.addChild(gaucheNavig);
baseConteneur.addChild(droiteNavig);
baseConteneur.addChild(zoneChargement0);
// --
// -- Construire vos objets/programmes
// --
hautPageDesign.graphics.lineStyle(2, 0xFFFFFF, 1);
hautPageDesign.graphics.beginFill(0xD4D0C8, 1);
// <-- hautPageDesign :: x=0 et y=0 de son conteneur nommé hautPage
hautPageDesign.graphics.drawRect(0, 0, 780, 50);
hautPage.addChild(hautPageDesign);
// -- Position en y du conteneur nommé hautPage
hautPage.x = 0;
hautPage.y = 0;
// -- Idem
basPageDesign.graphics.lineStyle(2, 0xFFFFFF, 1);
basPageDesign.graphics.beginFill(0xD4D0C8, 1);
// <-- basPageDesign :: x=0 et y=0 de son conteneur nommé basPage
basPageDesign.graphics.drawRect(0, 0, 780, 50);
basPage.addChild(basPageDesign);
// -- Position en y du conteneur nommé basPage
basPage.y = 710;
// -- Idem
gaucheNavigDesign.graphics.lineStyle(2, 0xFFFFFF, 1);
gaucheNavigDesign.graphics.beginFill(0x660000, 1);
// <-- gaucheNavigDesign :: x=0 et y=0 de son conteneur nommé gaucheNavig
gaucheNavigDesign.graphics.drawRect(0, 0, 160, 649);
gaucheNavig.addChild(gaucheNavigDesign);
// -- Position en y du conteneur nommé gaucheNavig
gaucheNavig.y = 56;
// -- Idem
droiteNavigDesign.graphics.lineStyle(2, 0xFFFFFF, 1);
droiteNavigDesign.graphics.beginFill(0x660000, 1);
// <-- droiteNavigDesign :: x=0 et y=0 de son conteneur nommé droiteNavig
droiteNavigDesign.graphics.drawRect(0, 0, 160, 649);
droiteNavig.addChild(droiteNavigDesign);
// -- Position en x et en y du conteneur nommé droiteNavig
droiteNavig.x = 620;
droiteNavig .y = 56
// -- Idem
zoneChargement0Design.graphics.lineStyle(2, 0xFFFF00, 1);
// -- J'ai placer l'alpha du background à = 0
zoneChargement0Design.graphics.beginFill(0x000000, 1);
// <-- zoneChargement0Design :: x=0 et y=0 de son conteneur nommé zoneChargement0
zoneChargement0Design.graphics.drawRect(0, 0, 452, 600);
zoneChargement0.addChild(zoneChargement0Design);
// -- Position en x et en y du conteneur nommé zoneChargement0
zoneChargement0.x = 164;
zoneChargement0.y = 56;
// --
// -- Les variables d'esthétisme aux objets/programmes
// --
var filtre:BlurFilter = new BlurFilter;
var matrice:Array = [];

// -- Construire l'esthétisme
filtre = new BlurFilter();
filtre.blurX = 12;
filtre.blurY = 0;
// -- Placer le filtre dans un array();
matrice = [filtre];
// -- Les objets/programmes visuels s'accaparent de l'objet array()
gaucheNavigDesign.filters = matrice;
droiteNavigDesign.filters = matrice;
hautPageDesign.filters = matrice;
basPageDesign.filters = matrice;
// --
// -- Chargeur d'une image
// -- 25 fév 2008 10:32 pm :: j'ai dû désactivé l'objet chargeur l'image n'est pas chargable :: server.
// --
var chargeur:Loader = new Loader();
var requete:URLRequest = new URLRequest('http://images3.hiboox.com/images/0908/rdvhocaj.jpg');
chargeur.load(requete);
// -- Ajuster l'image au conteneur
chargeur.x = 2;
chargeur.y = 2;
// -- Ajout du chargeur image au display
zoneChargement0.addChild(chargeur);
// --
zoneChargement0.y += 50;
zoneChargement0.alpha = 0;
// --
// -- Position en x et en y de baseConteneur
baseConteneur.x = 10;
baseConteneur.y = 10;
// --
// -- Animer l'entré en matière de zoneChargement0
// --
zoneChargement0.addEventListener(Event.ENTER_FRAME, animeZoneChargement0);
function animeZoneChargement0(event:Event):void
{
   zoneChargement0.y -= 1;
   zoneChargement0.alpha += 0.05;
   if (zoneChargement0.y <= 56)
   {
      zoneChargement0.y = 56;
      zoneChargement0.alpha = 1.0;
      zoneChargement0.removeEventListener(Event.ENTER_FRAME, animeZoneChargement0);
   }
}
// -- Placer vos exercices ici à la ligne 152 du .fla : Ici l'espace est vide
// --

// --
// -- Appelle de la fonction traceInfos
// --
traceInfos();
// --

:: 25 fév 2008 :
:: J'ai dû désactivé l'objet chargeur :: Problème avec serveur je crois . . .
:: 26 fév 2008 :
:: Réactivation de l'objet chargeur ::

Je vous reviens avec la deuxième partie : entre temps préparer votre .fla en écrivant et/ou en copiant-collant le source en zone de travail. Profiter de ce court moment pour vous sensibiliser sur le source en question. La partie qui fera suite ici même seront des instructions utiles concernant des points importants. Surtout en ce qui concerne l'objet/programme visuel vis à vis l'objet/conteneurs.

:: Il s'agit de deux façon de communiquer avec les différents objets.
:: Si vous programmer le conteneur en largeur et hauteur ou de tout autres propriétés prédifinis de Flash, tout sont conteneu en subira les conséquences
:: Exemple :: zoneChargement0.alpha = 0.5; //-- l'image contenu seras lui aussi alphasé.

Par contre si vous écrivez le programme comme suis :
:: Si c'est l'objet/programme visuel que vous manipuler par programme, il en sera tout autre.
:: Exemple :: zoneChargement0Design.graphics.drawRect(0, 0, 452, 300); // -- Seul la hauteur a changer ici de 600 à 300.
:: Le contenu n'en subiras pas les effets.
:: L'image à l'intérieur du conteneur ne seras pas déformer du simple fait que vous avez manipuler l'objet/programme de type visuel.
:: Par contre si vous vous intéresser au données via le Output Panel, vous verrez que le conteneur c'est ajuster à la dimension de l'objet/programme de type visuel. En un mot la postion ' x ' et la position ' y ' ne dépend que du conteneur nommé ' zoneChargement0 ' mais que sa largeur et sa hauteur dépendra de la largeur et de la hauteur de l'objet/programme de type visuel nommé ici : ' zoneChargement0Design '.




Je clos ici ce tuto pour vous préparer, toujours dans le cadre des Containers, des programmes de zone de masque essentielle et très adaptable aux containers. Les masques, d'une certaine façon, s'apparentent aux Containers. Ce ne sont que des données sans aucun visuel, sauf, évidemment si on lui attache un objet/programme visuel. Aussi nous explorerons une nouvelle classe nommé : Rectangle. Issus du package flash.geom, la classe Rectangle, tout comme les Containers, ne sont que des données. Et ces données pourront être utilisés par n'importe quels autres programmes. Nous apprendrons aussi à dragguer les objets/programme en utilisant les données de la classe Rectangle. Vous pourrez donc retrouver des effets web traditionnelle, comme agrandir une image, selon l'action utilisateur. L'agrandissement consommera les données issus du programme de la classe Rectangle et agira en conséquence. On peut donc dire que la classe Rectangle contiens des données en attente d'utilisation et ce, de façon dynamique. La programmation n'est jamais coulé dans le béton, car tout programme est appeller à un quelquonque changement, lors de la lecture de l'animation Flash. C'est le rôle des variables, des fonctions et des méthodes, que de contenir, dynamiquement, les nouvelles valeurs évolutives.
Dernière édition par zardoz le 01 Mar 2008, 00:36, édité 19 fois.
zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582


Re: CS3|AS3 :: l'importance des Containers 3

Messagede amateur_will le 25 Fév 2008, 20:16

bonjour Zardoz,
je m'empresse de repondre a ton post car celui-ci repond totalement a ce que je suis entrein travailler.
durant cette apres midi du 25/02
et je te cache pas, que j'ai relis plusieurs fois tes post; et je bloque sur une chose; qui a mon avis est evident.
contexte actuelle:
j'utilise donc la CS3, par defaut; j'ai un decor en Class document du type: " DecorPortailV2"; a ce document tu imagines bien que mon decor est sur la scene.bien;
tous mes movieClips qui compose ma scene, sont sur des calques bien distinct; ceux ci sont bien dans ma bibliothéque.
phase 1) tous mes Linkage associés a mes MovieClip(propre a leurs Class) de ma bibliothéque sont en externe .
a eux, j'ai associé un FLA a chaque class qui me permettrait de travailler confortablement. mais biensur; comme je t'avais dis a mon post précédent lié a ma Class document, par consequent j'ai aussi centralisé toute mes Linkages de Class (des mc de mon decor) dans la Class MainPortail qui est associé a la --->Class document du type: " DecorPortailV2" j'espere que tu suis jusqu'a maintenant.
phase 2)ma problematique
zardoz pour que tu es un visuel, imagine " un sol en perspective, du type rectangle" ok ;je l'ai linké en Class: CentrePortail; occurrence de scene:mcCentrePortail, et a ma Class j'ai associé un FLA:centrePortail. je l'ai lié a ma MainPortail.
impossible d'appliqué tes directives a savoir pour un essai du type conteneur:
sur ma Class MainPortail j'ai bien mon constructeur du type
: public var _centrePortail:CentrePortail;
_centrePortail=new CentrePortail();
trace ("La Class"+_centrePortail+"au milieu, est VISIBLE");
quand je compile; il la voit bien.

et dans le code si-dessous, je m'en sert de conteneur en essai , le tracage fonctionne, mais malheureusement
pas dans ce MovieClip du type linké en Class CentrePortail qui est le centre de mon decore

Code: Tout sélectionner
package
{
   import flash.display.MovieClip;
   import flash.display.Sprite;
   //-----------------//
   public class CentrePortail extends MovieClip
   
   {
      public var _s:Sprite;

      public function CentrePortail ()
      {
           _s=new Sprite();
         _centrePortail=new CentrePorail();

trace ("Le MovieClip "+_s+ "est bien la..!" +addChild(_s));

trace("LA SOUS CLASS " +this +"est ACTIF");


         _s.graphics.lineStyle (1,0,1);
         for (var i:int=0; i < 100; i++)
         {

            _s.graphics.lineTo (Math.random() * 400,Math.random() * 400);
         this._centrePortail.addChild (_s);
         }
      }
   }
}

trace("LA SOUS CLASS " +this +"est ACTIF"); me confirme bien CentrePortail est actif....
et avec ta méthode impossible de la faire en tan que CONTENEUR POUR se graphics ......
je suis preneur de tous ebauches de pistes et solutions car tous mon decor dois etre conteneur , car j'ai beaucoup d'annexe a intégrer........DANS l'attente..
Avatar de l'utilisateur
amateur_will
Nouveau Plug'zien
Nouveau Plug'zien
 
Messages: 6
Inscription: 24 Fév 2008, 10:14
Points: 0


Re: CS3|AS3 :: l'importance des Containers 3

Messagede zardoz le 25 Fév 2008, 22:19

et dans le code si-dessous, je m'en sert de conteneur en essai , le tracage fonctionne, mais malheureusement
pas dans ce MovieClip du type linké en Class CentrePortail qui est le centre de mon décor

Salutation Will . . .

D'abord j'aimerais te dire que sa me fait plaisir de t'aider, et du mieux que je le pourrai.
Par contre celà n'ira pas avant la fin de la soirée, car j'ai une chose importante à faire. Eh oui j'ai reçu today tout le Adobe Premium . . .
Alors je crois que tu comprend que je veux l'installer le + tôt possible. Aussi ais-je l'intention de terminer le post N° 3.

Cependant je te reviens sans faute . . . Crois moi . . .
Je vois déjà une différence notable entre ton écriture de source et mon écriture de source . . . Nous allons quand même nous entendre.

Une chose que j'aimerais te dire d'ici à ce que nous attaquions de front le problème que tu rencontre.
Que tu ne peut coder un container en source .as.
Les containers se préparent et se code en zone.fla.

Je te transfert un source qui viens de moi et qui se nourri d'une classe nommé Design. Son pakage se nomme icom.design
Si tu veux tu peut déjà préparer les répertoires un peut comme suit :

répertoire 1 :: msg : à l'intérieur duquel tu créé : <-- Ici tu peux lui donné un autre nom.
répertoire 2 :: icom : à l'intérieur duquel tu créé : <-- Ici tu dois absolument l'appeler icom.
répertoire 3 :: design : à l'intérieur duquel tu place la classe Design : <-- Ici tu dois absolument l'appeler design.

Voici la classe Design :: Cette classe est entièrement paramètrable :: Résultat ? package : icom.design :: classe : Design

Code: Tout sélectionner
package icom.design
{
   import flash.display.Sprite;
   import flash.display.Shape;
   import flash.net.NetConnection;
   import flash.net.NetStream;
   import flash.media.Video;
   import flash.filters.BlurFilter;

   public class Design extends Sprite
   {
      // --
      private static  var posx:Number;
      private static  var posy:Number;
      private static  var radius:Number;
      private static  var largeur:Number;
      private static  var hauteur:Number;
      private static  var couleur:Number;
      private static  var trans:Number;
      private static  var flou:Boolean;
      private static  var blur:BlurFilter;
      private static  var ba:Array;
      // --
      private static var lineLargeur:Number;
      // --
      public function Design ()
      {
           
      }
      public function formeRect ($x:Number, $y:Number, $w:Number, $h:Number, $color:uint, $alpha:Number, $filter:Boolean = false):void
      {
         posx = $x;
         posy = $y;
         largeur = $w;
         hauteur = $h;
         couleur = $color;
         trans = $alpha;
         flou = $filter;
         // --
         this.graphics.lineStyle (2, 0xFFFFFF, trans);
         this.graphics.beginFill (couleur, trans);
         this.graphics.drawRect (posx, posy, largeur, hauteur);
         this.graphics.endFill ();
         // --
         if (flou == true)
         {
            blur = new BlurFilter();
            blur.blurX = 12;
            blur.blurY = 0;
            ba = [blur];
            this.filters = ba;
         }
         else if (flou == false)
         {
            ba = [];
         }
      }
      // -->
      public function formeRound($posx:Number, $posy:Number, $radius:Number, $ll:Number, $color:Number, $alpha:Number, $flou:Boolean):void
      {
         posx = $posx;
         posy = $posy;
         radius = $radius;
         lineLargeur = $ll
         couleur = $color;
         trans = $alpha;
         flou = $flou;
         // -->
         this.graphics.lineStyle(lineLargeur, 0xFF0000, trans);
         this.graphics.beginFill(couleur, trans);
         this.graphics.drawCircle(posx, posy, radius);
         this.graphics.endFill();
         // --
         if (flou == true)
         {
            blur = new BlurFilter();
            blur.blurX = 12;
            blur.blurY = 0;
            ba = [blur];
            this.filters = ba;
         }
         else if (flou == false)
         {
            ba = [];
         }
      }
      // -->
      public function lineDecor ($x:Number, $y:Number, $w:Number, $h:Number, $ll:Number, $color:uint, $alpha:Number, $flou:Boolean):void
      {
         posx = $x;
         posy = $y;
         largeur = $w;
         hauteur = $h;
         lineLargeur = $ll;
         couleur = $color;
         trans = $alpha;
         flou = $flou;
         // --
         this.graphics.lineStyle (lineLargeur, couleur, trans);
         this.graphics.drawRect (posx, posy, largeur, hauteur);
         this.graphics.endFill ();
         // --
         if (flou == true)
         {
            blur = new BlurFilter();
            blur.blurX = 12;
            blur.blurY = 0;
            ba = [blur];
            this.filters = ba;
         }
         else if (flou == false)
         {
            ba = [];
         }
      }
   }
}


::Voici maintenant le source du .fla que tu place dans le répertoire msg : donc sous le répertoire icom qui devrais être visible

Code: Tout sélectionner
import icom.design.*;
import flash.display.Sprite;
import flash.events.*;
// -->
var conteneur:Sprite = new Sprite();
addChild (conteneur);
var conteneur2:Sprite;
// -->
var tx:TextField;
var tf:TextFormat;
var d4:Design;
// --> Création d'un objet de type Design du package/classe icom.design.*; Design
var d:Design = new Design();
// --> Ajout de l'objet 'd' au conteneur
conteneur.addChild (d);
// --> L'objet 'd' utilise la méthode 'formeRect( -- paramètrable -- );' de la classe 'Design'
d.formeRect (10, 10, 780, 12, 0xFF0000, 1, true);
// --> Création d'un deuxième objet nommé 'd2'
var d2:Design = new Design();
// --> Ajout de 'd2' au conteneur
conteneur.addChild (d2);
// --> L'objet 'd2' utilise la méthode 'formeRect( -- paramètrable -- );' de la classe 'Design'
d2.formeRect (10, 74, 780, 12, 0xFF0000, 1, true);
// --> Création d'un évènement : action :: ENTER_FRAME + function d2Enter
d2.addEventListener (Event.ENTER_FRAME, d2Enter);
// --> Le pointeur est un main
d2.buttonMode = true;
// --
// --> Fonctions --
// --
function d2Enter (event:Event):void
{
   d2.y += 2;
   if (d2.y >= 18)
   {
      d2.y = 18;
      d2.removeEventListener (Event.ENTER_FRAME, d2Enter);
      d2.buttonMode = false;
      // --> ZB
      var d3:Design = new Design();
      conteneur.addChild (d3);
      d3.formeRect (10, 30, 780, 53, 0xD4D0C8, 1, true);
      // -->
      tf = new TextFormat();
      tf.bold = true;
      tf.color = 0x000000;
      tf.size = 18;
      // --
      tx = new TextField();
      tx.selectable = false;
      tx.type = "dynamic";
      tx.text = "Sommaires Dynamiques";
      tx.setTextFormat (tf);
      tx.x = 20;
      tx.y = 42;
      tx.width = 255;
      tx.height = 30;
      conteneur.addChild (tx);
      tx.addEventListener (MouseEvent.MOUSE_OVER, mouseOverTx);
      tx.addEventListener (MouseEvent.MOUSE_DOWN, mouseDownHandler);
      // -->
   }
}
function mouseOverTx (event:MouseEvent):void
{
   tx.textColor = 0x999999;
}
// -->
function baseEcran():void
{
   d4 = new Design();
   conteneur.addChild (d4);
   d4.formeRect (10, 112, 780, 300, 0x333333, 1, true);
}
baseEcran();
// -->
function mouseDownHandler (event:MouseEvent):void
{
   tx.removeEventListener (MouseEvent.MOUSE_OVER, mouseOverTx);
   tx.text = "Sommaires Dynamiques Activés";
   tx.setTextFormat (tf);
   // --
   conteneur2 = new Sprite();
   conteneur.addChild (conteneur2);
   var s:MovieClip = new MovieClip();
   s.graphics.beginFill (0x333333, 0.0);
   s.graphics.drawRect ( 20, 138, 760, 200);
   conteneur2.addChild (s);

   var zoneMask:Sprite = new Sprite();
    zoneMask.graphics.lineStyle(2, 0xD4D0C8);
   zoneMask.graphics.beginFill (0x666666, 1);
   zoneMask.graphics.drawRect ( 20, 138, 760, 200);
   conteneur2.addChild (zoneMask);
   zoneMask.mask = s;
   // --
   conteneur.y = 50;
   tx.textColor = 0xFF0000;
}
removeEventListener (MouseEvent.MOUSE_DOWN, mouseDownHandler);


Moi de mon côté je prends conscience de ton source et nous serons mieux disposé à pouvoir communiquer.
Je ferai tout mon possible pour t'aider . . . Crois moi que je n'abandonne jamais . . . lorsqu'il s'agit de flash . . .


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


Re: CS3|AS3 :: l'importance des Containers 3

Messagede amateur_will le 26 Fév 2008, 07:55

bonjour zardoz,
je te remercis, de ton exposé, ainsi que des constatations,emise par toi.
j'ai bien noté justement les éléments assez importants; quand tu dis
Que tu ne peut coder un container en source .as.
Les containers se préparent et se code en zone.fla.

je revois tous ça en matinée, et m'aiguille sur la bonne voie. effectivement;tous les elements de mon decore possede
leurs FLA propre.et associé a leurs class.
je manquerais pas de refaire en exo; ta source que tu ma mis;afin de voir le mecanisme,et pouvoir avancer de mon coté.
merci de cette ressource d'idée.
Rire..oui je comprend ton empressement d'ouvrir cette nouvelle monture de Flash(today tout le Adobe Premium . . .
)..ça je comprend
Nous nous tenons au courant car cest vraiement crutiale pour moi.
Avatar de l'utilisateur
amateur_will
Nouveau Plug'zien
Nouveau Plug'zien
 
Messages: 6
Inscription: 24 Fév 2008, 10:14
Points: 0


Re: CS3|AS3 :: l'importance des Containers 3

Messagede zardoz le 26 Fév 2008, 08:01

Salutation Will . . .

:: Aucun trouble pour moi pour l'instant, j'observe ton source et j'en prend conscience

J'ai eu un problème avec mon serveur d'images sur hiboox . . . mais il semble régler aujourdh'ui le 26 fév 2008
Il se peut donc que l'image sur mon tuto ne charge pas quelquefois . . . mais c'est un détail.

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


Re: CS3|AS3 :: l'importance des Containers 3

Messagede amateur_will le 26 Fév 2008, 20:54

bonjour zardoz;
je te remercie; de cette exemple qui fut riche en information.
donc voila, j'ai pas mal bossé en me referent, en adaptant a ma situation.
comme je te disais, precedement il se passe que j'ai deja des elements sur ma scene; donc mon fameux decore.
donc, je m'y perd au niveau de mes repéres, car le fameux addChild pour mes elements pour la DisplayList n'est pas approprié ..si tu veux ayant deja des elements sur la scene,je l'ai ai en doublon sur cette meme scene.(avec les addChild)
Donc, est ce que mes reperes doit etres les instances de mes occurences qui composent mon decore sur la scene???
et si oui, de quelle façon je devrais m'y prendre afin des les rendres conteneurs. ( a ton avis, il n'y aurrait un typage a faire??)
Pour que tu es un nouveau visuel: sur ma timlime j'ai dessiné se decore, et associé tous mes elements ( ce que tu sais..Class,occurence ect ect...) mais a ce niveau mon addChild ne correspondrait pas a ma scene.
tu me dira pourquoi cette methode? je pars sur cette base car j'ai beaucoup dessiné, et sa me serait trop fastidieux
de tous codé......
merci a toi
regulirement connecté je verrais qu'elle serait ton analyze....
Avatar de l'utilisateur
amateur_will
Nouveau Plug'zien
Nouveau Plug'zien
 
Messages: 6
Inscription: 24 Fév 2008, 10:14
Points: 0


Re: CS3|AS3 :: l'importance des Containers 3

Messagede zardoz le 26 Fév 2008, 22:44

Salut Will . . .

En principe il n'est pas difficile d'ajouter tes mcClip's aux conteneurs.
Et ce, malgré le fait que ton design est déjà en place et que ton programme soit avancé.
Si ton écriture est vraiment propre et bien organisé tu n'éprouveras pas de difficulté majeur.
Tu peux même écrire tes conteneurs à la fin d'un programme, l'important, c'est qu'ils soient déclaré au début de ton source
et manipuler tout au long du développement/projet.

C'est par le fait même un peu difficile de bien imaginé ton projet, je n'ai pas assez de tes sources concernant ton projet.
Avoir une vue d'ensemble visuelle d'une part et d'écriture d'autre part, aiderais à la communication. Mais tel que j'ai pu saisir
tes propos, tu n'est certe pas loin d'une réponse. En fait le concept des Containers est simple à la base et quoique nous
puissions placer nos objets/conteneurs à n'importe quelle moment du développement, il est quand même recommander de les
planifier dès le départ, avant même la premère ligne d'écriture.

Je te suggère beaucoup de pratiquer avec des documents nouveaux afin de te familiarisé avec les Containers.
Un jour les containers deviennent si subtiles, que seul le processeur le calculera en tant qu'objet réel et présent,
parce qu'ils sont d'abord et avant tout exécution de programmes. Cependant, même s'ils ne sont pas nécessairement
visible à nos yeux, nous les manipulons par programme. Je ne crois pas ton problème comme étant majeur.
Tu peux le régler sauf que de mon côté, j'aimerais bien avoir ton projet sous un (*.zip). Je pourrais mieux voir ta situation réelle.
Et concevoir une solution possible. Le (*.zip) nous donne cette avantage. Ainsi nous libérons l'espace MSG.
On peut transférer nos zones de travail en zippant les .fla les .swf et .as, et ce avec les répertoires, pour un bon fonctionnement.
Il serait plus simple de communiquer ici même à MSG, si nous échangions des zip's. L'image vaut mille mots . . .

Oui en effet tu dois placer tes objets déjà en place dans le conteneur dès l'instant ou cet objet est créé . . .
C'est la meilleur façon de gérer ses Containers.

Pour ce qui est des doublons, il y a surement une erreur à quelque part, comme ton source est déjà écrit il y a surement un endroit précis où tu peut ajouter tes clip's dans un conteneur. Cà c'est sûre.

Regarde ce source comme il est basic :: Mais il prouve que l'on peut ajouter dans un conteneur un forme de la scène

:: Tu n'a qu'à placer une forme sur la scène et nomme le clip : c'est son nom de programme, afin d'être cibler.
:: Dès l'instant ou par prgramme tu élargi le ' clip ' Il trace convenablement les dimension de la forme et du conteneur.
:: Ce n'est pas le clip sur la scène qui est le conteneur. Le conteneur n'est que des données vérifiable et contiens le clip.
:: C'est le conteneur que nous interrogons via le traçage, en largeur, comme en hauteur
:: De même l'on peut ajouter au conteneur des éléments charger depuis l' externe. On peut même leur donner un z-index.

Code: Tout sélectionner
import flash.display.Sprite;
var cont:Sprite = new Sprite(); // -- construire son conteneur
addChild(cont); // -- Ajout de l'objet au display
cont.addChild(clip); // -- Ajout du clip le mc sur la scène au conteneur

// -- ton tracage

trace(cont.width + " " + cont.height);
// -- clip :: est le nom de la forme sur la scène.
// -- donne lui la dimension que tu voudras
clip.width = 200;
trace(cont.width + " " + cont.height);

// -- interroger le conteneur avec une nouvelle position en x et en y + trace();.

cont.x = 200;
cont.y = 300; // -- moi ma scène a 800 largeur 780 hauteur
trace(cont.x + " " + cont.y);
// -- ton conteneur est donc réel.


D'ici le prochain contact :: Bonne prog :: a+ zardoz . . .
zardoz
Plug'zien Star'z
Plug'zien Star'z
 
Messages: 888
Inscription: 16 Fév 2008, 04:05
Points: 582


Re: CS3|AS3 :: l'importance des Containers 3

Messagede amateur_will le 27 Fév 2008, 18:35

bonjour Zardoz,
donc effectivement, j'ai longuement lus ton post, et je comprend parfaitement, pour une COM en msg:
donc j'ai travaillé sur tes 3 POST container, effectivement différentes astuces se presentes.mais avant toute entreprise je t'ai mis en zip;justement mon decore, pour que tu es un visuel; afin que tu es une analyze de la faisabilité de mon ebauche.ainsi je tais comenté un peu mon FLA,et justement l'astuce trouvé par rapport a tes exposés sur les Container.
pourrais tu me dire ou je peux t'envoyer Mon fichier Zip???
cordialement a toi dans l'attente.
Avatar de l'utilisateur
amateur_will
Nouveau Plug'zien
Nouveau Plug'zien
 
Messages: 6
Inscription: 24 Fév 2008, 10:14
Points: 0


Re: CS3|AS3 :: l'importance des Containers 3

Messagede zardoz le 27 Fév 2008, 19:46

Salut Will . . .

Il faut passer par le Message privé MP , dans le panneau utilisateur et s'échanger nos adresses.
Ainsi on pourra par email tranférer correctement nos fichier.zip.

En toute confiance . . .

Zardoz . . .
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 0 invités