AS3 nelle interazioni tra gli oggetti ad applicare l'approccio sarà preoccupato per un sacco di parti. In convenzionali object-oriented orientate al processo nel corso dei quattro mesi che sono trascorsi passati. I cambiamenti nel codice, ma è quello di utilizzare scripting orientato agli oggetti devono essere sempre, in agonia. Interazioni di cui preoccuparsi che di design e sviluppo, design, ...

Dovrebbero essere progettati in modo che due parti sono un po 'scomodo. Esistenti in uno spazio così tante volte che ho fatto, perché è stato necessario progettare un tempo. Quindi il dilemma per qualche tempo è stato perso in questo momento. Il piano ormai abituati al codice, ma non è perfetto. A causa di un tale rapporto con AS2 utile "_global", "_root" e pensare i due approcci sono stati.

In primo luogo, la classe principale "GlobalAndRoot" e rappresentante di classe _global poeta un "GlobalVars" e _global per l'accesso alla _root "AccessScope" fatta la classe. E "classe AccessScope" crea un oggetto da l'accesso interno alla _root "AccessChildRoot" crea un ulteriore esempio della classe è stato creato.
Lasciate un codice.

GlobalAndRoot.as

 import flash.display . Sprite ; import flash.events . MouseEvent ; // 코드를 보면 짜임새를 알 수 있어야 하기 때문에 같은 패키지이지만 선언을 해준다. import GlobalVars; import AccessScope; public class GlobalAndRoot extends Sprite { public var rootName : String = "GlobalAndRoot.rootName" public function GlobalAndRoot ( ) { // GlobalVars 클래스에 선어되어있는 정적 변수들 GlobalVars.vars = "jin_u" GlobalVars.varsArr = [ 0 , 1 , 2 ] ; // AccessScope 클래스에서 global, root 접근 var accessScope : AccessScope = new AccessScope ( ) addChild ( accessScope ) accessScope.traceFunc ( ) ; /* output : GlobalVars : jin_u GlobalVars : 0,1,2 accessScope : GlobalAndRoot.rootName */ } } } pacchetto (flash.display importazione. Sprite; flash.events importazione. MouseEvent / / guardare il codice, perché è necessario trovare la trama, ma lo stesso pacchetto permette la dichiarazione. GlobalVars importazione; AccessScope importazione; public class GlobalAndRoot estende Sprite (rootName var pubblico : String = "GlobalAndRoot.rootName" pubblica funzione GlobalAndRoot () (/ / static GlobalVars variabili di classe sono GlobalVars.vars seoneo = "jin_u" GlobalVars.varsArr = [0, 1, 2]; / / classe AccessScope globale , var root accessScope accesso: AccessScope nuovo AccessScope = () addChild (accessScope) accessScope.traceFunc (); / * output: GlobalVars: GlobalVars jin_u: 0,1,2 accessScope: * GlobalAndRoot.rootName /))) 

GlobalVars.as

  pacchetto
 (

	 GlobalVars GlobalVars classe pubblica
	 (
		 vars : String ; var vars pubblico statico: String;
		 varsArr : Array = [ ] ; public var varsArr statico: Array = [];
	 )

 ) 

AccessScope.as

 import flash.display . Sprite ; import GlobalVars; import GlobalAndRoot; import AccessChildRoot; public class AccessScope extends Sprite { public function AccessScope ( ) { // Constructor } public function traceFunc ( ) : void { trace ( "GlobalVars : " + GlobalVars.vars ) ; trace ( "GlobalVars : " + GlobalVars.varsArr ) ; var _root : GlobalAndRoot = root as GlobalAndRoot; trace ( "accessScope : " + _root.rootName ) ; var accessChildRoot : AccessChildRoot = new AccessChildRoot ( ) ; addChild ( accessChildRoot ) ; accessChildRoot.traceFunc ( ) ; /* output : AccessChildRoot : GlobalAndRoot.rootName */ } } } pacchetto (flash.display importazione. Sprite; GlobalVars importazione; GlobalAndRoot importazione; AccessChildRoot importazione; public class AccessScope estende Sprite (pubblica funzione AccessScope () (/ / Costruttore) traceFunc funzione pubblica (): void (trace ("GlobalVars:" + GlobalVars . vars); trace ("GlobalVars:" + GlobalVars.varsArr); _root var: GlobalAndRoot = root come GlobalAndRoot; trace ("accessScope:" + _root.rootName); accessChildRoot var: AccessChildRoot nuovo AccessChildRoot = (); addChild (accessChildRoot ); accessChildRoot.traceFunc (); / * output: AccessChildRoot: * GlobalAndRoot.rootName /))) 

AccessChildRoot.as

  pacchetto
 (

	 . Sprite ; importazione flash.display. Sprite;
	 GlobalAndRoot importazione;

	 AccessChildRoot extends Sprite public class AccessChildRoot estende Sprite
	 (
		 AccessChildRoot ( ) pubblica funzione AccessChildRoot ()
		 (
			 / / Costruttore
		 )
		 traceFunc ( ) : void pubblico traceFunc function (): void
		 (
			 GlobalAndRoot = root as GlobalAndRoot; var _root: GlobalAndRoot root = come GlobalAndRoot;
			 "AccessChildRoot : " + _root.rootName ) ; trace ("AccessChildRoot:" + _root.rootName);
		 )
	 )

 ) 

utilizzato in AS2 "_global" deve utilizzare la proprietà statica "_root" è tratto il seguente: la classe principale "root _" vi permetterà di accedere.

  GlobalAndRoot = root as GlobalAndRoot; var _root: GlobalAndRoot root = come GlobalAndRoot; 

Di primo livello "root" di accesso può essere utile se avete bisogno di essere qui è.