作者jonathanmeow (喵)
看板Flash
标题Re: [问题] 一次让很多物件动的方式?
时间Mon Jan 1 19:40:00 2007
※ 引述《aquarianboy (一路好走..)》之铭言:
: ※ 引述《ooic (诚徵万年女友中)》之铭言:
: : ex moon1 ~ moon8
: : 用for来让8个一起播放...有办法吗?
: : 像
: : for (i=1;i<9;i++){mooni.gotoandplay(i);}
: : 这种感觉
: : @@"
: for (var i:Number = 1; i<=8; i++) {
: this["moon"+i].gotoAndPlay(1);
: }
: 推 ooic:thx thx @@" 01/01 01:41
: 推 ooic:嗯...没用啊...囧 01/01 14:16
其实a大所写的是正确的
一定可以用
如果不能用 像ooic这样
应该就是路径上的问题
使用this["moon"+i]的时候
那个this指的是现在程式码所在的元件
我在猜测ooic应该是按下一个按钮後 叫她们八个都动作吧
所以在for这段之前应该会有一个xxx_btn.onPress=function(){
因此接下来这个大括号底下的this都是指xxx_btn
但是moon1~moon8或许是放在_root底下
而xxx_btn也是放在_root底下
这样子就当然不会动作了
因为xxx_btn底下并没有moon1~moon8
所以以我举的例子的写法
这个this就要改成this._parent就是让目标指回去_root(上一层)
若ooic您的元件配置不是这样子可能就是不同的写法
为什麽我说a大讲的一定可以用 因为我看"大师谈FLASH游戏的设计与制作"里
也有看到这种this[]的写法
当时我很惊喜
因为我从来不知道这种写法
忘记eval是哪里学到的 昨天开启flash查了一下eval的说明档
真的有这种替代写法 而且是比较好用的(所以我才惊喜)
刚看到ooic这个问题也直觉可以用eval解决 但想试试看this[]的用法
我刚测试了一下也的确没错 这写法是行得通的 只是路径要处理一下
(其实eval也要指定路径)
我给你我的测试档
你再研究看看 :)
http://163.19.207.214/flash/test2.fla
不过这种写法不能直接用_root["moon"+i]耶?
刚测试好像不行....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.141.15.249
1F:推 ooic:soga,还真是深奥啊@@",感谢 01/01 20:04
2F:→ jonathanmeow:深奥喔?还好吧...这跟写网页一样 路径是很重要的... 01/01 20:25
3F:→ jonathanmeow:路径清楚後很多事情就都解决了 那你的问题解决了吗? 01/01 20:25
4F:推 Jerrynet:那是因为i是Number~"moon"是字串吧~? 01/01 20:29
5F:→ jonathanmeow:不懂你说的? flash中"moon"+i就是moon1 when i=1 01/01 20:32
6F:→ jonathanmeow:flash中+号可以当作加起来也可以当作"字"连起来.... 01/01 20:33
7F:推 easeeasy:我解释一下eval eval()是将字串组合 再将组合的字串对应 01/01 20:54
8F:→ easeeasy:到MovieClipe身上 和this[]一样 不过可以将eval和this 01/01 20:55
9F:→ easeeasy:上是绝对路径和相对路径的观念 这样会几较好理解 01/01 20:56