as2 代码问题

作者&投稿:包品 (若有异议请与网页底部的电邮联系)
//下面代码的作用是,给MovieClip增加一个名为eMoveY的方法,这个方法要接收三个参数,a、b、ty是这三个参数的名字。
MovieClip.prototype.eMoveY = function(a, b, ty) {
var _loc2 = this;
var _loc3 = ty;
var _loc4 = _loc2._y;
_loc2._y = a*(_loc2._y-_loc3)+b*(_loc2.prevy-_loc3)+_loc3;
_loc2.prevy = _loc4;
};
//下面代码调用了eMoveY方法,里面传递了三个参数,就是9.000000E-001,-2.000000E-001,mty1
_root.mc.menu1.onEnterFrame = function() {
this.eMoveY(9.000000E-001,-2.000000E-001,mty1);
//9.000000E-001这种是指数写法,可以理解为9.000000乘以(10的-001次方),就是0.9,同理,-2.000000E-001就是0.2,mty1是你别的地方定义的。
};
就你这个程序来看我也不知道为什么他非要写成指数形式,不过当你要写“100000000”的时候,写成指数“1E8”形式,看上去就明了清爽了不是?

swf(简称叫S2) 那么你在as3的flash(简称叫S1) 首先S1当然先做载入S2的动作 应该不用教吧?就是用一个loader去载入AS2的swf。S1载入S2完成之后 你就应该执行上面的AS3Class 那个类的 init()方法。(其实你想简单点的话 不用新建一个文档也行 直接把上面 init()的代码 拷贝到S1的代码里面) 这样 S1就完成了载入S2 并且打开了一个服务叫_AS3_L4cd_2008_08_02的通道。S1这边的工作就完成了。

然后就是S2的工作了 吧AS2中的代码 为了测试 随便弄个按钮 点击就执行以下:
var caller:LocalConnection
//初始化对象,由于这里只需要调用别的LocalConnection的方法,所以这里不需要connect
caller = new LocalConnection()
//调用_AS3_L4cd_2008_08_02(AS3中connect的名字)中的m1
caller.send("_AS3_L4cd_2008_08_02","m1")
//调用_AS3_L4cd_2008_08_02(AS3中connect的名字)中的m2,前把"L4cd.Net"传到m2的第一个参数
caller.send("_AS3_L4cd_2008_08_02","m2","L4cd.Net")

那么正常来说 打开S1 就会载入S2 然后点击S2的按钮 S2就调用了S1的两个方法了

~