2009-08-25 8 views
1

« principale » J'ai le code ActionScript suivant:étape d'accès de la classe

package { 
    import flash.display.Sprite; 

    public class Application extends Sprite { 
     public function Application(){ 
      width=1000; 
      height=500; 
     } 
    } 
} 

Ce que je compilez avec mxmlc Application.as. Ce que j'ai remarqué, c'est que l'Application n'est pas l'objet de la scène, comme je le pensais, parce que la largeur et la hauteur de la scène ne changent pas.

Comment accéder à la scène depuis Application?

Répondre

1

Vous vous méprenez subtilement sur ce à quoi "stage" se réfère. La scène est la référence au niveau le plus bas de la zone d'affichage Flash doit travailler avec, de sorte que sa taille est finalement dicté par le conteneur Flash est exécuté dans.

Ainsi, lorsque vous affichez votre contenu dans le lecteur Flash autonome, pour redimensionner la scène, vous redimensionnez le lecteur lui-même, et lorsque vous visualisez votre contenu incorporé dans une page HTML, la scène ne se redimensionne que lorsque le navigateur modifie la taille de l'élément Flash (via Javascript, par exemple). De même, si votre flash a été intégré dans une application .NET, la logique .NET a le contrôle sur la taille de la scène, et ainsi de suite. Pour ces raisons, il n'est généralement pas possible de redimensionner l'étape à partir de la logique d'application, à moins que le conteneur n'expose un moyen de le faire. En effet, la plupart des navigateurs exposent de telles fonctionnalités via JavaScript, donc dans un navigateur, vous pouvez normalement redimensionner la scène en appelant des hooks JS pour modifier la taille de l'élément embed de Flash. En revanche, le joueur autonome n'expose pas de tels hooks, donc redimensionner la scène est impossible (sauf bien sûr que vous pouvez basculer en plein écran). En guise de remarque, comme le souligne Joel Hooks, vous pouvez inclure une instruction dans votre projet sous la forme: [SWF(width=1000,height=500)]. Cela provoque le fichier SWF compilé pour contenir des métadonnées pour la taille indiquée. Ces métadonnées ne sont qu'une suggestion, cependant, et il appartient entièrement au conteneur de l'honorer ou non. Le joueur autonome respectera ces métadonnées (pour la taille initiale du conteneur), mais les navigateurs l'ignoreront entièrement.

Questions connexes