动态路径

  影片剪辑一般通过手工创建,通过【属性】面板可以设定影片剪辑实例的实例名,通过实例名和路径就可以访问不同层次的影片剪辑实例。但有些影片剪辑的实例是通过程序来创建的,例如通过复制函数可以复制出若干个新的电影剪辑实例,它们的实例名也是在程序中指定的。要访问这些复制出来的影片剪辑实例,最好的方法是用动态路径。

  动态路径是利用数组运算符来实现的,在范例 2-14 中可以使用绝对路径访问 mcA :
_root.mcA
  如果用动态路径可以这样表示:
_root[“mc”+”A”]
  注意: 动态路径使用数组运算符“ [ ] ”实现,路径和实例名间没有点运算符 。

  使用动态路径的好处是可以批量实现路径。假如主场景中有影片剪辑实例 mc1 、 mc2 、 … 、 mc100 ,假如用绝对路径,要写 100 行程序,用动态路径就非常方便,因为这些实例名有一定的规律,开头两个字母是一样是,都是 mc ,后面的数字可用一个变量 n 来表示,因为变量是可以变化的,表示如下:
_root[“mc”+n]
  Flash 中的关键字 this 代表自己,如果不用 _root ,可用 this 来指定,如:
this[“mc”+n]
  使用 this 的前提是不使用其它路径,就是指当前路径,这里指的是主场景。
  使用动态路径时也可以用相对路径,如:
_parent[“mc”+n]
  如果有多重路径,要访问主场景下的 mcA 下的 mc1 到 mc100 ,可以这样表示:
_root.mcA[“mc”+n]
  范例 2-15 :使用动态路径批量更改影片剪辑的属性
  ( 1 )打开 Flash MX 2004 ,新建一个 Flash 文档。
  ( 2 )在主场景的【图层 1 】上建立五个影片剪辑,实例名分别为 mc1 、 mc2 、 mc3 、 mc4 、 mc5 。
  ( 3 )新建一层,在此层第 1 帧上输入下列代码:

var n = 1; 
// 定义变量 n ,初始值为 1 

  ( 4 )在第 2 帧插入空白关键帧,输入下列代码:

_root["mc"+n]._visible = false; 
// 设置影片剪辑实例为不可见 

  ( 5 )在第 3 帧插入空白关键帧,输入下列代码:

n += 1; 
// 变量 n 加 1 
gotoAndPlay(2); 
// 跳到第 2 帧并播放 

  ( 6 )测试影片,可以看到全部的影片剪辑实例都变化不可见。

  源文件见“ 2-15.fla ”(文件路径:配套光盘 \part2\ 源文件 \2-15.fla )。

  分析 : 此范例中,在第 1 帧中定义一个初始值为 1 的变量 n ,当运行到第 2 帧时,因为 n=1 , _root["mc"+n]._visible = false 的作用是相当于 _root.mc1._visible=false ,所以 mc1 变为不可见。运行第 3 帧, n 加 1 ,变为 2 ,然后跳到第 2 帧,使 mc2 变为不可见。由于第 2 和 3 帧不断循环, n 不断加 1 ,使场景上影片剪辑实例一个个变为不可见。
试一试: :把第 2 帧上代码改为:

this["mc"+n]._visible = false; 

  测试影片看看效果。
  动态路径在实际编程中的运用非常广泛,它大大提高了程序的编写效率,有关动态路径的更多应用将在后面的章节中讲解。

posted @ 2006-05-06 11:07  kchen  阅读(384)  评论(0编辑  收藏  举报