关于flash 的 _root未定义

我在新层的第一帧插入如下代码,想做一个下雪的效果,结果有错误,_root未定义,该怎么改呢for(vari=0;i<100;i++){_root.attachMovie(... 我在新层的第一帧插入如下代码,想做一个下雪的效果,结果有错误, _root未定义,该怎么改呢

for(var i=0;i<100;i++){
_root.attachMovie("snow",i,i);
_root[i]._x=632*Math.random();
_root[i]._y=474*Math.random();
_root[i]._rotation=60*Math.random();
_root[i]._xscale=_root[i]._yscale=_root[i]._alpha;
_root[i].onEnterFrame=function(){
this.y+=this._xscale/10;
this.y%=400;
};
}
展开
 我来答
qq763567665
2010-10-18
知道答主
回答量:11
采纳率:0%
帮助的人:7.1万
展开全部

fallSnow(this, 100, [550, 400]); 

function fallSnow(path, num, size) { 

for (var i = 0; i<num; i++) { 

path.createEmptyMovieClip("s"+i, i); 

var mc = path["s"+i]; 

mc._x = random(size[0]); 

mc._y = random(size[1]); 

mc.ro = [1, -1][random(2)]; 

mc.xtime = random(20); 

mc.startTime = 0; 

mc.id = Math.pow(i, 1/2); 

createSnow(mc, mc.id/2.5, "0xffffff", 20*mc.id); 

var loop = function () { 

updateAfterEvent(); 

for (var i = 0; i<num; i++) { 

var mc = path["s"+i]; 

mc._rotation += mc.ro*5; 

mc._x += mc.id*mc.ro/10; 

mc._y += mc.id/2; 

mc.startTime++; 

scanTar(mc); 

scanEdge(mc, size); 

}; 

var interval = setInterval(loop, 10); 

function createSnow(mc, radius, c, alpha) { 

with (mc) { 

moveTo(0, -radius); 

beginFill(c, alpha); 

lineStyle(0, "0x000000", 0); 

for (var i = 1; i<=6; i++) { 

var a1 = -Math.PI/6+i*Math.PI/3; 

var a2 = i*Math.PI/3; 

lineTo((radius/5)*Math.sin(a1), -(radius/5)*Math.cos(a1)); 

lineTo(radius*Math.sin(a2), -radius*Math.cos(a2)); 

endFill(); 

function scanTar(mc) { 

if (mc.startTime>=mc.xtime) { 

mc.startTime = 0; 

mc.xtime = random(20); 

mc.ro = [1, -1][random(2)]; 

function scanEdge(mc, size) { 

if (mc._x>size[0]) { 

mc._x = 0; 

} else if (mc._x<0) { 

mc._x = size[0]; 

if (mc._y>size[1]) { 

mc._y = 0; 

//新建FLASH在第一帧放入以上代码,测试保存,

xlzzc
2010-10-18 · TA获得超过7301个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1441万
展开全部
按你思路改一下吧:
for(var i=0;i<100;i++){//for循环,计数器i
_root.attachMovie("snow",i,i);//复制雪花100片,新名字,放置的层深
_root["snow"+i]._x=632*Math.random();//随机定位X值
_root["snow"+i]._y=474*Math.random();//随机定位Y值
_root["snow"+i]._rotation=60*Math.random();//角度,随机产生旋转值
_root["snow"+i]._xscale=_root["snow"+i]._yscale=_root["snow"+i]._alpha;//尺寸缩放、可见度也叫透明度或不透明度
_root["snow"+i].onEnterFrame=function(){//定义帧频函数
this.y+=this._xscale/10;//匀速下落。不如改为随机下落更好些!!
this.y%=400;//超过舞台下界,再返回到上边,这个方法妙,我从来没用过,学习了!!
};//结束自定义函数
}//结束代码块
...............................................
此为as2.0的代码。
我这一改,你就知道问题是怎么回事了吧?哈哈……

========================================
您的问题==我的课题 奉献知识==辉煌生命
黑龙江省 张志晨

========================================
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小虾爱上你
2010-10-18
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
想作下雪不一定要写代码的,可以先作一个小的下雪影片,里面作十几个雪花下落的引导线效果,再把这个小影片放到场景里就会有不断的重复下雪了。
也就是说,把影片放到场景里是不用跳帧也会一直重复,就有有stop()也不停
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式