在对象之间的相互作用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 根 作为 ;
顶层“根”访问可以是有用的,如果你需要在这里。














1。评论由韩Sanghun
在上午10:58 12/Nov/2008
这样,创建一个单一的数据对象,
Global.data.param1 = 1;
Global.data.param2 = 2;
这种方法是一种更有效的使用难舍难分。
2。评论由jin_u
在上午11:46 12/Nov/2008
阿.. 真的吗? 作为一个例子,但随机neoteungeogin,你必须是有效的。
而不是把一个对象的多个变量的标记更有效malingeoji?
3。 Pingback由jin_u根为MovieClip的«的博客
在下午1:24 13/Sep/2009
[...]写了“根”访问代码会是什么样子? 降低如下所示的代码。 2变种[...]