在对象之间的相互作用AS3的适用方法将有关的许多部分担心。 在传统的面向对象的流程为导向对已经过去了4个月过去了。 代码中的变化,但它是使用面向对象的脚本应该始终在痛苦。 互动担心,设计和编码,设计,...

应设计,使两部分的一小尴尬。 在一个空间,让现有的很多次,我没有,因为有必要设计一个时间。 因此,一段时间的困境是暂时丢失。 该计划现在习惯了代码,但它并非十全十美。 由于这种关系的一个有用的AS2“_global”,“_root的”,想想这两种方法已。

首先,主类“GlobalAndRoot”和课代表_global诗人“GlobalVars”和_root的_global为进入“AccessScope”的类。 “AccessScope”类创建一个_root的对象从内部进入“AccessChildRoot”创建一个类的例子是创建的。
让我们一码。

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 */ } } }  (进口 flash.display。雪碧; 进口 flash.events。的MouseEvent; / /看看代码,因为你需要找到纹理,但相同的封装,使申报。 进口 GlobalVars; 进口 AccessScope, 公共  GlobalAndRoot延伸雪碧 (公共 变种 rootName :String =“GlobalAndRoot.rootName” 公共 职能 GlobalAndRoot()(/ / GlobalVars类的静态变量是 GlobalVars.vars = seoneo“jin_u”GlobalVars.varsArr = [0,1,2]; / / AccessScope一流的全球,根访问 变种 accessScope:AccessScope =  AccessScope()addChild(accessScope)accessScope.traceFunc(); / * 输出:GlobalVars:jin_u GlobalVars:0,1,2 accessScope:GlobalAndRoot.rootName * /))) 

GlobalVars.as

  
 

	 GlobalVars 公共  GlobalVars
	 
		 vars : String ; 公共静态无功 瓦尔: 字符串;
		 varsArr : Array = [ ] ; 公共静态无功 varsArr: 阵列 = [];
	 

  

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 */ } } }  (进口 flash.display。 雪碧; 进口 GlobalVars; 进口 GlobalAndRoot; 进口 AccessChildRoot, 公共  AccessScope延伸雪碧 公开场合 AccessScope()(/ /构造函数) 的公共 职能 traceFunc(): 无效 (跟踪 (“GlobalVars:”+ GlobalVars 。 增值经销商); 跟踪 (“GlobalVars:”+ GlobalVars.varsArr); 变种 的_root:GlobalAndRoot = GlobalAndRoot  作为 ; 跟踪 (“accessScope:”+ _root.rootName); 变种 accessChildRoot:AccessChildRoot =  AccessChildRoot(); addChild(accessChildRoot ); accessChildRoot.traceFunc(); / *输出:AccessChildRoot:GlobalAndRoot.rootName * /))) 

AccessChildRoot.as

 import flash.display . Sprite ; import GlobalAndRoot; public class AccessChildRoot extends Sprite { public function AccessChildRoot ( ) { // Constructor } public function traceFunc ( ) : void { var _root : GlobalAndRoot = root as GlobalAndRoot; trace ( "AccessChildRoot : " + _root.rootName ) ; } } }  (进口 flash.display。 雪碧; 进口 GlobalAndRoot, 公共  AccessChildRoot延伸雪碧 公开场合 AccessChildRoot()(/ /构造函数) 的公共 职能 traceFunc(): 无效 (变种 的_root:GlobalAndRoot = GlobalAndRoot  作为 ; 跟踪 (“AccessChildRoot: “+ _root.rootName );))) 

的AS2用于“_global”必须使用静态属性“的_root”的演员如下:主类“_ 根”将允许您访问。

  GlobalAndRoot = root as GlobalAndRoot; 变种 的_root:GlobalAndRoot = GlobalAndRoot  作为 ; 

顶层“根”访问可以是有用的,如果你需要在这里。