作者icedesign (不可或缺的咖啡因)
看板Flash
标题Re: [问题] 共同宣告,各别呼叫。
时间Fri Jun 1 12:06:12 2007
※ 引述《aquarianboy (我是没牌的营养师!)》之铭言:
: ※ 引述《icedesign (不可或缺的咖啡因)》之铭言:
: : function test() {
: : for (var i:Number = 1; i<=6; i++) {
: this["test"+i+"_btn"].i = i; //加这行
: : this["test"+i+"_btn"].onRelease = function() {
: : if (i=1) {
: : //trace(i);
: trace(this.i); //改成this.i,其它以此类推
: : }
: : };
: : }
: : }
: : test();
: 应该这样就行了
: 另外,即然这麽多个if,建议可以改用switch-case的方式 :)
: 供你参考
嗯嗯,可以解说一下,为什麽要加
this["test"+i+"_btn"].i = i; //
这一行呢?意思是说,按钮的i值将会等於i吗?
然後刚刚爬文,看到之前有个类似的问题,版上版友有人解答,不过倒
是有很多疑问:
var i:Number = 0;
var chosenPart:Number = 0;
for (i=1; i<=6; i++) {
this["part_"+i+"_mc"].onRelease = function() {
chosenPart = int(this._name.substr(5, 1));
trace(chosenPart);
};
}
上面这道式子就可以将场景上6个mc共同宣告,各别丢出不一样的值,因为
我很想了解原因,所以反推了很多次,不过还是不懂下面这行
int(this._name.substr(5, 1));
这一行当中的int我已经将它改为Math.round,而substr中的值,(5,1),
我以为有六个mc,将原先的5改成6,结果丢出来的值却变成全部都是"0"
如果将5改成-1到4之间的数字,则丢回NaN,@@""可以请高手解说一下是
怎麽一回事吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.178.144
1F:推 LPH66:this._name是个长得像"part_1_mc"的字串 06/01 12:06
2F:→ LPH66:所以substr就会抓出中间那个数字 然後被int()转成整数 06/01 12:07
3F:→ icedesign:啊啊啊啊啊啊啊啊~(~^O^~)感谢楼上,\(^▽^)/感谢版大! 06/01 12:09
4F:→ icedesign:O_oㄟ...刚试了一下,我改了中间变数i为7,那为什麽将 06/01 12:12
5F:→ icedesign:substr的5改成6,它依然是NaN呢?= ="还是不太懂^^" 06/01 12:13
6F:推 afu70:可以先trace(this._name)再trace(this._name.substr(5, 1)) 06/01 13:22
7F:→ afu70:看看 不过不建议这种方式 要是按钮数量超过10 找到的数字可 06/01 13:23
8F:→ afu70:能不是你想要的 06/01 13:24
9F:→ afu70:比较好的还是水瓶大的直接在元件设属性i 之後要找就不用费力 06/01 13:24