flash 一段关于swf之间的通信 的代码看不懂,帮忙解释一下
发布网友
发布时间:2023-05-08 10:53
我来回答
共1个回答
热心网友
时间:2023-05-13 20:15
你应该对Flash比较生疏吧?
我们来看这段代码
var lc = new LocalConnection ();
lc.Comein = function (num) {
_root.gotoAndStop (num);
};
lc.connect ("comein");
stop ();
其中
lc.Comein可以看成是一个事件,当某movie执行lc.send ("comein", "Comein", ……)时候lc.Comein被触发
例如root.btn.onRelease就是一个事件
那么我们现在想要在事件被触发时候执行我们自己的一段代码,于是需要用lc.Comein = function (num)
这句中function (num)目的是使这个“事件”能接收一个参数(否则参数怎么来呢?必须为function才有参数),其中num为一个传入参数[这是你自定的]。
{}中内容就是具体这个lc.Comein事件触发时候执行的内容
_root.gotoAndStop (num);
这里的num就是function (num)中的num。
第一个num就像是声明;第一个num是真正的变量使用。
如果对于num为什么有2个仍然不懂,看这个:
function Test(a)
{
xx(a);
}
Test(10);
这一段代码,a是参数;Test(10)调用时候a就变成了10,于是xx(a);就是xx(10);
以上理解清楚以后,lc.connect ("comein");这句应该也很好理解。
lc.Comein = function (num) {
_root.gotoAndStop (num);
};
整个这一段都只是“声明”了这个函数和它要做的事情,并没有去触发它;
lc.connect ("comein")才是真正以comein为标识进行连接(当然连接到了send_movie。
如果仍然不懂,继续上面那段:
function Test(a)
{
xx(a);
}
Test(10);
如果我们不写Test(10);,那么Test()不会被执行。这里也是类似的。
连接,当然要在准备工作做完以后再连接。
当send_movie中lc.send ("comein", "Comein", "2");时候,触发receive_movie的lc.Comein(num),这是自动执行的。
连接后,stop();了,flash动画停下,停下当然是等待send_movie调用lc.send以后触发receive_movie的lc.Comein咯。否则到下一帧去了就收不到了~