`
fantom
  • 浏览: 140673 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

入手as3第一天

阅读更多
初学者在学习AS3时会遇到什么样的问题呢?只有从初学的角度来实践,才能知道,package 这个高手们必玩的内容,对初学者来说或许就有一些困惑。 
包(package)的概念在AS2中就已经存在,它表示硬盘中的一个目录结构,该目录结构是用来分类存贮各种类文件的。在AS3中这个概念仍旧可以理解为是一个路径,或是目录结构,包的名称也就是你的类所在的目录位置。 
  如果类文件和fla文件保存在同一个目录位置中,那么就不需要为“包”指定一个名字。比如:我们先建立这样一个 MyMsg.as 类定义文件,文件中输入以下的代码: 
package { 
public class MyMsg { 
public function showMsg () { 
trace ( "I'm in the same place with fla file."); 
} 
} 
} 

  然后在主场景中建立这个对象的实例,并对它的方法程序 showMsg进行调用。 
var msg:MyMsg = new MyMsg(); 
msg.showMsg(); 
  将fla 文件与类文件保存在一起,运行之后可以看到,输出窗口中将输出我们设定好的内容。 
  在文件保存的位置上,我们建立一个目录比如叫 dzxz,在它里面再建一个目录比如叫 as3,在dzxz\as3目录里新建一个类文件叫 MyMsg2.as,它位于一个目录结构中,所以需要指定它的包名称,类代码写成如下形式: 
package dzxz.as3 { 
public class MyMsg2 { 
public function showMsg () { 
trace ( "I'm in the package of dzxz.as3 !"); 
} 
} 
} 
  在主场景中若要使用包中的MyMsg2类,就必需先导入包,用import 语句,添加一行导入语句,代码改为: 
import dzxz.as3.MyMsg2; 
var msg:MyMsg2 = new MyMsg2(); 
msg.showMsg (); 
  (在测试时发现,如果包中的类名和当前目录下的类名一至时,当前的类文件优先被使用,所以包中的类名改成 MyMsg2) 
通过前面的例子可以发现,包名称是写在 package和{之间的,类文件的名称MyMsag.as 是和它里面的类名称MyMsg 保持一致的。如果使用了包名称,就必须用目录结构来存放类文件,这做的好处是类多的时候不容易搞混。 
(转载自独自行走的天空.blog)


addFrameScript的功能是允许你指定在flash player播放头播放到指定的位置时触发事件.这个方法可以接收四个参数,但目前只知道其中的前两个.
语法:
MovieClip.addFrameScript(frame:uint,notify:Function)
用法:
function output()
{
trace('播放头已到了第10帧');
}
//帧数的计算是从0的位置开始的,所以在使用addFrameScript的时候9代表的即是第十帧.
addFrameScript(9,output);

实际上addFrameScript()还可以接收任意多组的参数.如下:

MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method);

也就是你说可以同时指定多组触发事件,在1,2,3帧上同时指定触发的动作,如果有不止一个动作事件指定在相同的一个帧上,那么,只有后者的动作会被触发.
如果要移除动作:
MovieClip.addFrameScript(0,null)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics