Position en ' x ' et en ' y ' des Containers
Ici vous trouverez un source beaucoup plus logique dans la manipulation des containers. Jusqu'à maintenant, si vous avez suivi les tutos précédents, vous comprendrez que nous avions manipuler en ' x ', en ' y ', comme en largeur et en hauteur les objets/programmmes visuels. À partir de maintenant, les objets/programmes visuels seront tous à x=0 et y=0 des conteneurs à lesquels l'objet est associé. Par le fait même c'est le conteneur lui même qui seras manipuler à leur position ' x ' et ' y ' respectifs.
:: construction de l'objet/programme visuel
zoneChargement0Design.graphics.lineStyle(0xFFFF00, 1);
zoneChargement0Design.graphics.beginFill(0x333333, 1);
zoneChargement0Design.graphics.drawRect(164, 56, sa largeur, sa hauteur); // -- Ici le param1 : x=164 et le Param2 : y=56 :: ligne 94.
zoneChargement0.addChild(zoneChargement0Design);
// -- Par le fait ici nous n'avons pas cibler le conteneur en ' x ' et en ' y '.
:: Comme vous pouvez le constater, c'est la position ' x ' et ' y ' de l'objet/programme visuel que nous manipulons ici
:: Nous allons changer celà . Nous programmerons la position ' x ' et ' y ' de tous les conteneurs
:: Voici un exemple :
zoneChargement0Design.graphics.lineStyle(0xFFFF00, 1);
zoneChargement0Design.graphics.beginFill(0x333333, 1);
zoneChargement0Design.graphics.drawRect(0, 0, sa largeur, sa hauteur); // -- Ici le param1 : x=0 et le Param2 : y=0 :: ligne 94
zoneChargement0.addChild(zoneChargement0Design);
// -- Et c'est le conteneur qui est cibler en position ' x ' et ' y '.
zoneChargement0.x = 164;
zoneChargement0.y = 56;
Place à la manipulation des Containers
Ici vous trouverez un source beaucoup plus logique dans la manipulation des containers. Jusqu'à maintenant, si vous avez suivi les tutos précédents, vous comprendrez que nous avions manipuler en ' x ', en ' y ', comme en largeur et en hauteur les objets/programmmes visuels. À partir de maintenant, les objets/programmes visuels seront tous à x=0 et y=0 des conteneurs à lesquels l'objet est associé. Par le fait même c'est le conteneur lui même qui seras manipuler à leur position ' x ' et ' y ' respectifs.
:: Voici un exemple du source du dernier tuto nommé CS3|AS3 l'importance des Containers 2 :
:: construction de l'objet/programme visuel
zoneChargement0Design.graphics.lineStyle(0xFFFF00, 1);
zoneChargement0Design.graphics.beginFill(0x333333, 1);
zoneChargement0Design.graphics.drawRect(164, 56, sa largeur, sa hauteur); // -- Ici le param1 : x=164 et le Param2 : y=56 :: ligne 94.
zoneChargement0.addChild(zoneChargement0Design);
// -- Par le fait ici nous n'avons pas cibler le conteneur en ' x ' et en ' y '.
:: Comme vous pouvez le constater, c'est la position ' x ' et ' y ' de l'objet/programme visuel que nous manipulons ici
:: Nous allons changer celà . Nous programmerons la position ' x ' et ' y ' de tous les conteneurs
:: Voici un exemple :
zoneChargement0Design.graphics.lineStyle(0xFFFF00, 1);
zoneChargement0Design.graphics.beginFill(0x333333, 1);
zoneChargement0Design.graphics.drawRect(0, 0, sa largeur, sa hauteur); // -- Ici le param1 : x=0 et le Param2 : y=0 :: ligne 94
zoneChargement0.addChild(zoneChargement0Design);
// -- Et c'est le conteneur qui est cibler en position ' x ' et ' y '.
zoneChargement0.x = 164;
zoneChargement0.y = 56;
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.
:: 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 ::
:: 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 '.
:: 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 '.
Quelques petits exercices dans la manipulation des données
Ces exercices ont pour but de vous familiarisé et de bien saisir la manipulation des données via l'objet/programme des types visuels et/ou l'objet/programme des types conteneurs. Je vous suggèrent donc de vous donnez totalement à ces exercices, car vous aurez en bout de ligne une meilleur vue en ce qui concernent la programmation et la manipulation des différentes propriétés Flash. De plus ,vous aurez la facilté et la compréhension des différences lors de la manipulation d'objets. Ici il y a trois type d'objets :
:: Les objets conteneurs :
:: 1 : baseConteneur.
:: 2 : hautPage.
:: 3 : basPage.
:: 4 : gaucheNavig.
:: 5 : droiteNavig.
:: 6 : zoneChargement0.
:: Les objets visuels :
:: 1 : hautPageDesign.
:: 2 : basPageDesign.
:: 3 : gaucheNavigDesign.
:: 4 : droiteNavigDesign.
:: 5 : zoneChargement0Design.
:: Et l'objet de chargement des données : Ici, l'image :
:: 1 : chargeur.
NOTE IMPORTANTE : Pour tous ceux et celles qui auraient déjà préparer le .fla, je vous demande de resélectionner le source ci-mentionné car j'en ai fait quelques modifications. J'ai d'abord déplacer l'appelle de la fonction traceInfos();, car cette appelle de la fonction se doit d'être à la fin du source. Et, par le fait même j'ai préparer une zone d'exercice à la ligne 152 du .fla. Cette zone servira de zone d'exercice et vous procureras le droit aux données mise à jour selon les exercices que vous aurez accompli dans cette zone :: rappelle : zone d'exercice, à la ligne 152 du .fla. Vous n'avez donc qu'à resélectionner le source et de le placer en Flash sur le premier keyframe, sans enlevé les lignes de commentaires. Ainsi nous serons tous prédisposé à une meilleur communication entre nous.
Manipulation à partir des propriétés prédéfinis de Flash
Ces exercices ont pour but de vous familiarisé et de bien saisir la manipulation des données via l'objet/programme des types visuels et/ou l'objet/programme des types conteneurs. Je vous suggèrent donc de vous donnez totalement à ces exercices, car vous aurez en bout de ligne une meilleur vue en ce qui concernent la programmation et la manipulation des différentes propriétés Flash. De plus ,vous aurez la facilté et la compréhension des différences lors de la manipulation d'objets. Ici il y a trois type d'objets :
:: Les objets conteneurs :
:: 1 : baseConteneur.
:: 2 : hautPage.
:: 3 : basPage.
:: 4 : gaucheNavig.
:: 5 : droiteNavig.
:: 6 : zoneChargement0.
:: Les objets visuels :
:: 1 : hautPageDesign.
:: 2 : basPageDesign.
:: 3 : gaucheNavigDesign.
:: 4 : droiteNavigDesign.
:: 5 : zoneChargement0Design.
:: Et l'objet de chargement des données : Ici, l'image :
:: 1 : chargeur.
NOTE IMPORTANTE : Pour tous ceux et celles qui auraient déjà préparer le .fla, je vous demande de resélectionner le source ci-mentionné car j'en ai fait quelques modifications. J'ai d'abord déplacer l'appelle de la fonction traceInfos();, car cette appelle de la fonction se doit d'être à la fin du source. Et, par le fait même j'ai préparer une zone d'exercice à la ligne 152 du .fla. Cette zone servira de zone d'exercice et vous procureras le droit aux données mise à jour selon les exercices que vous aurez accompli dans cette zone :: rappelle : zone d'exercice, à la ligne 152 du .fla. Vous n'avez donc qu'à resélectionner le source et de le placer en Flash sur le premier keyframe, sans enlevé les lignes de commentaires. Ainsi nous serons tous prédisposé à une meilleur communication entre nous.
:: Voici les exercices ::
baseConteneur est le parent de tous les autres conteneurs et de leurs contenus.
:: Si donc vous coder :
baseConteneur.visible = false; // -- Il n'y aura plus rien dans le player :: essayez le à la ligne 152 du .fla
:: Celà est dû au fait que baseConteneur est le parent et tout ce qu'il y a à l'intérieur de ce conteneur sont enfants du parent.
Quand vous ordonné au parent, les enfants suiveront aussi.
Effacer cette exercice à la ligne 152 du .fla et procéder à celui-ci
:: Si vous coder : toujours à la ligne 152 du .fla.
zoneChargement0.visible = false; // -- Ce n'est que la partie centrale qui disparaitra, par contre zoneChargement0 est le parent de l'objet chargeur.
:: Par le fait même l'image [l'objet/chargeur] disparaitra aussi, mais pas le reste. Dans le source ci-haut mentionner le conteneur ' zoneChargement0 ' est animer, et par le fait même, l'image [l'objet/chargeur] est animé aussi. Car l'image est enfant de ' zoneChargement0 '. Prenez conscience que vous pourriez très bien animer l'objet/chargeur [l'image]. À ce moment là son conteneur ' zoneChargement0 ' ne bougerais pas. En un mot ?, si vous manipuler le parent, les enfants seront aussi manipuler, mais si vous manipuler l'enfant, le parent ne sera pas manipuler pour autant.
Voyez d'autres exercices simple de déplacement de zoneChargement0 en ' x ' et ' y '. Faite les un par un et voyez votre Output Panel.
:: zoneChargement0.x += 120;
:: zoneChargement0.y += 225;
:: chargeur.y += 300;
Tous les conteneurs et n'importe lequels des objet/données et peut importe les types pourront ainsi être manipuler par programme.
:: Chargeur.visible = false;
:: etc . . .
En rappelle : manipuler les objets et prenez soin de vérifié le Output Panel pour mieux se sensibilisé sur les mises à jours.
baseConteneur est le parent de tous les autres conteneurs et de leurs contenus.
:: Si donc vous coder :
baseConteneur.visible = false; // -- Il n'y aura plus rien dans le player :: essayez le à la ligne 152 du .fla
:: Celà est dû au fait que baseConteneur est le parent et tout ce qu'il y a à l'intérieur de ce conteneur sont enfants du parent.
Quand vous ordonné au parent, les enfants suiveront aussi.
Effacer cette exercice à la ligne 152 du .fla et procéder à celui-ci
:: Si vous coder : toujours à la ligne 152 du .fla.
zoneChargement0.visible = false; // -- Ce n'est que la partie centrale qui disparaitra, par contre zoneChargement0 est le parent de l'objet chargeur.
:: Par le fait même l'image [l'objet/chargeur] disparaitra aussi, mais pas le reste. Dans le source ci-haut mentionner le conteneur ' zoneChargement0 ' est animer, et par le fait même, l'image [l'objet/chargeur] est animé aussi. Car l'image est enfant de ' zoneChargement0 '. Prenez conscience que vous pourriez très bien animer l'objet/chargeur [l'image]. À ce moment là son conteneur ' zoneChargement0 ' ne bougerais pas. En un mot ?, si vous manipuler le parent, les enfants seront aussi manipuler, mais si vous manipuler l'enfant, le parent ne sera pas manipuler pour autant.
Voyez d'autres exercices simple de déplacement de zoneChargement0 en ' x ' et ' y '. Faite les un par un et voyez votre Output Panel.
:: zoneChargement0.x += 120;
:: zoneChargement0.y += 225;
:: chargeur.y += 300;
Tous les conteneurs et n'importe lequels des objet/données et peut importe les types pourront ainsi être manipuler par programme.
:: Chargeur.visible = false;
:: etc . . .
En rappelle : manipuler les objets et prenez soin de vérifié le Output Panel pour mieux se sensibilisé sur les mises à jours.
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.





