勤奋的蜗牛 发表于 2020-6-11 13:40:17

求助一个困惑了很久的问题

一直以来都不知道这个问题是那方面的,所以无法自己百度解决,举个例子。


库里有连接名为test的元件,这个元件里有个变量num
然后把这个元件添加到舞台
var mc:test = new test()
addChild(mc);
trace(mc.num)
//输出NaN
估计是元件还没完成初始化,所以我都是延时1秒再处理,这方法太笨太low了,又不规范。
想请教下有什么方法可以监听完成,就像加载外部图片那样,或者其他更好的方法。




过年-日赚千刀 发表于 2020-6-11 13:40:18


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 设备从不自动调度此事件。 但是您可以手动调度。

跟帖侠 发表于 2020-6-11 15:59:37

这个问题不算难,我知道,就是执行顺序不对而已。
把那段代码放在第二帧,元件里的代码放在第一帧就正常了。
方法应该有好几种的,我也正在学习中。(虽然AS3的前途渺茫

勤奋的蜗牛 发表于 2020-6-11 20:35:51

过年-日赚千刀 发表于 2020-6-11 17:26
var mc = new test()
mc.addEventListener(Event.ACTIVATE,function(e){
        trace(mc.num)


终于解决了多年的困惑,谢谢{:4_159:}

勤奋的蜗牛 发表于 2020-6-11 20:41:19

跟帖侠 发表于 2020-6-11 15:59
这个问题不算难,我知道,就是执行顺序不对而已。
把那段代码放在第二帧,元件里的代码放在第一帧就正常了 ...

感谢分享,你这个方法也不错,但应该也是属于取巧#:lol

勤奋的蜗牛 发表于 2020-6-11 21:58:21

@过年-日赚千刀 大神,为什么变量可以,调用函数就不行了,怎样才能调用函数?

过年-日赚千刀 发表于 2020-6-11 23:40:09

勤奋的蜗牛 发表于 2020-6-11 21:58
@过年-日赚千刀 大神,为什么变量可以,调用函数就不行了,怎样才能调用函数? ...

可以调用函数啊,亲测!

勤奋的蜗牛 发表于 2020-6-12 01:45:08

过年-日赚千刀 发表于 2020-6-11 23:40
可以调用函数啊,亲测!

的确可以,我函数的问题,感谢指教{:4_148:}

TKCB 发表于 2020-6-12 09:09:26

理论上,时间轴的代码应该尽量不和外部交互使用,因为时间轴的代码属于局部代码,作用范围是根据时间轴位置来决定的。

勤奋的蜗牛 发表于 2020-6-12 23:54:13

TKCB 发表于 2020-6-12 09:09
理论上,时间轴的代码应该尽量不和外部交互使用,因为时间轴的代码属于局部代码,作用范围是根据时间轴位置 ...

我是业余爱好者,AS2就接触了FLASH,一直保持着时间轴写代码的习惯,AS3时代有想过学习用类写,但想想自己又不靠这个吃饭,只是平时捣鼓些小玩意,就不浪费那时间了,反正类能实现的时间轴也能。
我之前是把所有代码都写在场景第一帧,但过段时间再打开发现好乱,有些几千行代码堆在一帧上,看的头都大了,那怕有注释都很费事,所以我现在是那个元件要实现什么功能就在元件里写,需要全局调用的才在场景写,其实想想类不就是这个原理吗?
页: [1] 2
查看完整版本: 求助一个困惑了很久的问题

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)