flash as帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:21:09
function ww() {
duplicateMovieClip("aa", i, i);
setProperty(i, _x, random(550)+10);
setProperty(i, _y, random(50));
setProperty(i, _alpha, random(50)+50);
tint = random(50)+50;
eval(i)._xscale = tint;
eval(i)._yscale = tint;
i++;
if (i>20) {
clearInterval(cc);
}
}
cc = setInterval(ww, 200);
updateAfterEvent();

这段代码有问题帮我看看,问题在哪里?
最好说明为什么.
高分回赠!!

function ww() {
var t = _root.aa.duplicateMovieClip("aa"+i, i);
t._x = Math.random()*550+10;
t._y = Math.random()*50;
t._alpha = Math.random()*50+50;
var tint = Math.random()*50+50;
t._xscale = tint;
t._yscale = tint;
_root.i++;
if (_root.i>20) {
clearInterval(_root.cc);
}
}
var i = 1;
var cc = setInterval(ww, 200);
updateAfterEvent();
//你的写法不是很新,我用的flash8,AS2.0
//你先看下我的,有问题再提吧

有问题??语法上没有错误.你说的是什么问题?

首先,看程序i是循环变量,
duplicateMovieClip里面第一个参数不能直接写i,
因为写i得到的只是对i这个变量的引用,
程序本意应该是得到对以i的值这个数字为实例名的新影片剪辑的引用,
这样的话,最好是写this[i],
中括号前面的是复制出的影片剪辑的父级的地址,
中括号里的内容是一个字符串,
而新影片剪辑的实例名是字符串里面的内容,
eval只能用在读取上面,它不能出现在等号(赋值号)的左边,
但是可以写setProperty(eval(i),_x,random(550)+10);
即eval可以用于setProperty。