您现在的位置是: 软件 > 设计在线 > Flash > 基础教程 > 正文


-网页表格制作速查手册
-Visual C++ MFC/ATL开发
-Visual C++ 数据库开发
-打开闪烁的新世界:体验Flash MX

体验Flash MX(2):LoadMovie和LoadVars
2002-03-21· ·Demon.S··DnVsystem

1 2  下一页

  从上一篇文章中我们知道,新的Flash MX在程序员/设计师的界面上做得很好,甚至考虑了他们之前的切换问题。你所要做的只是选择Window-> Panel Sets->xxxx,由于接下来我们的需要,这个xxxx你需要选择Developer。

  新改进的Flash ActionScript是根据欧洲的ECMA-262编码标准写的,在Flash MX中,已经剔除了Flash 5和以前版本的所有不符合这个标准的语句和代码,剩下的一些有的被优化有的继续保留了,也就是说这些代码从此进入了Macromedia的历史(该公司也表示建议使用标准化的语句)。

  新的Action Script有两类:一类是单独功能的语句,例如运算符,变量,属性,方法,流程控制语句等;而另一类即是面向对象和新加入的部件概念。
  面向对象和新加入的部件概念主要又分4小类:Core;Movie;Client/Server;Authoring。
  前三类重新对v5的对象进行了分类,并加入了Stage、System、Microphone,Camera,NetStream,NetConnection,Video等新的对象,Button,TextField,TextFormat等常用的物体现在也可以通过ActionScript来作为基本对象控制;而且v5常用的LoadVars()已经被单独分离出来作为对象并且具有很多常用的方法和错误状态,这是值得兴奋的呢……还有就是配合Authoring 工具使用的Authoring类别,由于Flash MX整合了Generator(又一个不幸进入历史),加之以后Flash MX的服务器端将由ColdFusion MX担任,可见今后的Flash网络可以配合自身具有一些Generator的一些功能来实现强大的网络体系结构。

  本文的重点部分是作为交互作用的LoadMovie()ActionLoadVars对象,我们也通过实例的形式来看看其魅力如何。

  LoadMovie();LoadMovieNum();

  你还在Flash5中为了动态导入JPG图片而痛苦地把上百个图片转换成Swf格式呢吗?现在请停止那机械劳动吧。升级为Flash MX之后,我们可以尝试下面的例子:

  首先,用Rectangle工具在场景中适当的位置画一个正方形,接着按F8把它转换为标号,按钮。(图1)

(图1)

  接着,选中这个按钮,并按“F2”打开Action面板,输入下面的AS:

  on (release) {
   loadMovieNum("boy.jpg", 1);
  }

  注意,源文件和jpg文件需要放入同一目录中,接着图片会在按钮释放的时候被读入场景的第1 level中。(图2)

(图2)

  测试结果表明Flash MX的LoadMovie宣称支持JPG为事实。

  LoadMovie()和LoadMovieNum()有什么不同?如果你在Flash 5中没有解决这个问题,下面的修改会给你满意的解释。

  修改刚才的按钮Action:

  on (release) {
   if (mc == undefined) {
    _root.createEmptyMovieClip("mc",1);
   }
   mc._x=random(300);
   mc._y=random(300);
   mc.loadMovie("boy.jpg",1);
  }

  由于懒惰,你甚至连多做一个空MovieClip都不愿意的时候,那么上面的if语句可以帮你,当场景中不存在mc这个MovieClip的Instance时,引入Flash MX的新MovieClip的方法createEmptyMovieClip()来动态产生一个MovieClip,叫做“mc”并置入Depth1。然后用loadMovie方法读入jpg文件,你可以发现MovieClip的loadMovie方法是没有Num字样的,上面问题的答案自然就可以解释为不读入MovieClip中的Swf/Jpg是loadMovie,反之既是loadMovieNum,上面最后一条语句也可以写为loadMovie(“boy.jpg”,”mc”);。

  下面做一个恶作剧,来让按按钮的人不知道如何按自己的按钮。这个时候你可以加入上面已经加入的设置_x/_y属性的Action。结果我们发现一个奇怪的事情,当图片出现在按钮之上的时候,该按钮的事件还是会被响应,而没有达到我们恶作剧的效果,不知道这个属于Bug还是MM早看透了我的恶作剧,不过下次我们可以尝试动态产生两个按钮,看看相应优先级(后面我们会讲到Button对象)。(图3)

(图3)

1 2  下一页

■ 相关内容
 体验Flash MX(10):服务器/客户数据存储控制
 体验Flash MX(9):Button对象
 使用Flash MX制作动态相册
 体验Flash MX(8):控制时钟Timer
 用Flash MX制作飞舞的蝴蝶
 用Flash MX制作舞动的龙
 体验Flash MX(7):及时监听对象Listener
 体验Flash MX(5):网络数据和文本相关操作
 体验Flash MX(4):用代码绘图
 体验Flash MX(1): 打开闪烁的新世界
 Macromedia Flash MX的10个新特性
 Macromedia隆重发布Flash MX
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!