cod*_*rex 2 flash actionscript actionscript-2 actionscript-3
我有一个主要班级
//main.as
package {
public class main {
public var testGlobal:string = "testValue";
}
}
//pop.as
package {
public class pop {
function pop():void {
trace("testGloabl from main.as" + testGlobal);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何使用主类Object在pop.as宽度上获取testGlobal值.有没有全局变量的方法?
如何在AS3中使用全局变量.
ale*_*mce 14
如果你绝对肯定必须在as3中有一个全局变量,你总是可以在源文件夹的顶层创建一个文件,如下所示:
MULTIPLIER.as
package
{
public var MULTIPLIER:int = 3;
}
Run Code Online (Sandbox Code Playgroud)
然后,只要您需要乘数,就可以像这样在任何需要的地方引用它:
DoSomeMultiplying.as
package multiplying
{
public class DoSomeMultiplying
{
public function multiplyMe(n:int):int
{
var m:int = n * MULTIPLIER;
MULTIPLIER = m;
return m;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我强烈建议你不要这样做!这是非常糟糕的练习,非常慢,而且,太可怕了!
但就是这样,可以在默认包中创建一个全局变量或常量来充当全局常量或变量.
在AS3中声明全局函数
请注意,您也可以以相同的方式创建全局函数,并且不需要使用import语句(类似于内置跟踪函数):
greet.as
package {
public function greet():String { return "Hello World" }
}
Run Code Online (Sandbox Code Playgroud)
与全局变量类似,可以从任何地方访问此全局函数而不使用import语句:
package bar {
public class foo
{
public function foo():void
{
trace("New foo says: "+greet()+", no import necessary");
// New foo says: Hello World, no import necessary
}
}
}
Run Code Online (Sandbox Code Playgroud)
testGlobal不是全局变量,它是类的公共实例变量Main.如果不使用Main类对象,则无法访问它,因为没有对象,属性就不存在.实例变量与对象相关联.
如果要访问创建未绑定到任何特定对象实例的属性,请将其声明为static.
//Main.as
package {
public class Main {
public static var testGlobal:string = "testValue";
}
}
//Pop.as
package {
public class Pop {
function pop():void {
trace("testGloabl from Main.as" + Main.testGlobal);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43713 次 |
| 最近记录: |