|
主题: 请教FOR..IN循环
|
 cnnnd1314
职务:普通成员
等级:1
金币:0.0
发贴:2
|
#12002/1/26 17:20:03
今天看了看FOR..IN循环,MACROMEDIA的文档上有个例子,可以在父MC中取得所有子MC的INSTANCENAME。 可这在实际应用当中,好象没什么大用处。:) 平时都用FOR或者DOWHILE做循环,很少看到有FOR..IN的例子。 哪位大虾有FOR..IN的实战例子,能给在下一个吗? 或者给俺谈谈用FOR..IN的好处也行!先谢了。
|
 redsteps
职务:普通成员
等级:1
金币:1.0
发贴:144
|
#22002/1/26 17:26:31
for..in
语法
for(variableiterant in object){ statement; } 参数
variableiterant 重复操作的变量名, 可以是对象的任一属性或数组的任一元素.
object 被重复的对象名.
statement 每次重复均要执行的语句.
描述
动作; 通过对象属性或数组元素循环, 对对象的每一属性执行statement语句.
一些属性不能被for 或for..in动作列举. 例如,Array对象的built-in 方法 (Array.sort and Array.reverse)就不能包含在列表中, 电影夹属性, 比如 _x 和 _y,也不能被列举.
for...in结构循环在重复对象原型链上的对象属性. 如果子体的原型是父体,用for...in循环子体属性也将循环父体属性.
播放器
Flash 5 或更高.
例子
下面是用 for..in 循环对象属性的例子:
myObject = { name:'Tara', age:27, city:'San Francisco' }; for (name in myObject) { trace ("myObject." + name + " = " + myObject[name]); } 此例输出如下:
myObject.name = Tara myObject.age = 27 myObject.city = San Francisco 下面是一使用 typeof 运算符和 for..in 重复子体详细类型的例子:
for (name in myMovieClip) { if (typeof (myMovieClip[name]) = "movieclip") { trace ("I have a movie clip child named " + name); } } 下面的例子列举电影夹中的子体并发送它们到各自时间线上的第2帧. 电影夹 RadioButtonGroup 是父体,并带有几个子体, _RedRadioButton_, _GreenRadioButton_ and _BlueRadioButton.
for (var name in RadioButtonGroup) { RadioButtonGroup[name].gotoAndStop(2); }
编辑历史:[这消息被redsteps编辑过(编辑时间2002-01-26 17:26:46)]
|
 cnnnd1314
职务:普通成员
等级:1
金币:0.0
发贴:2
|
#32002/1/26 17:36:53
先谢了。不过这就是FLASH文档上的那几个例子啊,我早看了,意思我也明白。:) 只是我这个人没什么创意,我想问的是通过FOR..IN,能做出什么效果来。哪位大虾有现成的例子请给一个吧。:)
|
 金山羊
职务:普通成员
等级:4
金币:10.0
发贴:827
|
#42002/1/26 19:02:44
平时写程序从来就没有用过for in 循环 虽然知道什么用 但用不上 也很少见有人用
5d.cn FLASHDEP TECHNOLOGY SUPPORT JAVA/ACTIONSCRIPT/javascript CFML/JSP/COLDFUSION/FLASH REMOTING JRUN/COLDFUSIONMX FLASH/DREAMWEARER
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:2.0
发贴:617
|
#52002/1/26 19:03:11
我想应该是类似于for each in循环吧,这个大多数应该用于不知道具体的循环次数,比如在myObject对象实例中建立了一组键,每个键内的数目是用户自定义的,谁也不知道具体是多少,所以,如果显示所有键值的话,就可以用for in 了,我也没有具体试过,不知是不是这样的
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#62002/1/27 22:11:10
for...in的另一个作用是用来辨别对象类型。
我曾经有这个创意,但是最终还是没动手写出来::p
mc的嵌套结构和目录结构很相似,所以,可以用遍历目录树的办法来列举mc及其“子mc”下的所有对象。全部用for...in来完成,采用递归算法。
function func(target){ for(var obj in eval(target)){ if(typeof(obj)=="movieclip"){ func(obj._target); ... }}}
编辑历史:[这消息被janlay编辑过(编辑时间2002-01-27 22:12:30)] [这消息被5D大叔编辑过(编辑时间2002-01-28 15:57:00)]
|