精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>动画制作>>软件教程>>FLASH教程>>☆Gori. 每日学习Action(_root,_parent,trace,eval)☆(2003/5/26)

主题:☆Gori. 每日学习Action(_root,_parent,trace,eval)☆(2003/5/26)
发信人: younger.zz(Gori)
整理人: yufif(2003-05-28 11:57:09), 站内信件
A. _root 和 _parent 
注意前面的下画线(”_”)不可少。指定变量、对象或MovieClip的属性、方法等的路径。比如在主场做一个MovieClip,这个MovieClip的实例名为MC1,如果要在MC1中控制主场景的播放,就可以用: 
_root.play(); 
或 
_parent.play(); 
假设主场景第1帧有一个变量k,如果要在MC1中将k的值赋给j,就可以用: 
j=_root.k; 
或 
j=_parent.k 
如果用 
j=k; 
则得不到想要的结果,因为k不在MC1中,而在主场景中。如果在MC1中再创建一个MC11,要在MC11中将主场景的k的值赋给m,则要使用: 
   m=_root.k; 
如果要在MC11中将MC1的变量j的值赋给m,则要用: 
m=_parnt.j; 
或 
m=_root.mc1.j 
由此可见,_root是直接指定主场景,_parent是指定上一级路径。 

B. trace(Expr) 
将Expr的结果从output窗口中显示出来,但只是在Flash MX开发环境中可用,如果用播放器打开SWF文件,则看不到Expr的结果。例如: 
     trace(3+3); //结果会显示6; 
     trace(“a”+”b”); //结果会显示 ab; 
//如果a是个MC的实例名: 
     trace(_root.a);//结果会显示:_level0.a 
C. eval(Expr) 
如果Expr是一个变量或属性,则返回该变量或属性的值。如果参数是一个对象或影片剪辑,则返回指向该对象或影片剪辑的引用路径。例如,主场景有10个MovieClip,它的实例名是 MC1,MC2,MC3……MC10,现在要让每个MovieClip的alpha值(透明度)从90开始逐个递减。你可以用: 
mc1._alpha=90; 
mc2._aplpha=80; 
mc3._alpha=70; 
…… 
mc10._alpha=0; 

但这是极不科学的办法,不会用Acton Script的方法,如果有100个,那就要写100条这样的语句吗? 当然有更简单的方法: 
for(I=1;I<=10;I++){
eval(“mc”+I)._alpha=100-I*10
}

for循环在《2.2分支和循环》中有详细讲解。
假如有100个MovieClip,那也就是把条件改成这样就可以了:
for(I=1;I<=100;I++){
eval(“mc”+I)._alpha=100-I
}



----

》是什么让我成熟?是什么让我不哭?《    


   
      

[关闭][返回]