求助一个困惑了很久的问题
一直以来都不知道这个问题是那方面的,所以无法自己百度解决,举个例子。库里有连接名为test的元件,这个元件里有个变量num
然后把这个元件添加到舞台
var mc:test = new test()
addChild(mc);
trace(mc.num)
//输出NaN
估计是元件还没完成初始化,所以我都是延时1秒再处理,这方法太笨太low了,又不规范。
想请教下有什么方法可以监听完成,就像加载外部图片那样,或者其他更好的方法。
var mc = new test()
mc.addEventListener(Event.ACTIVATE,function(e){
trace(mc.num)
})
ACTIVATE 常量
public static const ACTIVATE:String = "activate"
语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4
ACTIVATE 常量定义 activate 事件对象的 type 属性的值。
注意:此事件既不具有“捕获阶段”也不具有“冒泡阶段”,这意味着必须直接将事件侦听器添加到任何潜在的目标,而无论目标是否位于显示列表中。
AIR for TV 设备从不自动调度此事件。 但是您可以手动调度。 这个问题不算难,我知道,就是执行顺序不对而已。
把那段代码放在第二帧,元件里的代码放在第一帧就正常了。
方法应该有好几种的,我也正在学习中。(虽然AS3的前途渺茫 过年-日赚千刀 发表于 2020-6-11 17:26
var mc = new test()
mc.addEventListener(Event.ACTIVATE,function(e){
trace(mc.num)
终于解决了多年的困惑,谢谢{:4_159:} 跟帖侠 发表于 2020-6-11 15:59
这个问题不算难,我知道,就是执行顺序不对而已。
把那段代码放在第二帧,元件里的代码放在第一帧就正常了 ...
感谢分享,你这个方法也不错,但应该也是属于取巧#:lol @过年-日赚千刀 大神,为什么变量可以,调用函数就不行了,怎样才能调用函数? 勤奋的蜗牛 发表于 2020-6-11 21:58
@过年-日赚千刀 大神,为什么变量可以,调用函数就不行了,怎样才能调用函数? ...
可以调用函数啊,亲测! 过年-日赚千刀 发表于 2020-6-11 23:40
可以调用函数啊,亲测!
的确可以,我函数的问题,感谢指教{:4_148:} 理论上,时间轴的代码应该尽量不和外部交互使用,因为时间轴的代码属于局部代码,作用范围是根据时间轴位置来决定的。 TKCB 发表于 2020-6-12 09:09
理论上,时间轴的代码应该尽量不和外部交互使用,因为时间轴的代码属于局部代码,作用范围是根据时间轴位置 ...
我是业余爱好者,AS2就接触了FLASH,一直保持着时间轴写代码的习惯,AS3时代有想过学习用类写,但想想自己又不靠这个吃饭,只是平时捣鼓些小玩意,就不浪费那时间了,反正类能实现的时间轴也能。
我之前是把所有代码都写在场景第一帧,但过段时间再打开发现好乱,有些几千行代码堆在一帧上,看的头都大了,那怕有注释都很费事,所以我现在是那个元件要实现什么功能就在元件里写,需要全局调用的才在场景写,其实想想类不就是这个原理吗?
页:
[1]
2