Flash新手,请教AS3中在一个类中读取和改变另一个类中某变量的问题。

package{importflash.display.Sprite;publicvar_a:uint=1;//1、在Main里定义一个变量_a。publicclassM... package
{
import flash.display.Sprite;
public var _a:uint=1;//1、在Main里定义一个变量_a。
public class Main extends Sprite
{
pubilc function Main():void
{
}
}
}

package
{
import flash.display.Sprite;
public class LeiA extends Sprite
{
pubilc function LeiA():void
{
//2、请问如何让类LeiA读取Main中变量_a的值?
//3、然后将Main中变量_a的值改为2?
}
}
}
展开
 我来答
Keensb
2013-06-05 · TA获得超过787个赞
知道小有建树答主
回答量:952
采纳率:0%
帮助的人:730万
展开全部
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
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-05
展开全部
通过Main类的实例来访问它里面的变量_a

如:
var m:Main = new Main();
trace(m._a);
m._a = 2;
trace(m._a);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果仁儿
2013-06-05 · TA获得超过1593个赞
知道大有可为答主
回答量:1519
采纳率:58%
帮助的人:808万
展开全部
最好用 get()方法 set() 读取与更改值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alanbabbage
2013-06-05 · TA获得超过976个赞
知道小有建树答主
回答量:755
采纳率:0%
帮助的人:1139万
展开全部
声明的时候将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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式