Main是不是文档类(主类)?是的话你就不能这样写new Main(),它应该作为单例而存在。
教你一招绝的,先给Main创建静态的自身对象,并在 Main的构造函数里让它指向 "this",然后就可以通过这个自身对象直接操作本Main实例的任何公开(public)的属性了。
package
{
import flash.display.Sprite;
public var _a:uint=1;
//
public static var instance:Main;//第1步:创建静态的自身对象
//
public class Main extends Sprite
{
pubilc function Main():void
{
instance = this; //第2步:在构造函数里让它指向this(也就是本Main类的实例)
}
}
}
然后你就可以在任何类文件的任何地方这样写:
Main.instance._a = 2;
比如
package
{
import flash.display.Sprite;
public class LeiA extends Sprite
{
pubilc function LeiA():void
{
trace( Main.instance._a);//现在是1
Main.instance._a = 2;
trace( Main.instance._a); //现在是2
}
}
}
通过Main类的实例来访问它里面的变量_a
如:
var m:Main = new Main();
trace(m._a);
m._a = 2;
trace(m._a);
最好用 get()方法 set() 读取与更改值
声明的时候将Main当一个参数传到LeiA里,
而LeiA类的构造函数需要增加Main类的参数,如
package
{
import flash.display.Sprite;
public class LeiA extends Sprite
{
protected var main:Main;
pubilc function LeiA(main:Main):void
{
this.main = main;//将main记录,在其它函数都可以访问main以得到主类的可访属性与方法
this.main._a=2;//修改了main的参数_a
}
}
}
此时,在
Main中
pubilc function Main():void
{
new LeiA(this);//声明类LeiA时传Main进去
}
还有一种方法处理,就是使用静态变量来代替变量_a,那么在任何一个类中,将静态变量_a更改即可更改了变量_a