可以在类函数内部读取主脚本中的变量吗?

时间:2014-05-30 07:30:28

标签: flash actionscript-2 flash-cs6

我通过剖析一些免费提供的源代码并对其进行修改来学习ActionScript 2.0,并且我遇到了一些麻烦。

我有3个.as文件与我的.fla一起使用,它们是:

" script.as"包含我已经构建的闪存接口的所有基本功能 " skin.as"包含接口外观类声明和类函数 " defaultskin.as"包含一个类声明和扩展"皮肤"类。

.fla的第一帧只是#includes" script.as"我已将"界面" movieclip(这是我的主要flash界面)到" defaultskin"通过ActionScript链接下的右键单击/属性菜单。

我在" script.as"中声明了一个变量。使用简单的var语句。可以在" skin.as"内部的一个函数中读取此变量。在其中一个类函数中?或者我是否需要做一些特别的事情才能使该类可读?

如何在不将变量作为公共静态且不将其作为函数的参数传递的情况下完成此操作?

为了进一步说明,script.as看起来像这样(假设m_interface是movieclip对象的名称):

//imports

var myVar;

onLoad()
{
 m_interface.Initialize();
}

skin.as看起来像:

//imports

class skin
{
 //variable declarations

 public function skin()
 {
  // code
 }

 function Initialize()
 {
  trace(myVar);
 }
}

没有编写所有的fluff代码,defaultskin.as声明了一个类:

class defaultskin extends skin

1 个答案:

答案 0 :(得分:0)

默认情况下,您使用var为其提供internal访问修饰符。 所以它只能由同一个包中的类或任何类访问 因此,如果您不使用任何其他修饰符,或者不以某种方式将此变量传递给您的班级,那么答案就是#34;不,它不可访问" 如果使用public修饰符,则可以向任何类提供对变量的访问权限,但还有一些其他限制 正如您已经注意到要访问的那样,您添加了static修饰符,这意味着您不需要使类的实例能够访问它public static变量。

因此,要访问另一个类的变量,您需要导入此类,并且此变量是静态的。如果它不是静态的,你应该在有权访问之前创建类的实例

var newClassInstance = new ClassName();
trace(newClassInstance.varible);

另一种方式是你的类skin实例位于script.as类中......所以在script.as中的某个地方有变量引用了skin的实例。在这种情况下,您可以使用skin.as

中的_parent访问script.as实例的变量