Créer un conteneur d'objets visuels
Nous avons vu dans un billet précédent l'utilisation des classes Shape et Graphics pour faire du dessin vectoriel.
La classe Sprite va nous permettre de réaliser la même chose à la différence qu'un objet de type Sprite pourra contenir plusieurs dessins de type Shape. En effet, cette classe est similaire à la classe MovieClip mais elle ne possède pas de timeline.
D'autre part, contrairement à la classe Shape, la classe Sprite possède des événements utilisateurs (souris, clavier...)
-
// création de l'instance du rectangle bleu
-
var rectangleBleu:Shape = new Shape();
-
// Le rectangle sera rempli de bleu
-
rectangleBleu.graphics.beginFill(0x0000FF);
-
// dessin du rectangle avec la méthode drawRect(x, y, width, height)
-
rectangleBleu.graphics.drawRect(50, 30, 100, 30);
-
// création de l'instance du carré rouge
-
var carreRouge:Shape = new Shape();
-
// Le carre sera rempli de rouge
-
carreRouge.graphics.beginFill(0xFF0000);
-
// dessin du rectangle avec la méthode drawRect(x, y, width, height)
-
carreRouge.graphics.drawRect(120, 50, 50, 50);
-
/* Ces 2 formes seront assemblées pour ne former qu'un seul visuel, on va donc créer le conteneur */
-
var logo:Sprite = new Sprite();
-
// Ajout des formes dans le logo
-
logo.addChild(rectangleBleu);
-
logo.addChild(carreRouge);
-
// Evénement click du logo
-
function clicLogo(evt:MouseEvent):void
-
{
-
trace("Evénement de type : "+evt.type);
-
}
-
// Evénement survol du logo
-
function survolLogo(evt:MouseEvent):void
-
{
-
trace("Evénement de type : "+evt.type);
-
}
-
// Evénement click du logo est défini
-
logo.addEventListener(MouseEvent.CLICK, clicLogo);
-
// Evénement survol du logo est défini
-
logo.addEventListener(MouseEvent.MOUSE_OVER, survolLogo);
-
// affichage du logo dans la séquence
-
this.addChild(logo);
;)
Je suis Antony Chauviré, développeur sur la Flash Platform.
D'apres ce que je comprends un Sprite c'est comme un MovieClip.
On fait la même chose en as1 et as2 avec mc.attachMovie( )
là apparement les nouveaux elements s'empillent dans le sprite dans l'ordre ou ils sont 'adder'.
je suppose qu'il n'y a pas de timeline dans un sprite, non ?
Bonjour,
En effet, un objet Sprite est un objet sans timeline.
C'est un conteneur dans lequel on peut placer des formes (Shape) mais aussi d'autres conteneurs (Sprite). La gestion des plans dans l'objet Sprite se fait en fonction de l'ordre d'ajout. C'est le principe de la displayList en AS3.
;)
Pour rebondir sur ce qu'a dit YOP, si "un sprite n'as pas de time line", cela veut il dire qu'on ne pourra jammais y faire reference via l'interface utilisateur (flash UI), comme on le faisait avec les movie clip.
L'objet de type Sprite ne peut-être instancié que par du code ActionScript 3 donc on ne pourra y faire référence que par du code.
;)