geek space web solutions

Accès à la propriété stage en AS3

Lundi, 10 Mai 2010 18:52
Selon l'organisation d'un projet Flash/AS3, lors de la compilation, Flash ne connait pas ou plus la propiété "stage". Vous obtenez alors le message suivant : "Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul" indiquant une ligne où vous trouvez par exemple : stage.stageHeight ...

Stage
package : flash.display
La classe Stage représente la zone de dessin principale. La scène correspond à l'ensemble de la zone où s'affiche le contenu Flash®.

Classe Stage et liste d'affichage
L’objet Stage n’est plus accessible de manière globale comme c’était le cas en ActionScript 1 et 2. Chaque application ActionScript 3 possède un seul objet Stage et donc une seule et unique liste d’affichage. Il faut considérer l’objet Stage comme le noeud principal de notre liste d’affichage. Celle-ci peut être représentée comme une arborescence XML...

L'objet qui fait appel à la propriété stage doit obligatoirement être ajouté à la liste d’affichage afin de pouvoir retourner une référence à l’objet Stage. Concrètement, si nous ciblons la propriété stage sur un DisplayObject non présent dans la liste d’affichage, celle-ci nous renvoie null...

Evénement ADDED_TO_STAGE
Grâce à l’événement Event.ADDED_TO_STAGE, nous pouvons accéder de manière sécurisée à l’objet Stage, car la diffusion de cet événement nous garantit que l’objet graphique est présent au sein de la liste d’affichage.

Event.ADDED_TO_STAGE
diffusé lorsqu’un objet graphique est affiché.

Event.REMOVED_FROM_STAGE
diffusé lorsqu’un objet graphique est supprimé de l’affichage.

Ces deux événements sont diffusés automatiquement lorsque le lecteur affiche ou supprime de l’affichage un objet graphique.
package {

import flash.display.MovieClip;
import flash.events.Event;

public class Clip extends MovieClip {

public function Clip() {
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

private function onAddedToStage(evt:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);

var center_x:Number = stage.stageWidth/2;
var center_y:Number = stage.stageHeight/2;

}
}
}
 

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Sections


Sondages

Pensez-vous que le HTML5 puisse complètement remplacer Flash ?
 
Seriez-vous intéressé par un éditeur d'XML en ligne ?
 

Paypal

paypal

Code du plugin Joomla AutoSEO 1.2 par www.geek-space.fr