PDA

查看完整版本 : 初学flash 代码


ㄒωの寓言
2007-06-15, 12:01 PM
初学flash 代码
来源: 作者: 发布时间:2007-04-25 字体:【大 中 小】
【摘 要】
  本文教你认识flash 代码,对各种代码做了诠释,并有flash源代码下栽,供大家研究学习用。
先来说一下代码的使用,它的使用有两种,一个是帧动作,一个是对象动作,帧动作就是在帧上加代码,对象动作就是在被选中的对象上加上代码(说的菜了点),怎么加代码呢,很简单,帧动作就是选中那一帧然后“窗口”——>“动作”,打开动作面板,这个面板的左侧是可以用的代码,右侧是代码框,也就是显示你所输入的代码,在代码框的上面是当前代码内的一些参数。给对象加代码也是一样的操作,先选中对象,然后操作就和前面一样了。
  第一天,先学两个很简单的:gotoAndPlay和stop
  stop是flash中最常用的代码之一,它的作用就是停止当前正在播放的动画。
  gotoAndPlay也是最常用的代码之一,它的作用是转到并且播放指定场景的指定帧。
  下面的附件里是三个这两个代码相结合使用的例子。
  gotoAndStop
  今天我们来学gotoAndStop
  这个代码和gotoAndPlay一样,gotoAndStop是转到并停止指定场景的指定针
  play
  这次来学习play
   这个代码大家应该差不多都会用,每一个动画几乎都会用到它
  大多都用在按钮里
  stop
  这个代码也是最常用的一个,也是几乎每个动画里都会用到的,它的作用就是停止当前正在播放的动画。
  stopAllSounds
  这个代码的作用是关闭当前播放的动画中所有正在播放的声音
  按钮代码“on”
  今天学习一下按钮的代码,但并不是全部,因为按钮可以有很多种动作,这次学习的是按钮常要用到的"on"
  它的格式是:
on(鼠标事件){
  语句;}
  在动作面板的标准模式下给一个按钮加代码时这个格式的语句会自动出现,用不着自己加的。
  下面是几个鼠标事件的源文件
附件: on1.rar
  fscommand
  前面我们学习了动作面板中“影片控制”下的代码,从今天起我们来学习下一个单元——“浏览器/网络”下的代码,第一个就是fscommand
这个代码具体我也说不好,我个人理解的就是一个发出命令的代码,比如按一个按钮就可以关闭当前的flash播放窗口,这个代码就要用到它了,
  下面还是给出几个源文件大家来自己体会一下吧
  这里只有三个源文件,其他的选项大家可以自己做一下试试看会有什么效果
  注:exec大家可能不好看出效果,它的功能是在播放器内执行应用程序
附件: fscommand.rar
  getURL
  这个代码对于大家来说应该不算很陌生
  它的作用是:将指定的URL的文档(也就是网页)加载到窗口中
  格式:
getURL("网址","窗口","变量");
  下面是四个参数:
  _self:指定当前窗口当前框架
  _blank:打开一个新窗口
  _parent:当前框架的父级
  _top:当前窗口中的顶级框架
  注:网址必须要写全,如:http://www.163.com
  就要写成这个样子,一定要把http://写上
  下面是几个源文件,大家可以将这四个参数分别用进去试试看
附件: geturl.rar
  loadmoive
  loadmoive,有很多人都在帝国问过这个代码怎么用,下面我们就来简单的学习一下
  这个代码是一个载入的作用,把指定的swf,jpg等文件加载到flash player中
  它的格式:
loadmoive("要加载文件的路径或网址",目标/级别,变量);
  这里要加载的文件必须是和你这个代码所在文件是同一目录的,如果不是,就要写上绝对路径(这里哪点说的不对请大家指出,共同学习)
  比如,cc.swf文件和你这个源文件在同一目录下就可以写成
loadmoive("cc.swf");
  如果不在同一目录下就要写上路径了
loadmoive("c:\cc.swf");
  下面是两个源文件,它们都加载了cc.swf
附件: loadmoive.rar
  loadvariable
  说起来这个代码和前面说的loadmoive差不多,都是载入一个文件到flash中,它载入的是文本文件,CGI脚本,ASP,PHP等
  它的格式:
loadvariables(url,级别,方法);
  这个代码我几乎是没有用过,现在才是现学的,所以还有很多不会的地方,希望高手看到这个帖子后可以补充一下。
  下面来说它的用法:
  我用今天的源文件来说明一下吧,源文件里的效果是点击按钮就会在文本框中显示a.txt的内容,那么代码要加在按钮上,在url里输入a.txt,这个和loadmovie一样,不一样的是后面要选择的是“级别”而不是“目标”了(这个代码的“目标”不知道怎么用)
  注意:这里特别要注意的就是你的文本框的变量名一定要和载入的文本中的变量名一样,我这里文本框的变量名是output,载入的文本文件中的内容是output=abc,这里的ouput就是变量名
  下面是源文件,大家来一起理解一下吧
附件: loadvariable.rar
  unloadmoive
  今天学习的unloadmoive和前面的loadmoive正好相反,它是卸载已经加载的文件
  格式:
unloadmoive("目标");
  其他的个人觉得不用多说了,下面是一个源文件,很能说明问题
附件: unloadmoive.rar
  duplicatemovieclip
  今天我们来一次学习两个代码:duplicatemovieclip和下面的setproperty
  这两个代码一般是在一起使用的(个人想法)
  先来说duplicatemovieclip
  它的作用就是复制影片剪辑(MC)
  格式:duplicatemovieclip(目录,新影片名称,级别);
  其中的“级别”就是复制的MC的叠放次序,低的在高的之下,比如级别为1的就被盖在级别为2的MC之下
  setproperty
  它的作用是当影片播放时改变影片的剪辑的属性值。
  格式:setproperty(目标,属性,值/公式);
  其中“目标”的意思是要被改变属性的MC的的实例名称
  “属性”就是要设置的属性
  “值/公式”就是所要改变属性的值(改变之后的)或者用一个计算公式来代表这个值。
  下面是这两个代码组成的效果的源文件
附件: 汇蟀.rar
  onclipevent
  今天学习的这个代码大家是非常熟悉的,前面的实例中也都用过
  它是影片事件,作用是当触发指定的影片事件时则执行下面的语句。
  格式:
onclipevent(影片事件){
  语句;}
  removemovieclip
  这个代码是删除用movieclip对象的attachmovie或duplicatemovieclip方法创建的或者用duplicatemovieclip动作创建的影片剪辑(MC)
  说白了duplicatemovieclip和removemovieclip的关系就像loadmoive和unloadmoive的关系一样。
  格式:
removemovieclip(目标);
  这里的“目标”就是用duplicatemovieclip创建的MC的名称
  因为我一直没有做成功,下面这个源文件是圣鱼帮我做的,在此谢谢他了
附件: 汇蟀.fla
  startdrag
  这个代码是用来拖动影片剪辑(MC)的
  格式:
startdrag(目标,[锁定中心点,左,上,右,下]);
  这个代码很简单,请看下面的源文件
附件: startdrag.rar
  有的人问过这样的问题如何把按钮的手型弄没,好了今天我给大家来一段好吗?
  useHandCursor这个属性就是改变鼠标的手型
  它的值是个逻辑值 一个是true 一个是false
  下面是一个例子
  BY tongxiao198546
附件: 罡泓沱-2.fla

stopdrag
  昨天我们学了stardrag,今天就要学stopdrag了,这两个代码是一对,stopdrag就是释放当前鼠标拖动的对象。这个很简单,下面是源文件大家看一下应该就能都理解了,这两个代码学习完以后大家应该就能自己做一个简单的拼图游戏了
附件: stopdrag.rar
  updateAfterEvent()(多谢bluepoint和圣鱼帮助)
  updateAfterEvent(clipEvent)
  只能用在影片片段的动作里,使得一处理完clipEvent事件就刷新影片显示。虽然鼠标和影片片段事件当事件一发生就会执行,但由于影片FPS(每秒显示的帧数)的限制,只有当播放到下一帧时事件所作的改动才会被显现,而这时事件可能已被执行了多次。为了使事件实时作用,就可以在事件处理中调用updateAfterEvent,从而使动画显示平滑
  这是源文件,AS在方块中,把updateAfterEvent();去掉比较一下,非常明显
附件: 罡泓沱-8.fla
  delete
  今天我们正式进入变量的学习!!!!
  今天要学的代码是delete,这个单词大家应该都认识,没错,就是删除的意思,在变量的代码里出现它大家也能猜是什么用途吧,那就是删除变量!!!(嘻嘻,刚开始学变量第一个学的就是删除变量)
  别的不用多说了,看源文件吧
  注意:源文件中定义变量是用的var,也是变量中将要学的代码
  这个源文件的作用是当鼠标按下时上面的动态文本框出现赋给它的变量的值(点中这个文本框,再去看属性面板,在右下方有一个变量文本框,在那里写这个文本框所指的变量的名称)
附件: delete.rar
  var
  这个代码就是定义变量的作用
  格式:
var 变量1 [=值]
  简单的一个式子就是这样:var 变量=变量的值
  源文件上面那个代码中也有
  with
  这个代码的作用是指定一个对象,并使用语句参数计算对象中的表达式和动作。
  格式:
with(对象){
  语句;}
  下面的源文件的作用是设置影片剪辑在场景中的x和y的位置,其中_x和_y都是在专家模式下写入的
附件: with.fla
  break
  这个代码常用在循环体和switch……case语句中,它的作用就是退出循环体的其它部分
  flashboy82:
  我来补充两句,,,
  举例来说明break的用法,,,,下面的代码不能用到真正用途上只供学习者参考
if(i<=10) then{
gotoandplay(20)}  else{
break};
  说明如果变量i 小于等于10那么就跳到第20针运行程序。。否则跳出该程序。
  switch……case……default
  这是三个代码,都可以在“条件/循环”里找到格式:
switch(表达式){
  case 条件;  语句;  [default 条件;   语句;]}
  它们的意思是,如果switch后面的表达式的结果等于case后面的条件的话就执行这个case下面的语句,如果加了default的话,就是前面的case都不付合就执行default下面的语句。
  下面是源文件
  它的意思是如果cc1中输入的是1,那么cc中就显示“蓝色茶壶”,如果是2,就显示“绿茶”
附件: switch.fla
  continue
  default完了就改continue了吧
  看茶壶忙的
  兄弟来帮帮忙!
  教程不会写,直接上源文件吧。呵呵!
  BY 孤星寂影
  这是附件(源文件)
附件: continue.fla
  do……while
  因为机子有现成的源文件,就直接传来吧,教程——还烦各位老闪们添上吧。嘿嘿!~
附件: dowhile.fla
  while
  这个代码的作用就是循环,每一次循环处理,都会先看是否满足条件,如果满足就执行下面的语句,如果不满足就跳出循环。
   格式:

while(条件){
  语句;}
  下面的源文件是从1加到100的效果
附件: while.fla
  else
  这个语句的作用是判断,,,,
  例子
if(password==passwrod1){
gotoandplay(2)}  
else{
gotoandplay(3)}
  BY flashboy82
  elseif
  和if一起使用作用也是判断
   例子
if(password==password1){
gotoandplay(2)}   
elseif(passwrod!=password1){
gotoandplay(3)}
   程序说明:
  如果两个密码相等跳到第二针执行,,,否则如果两个密码不相等跳到第三针执行。。。
  一般这样的句子是用在flash配合后台做登陆页面用的,,,
  BY flashboy82
  if……elseif……
  就是说如果第一个条件付合就作第一个if后的语句,否则如果第二个条件付合就执行elseif下面的语句,这样以此类推到第N个条件
  for
  这个也是一个循环语句
  格式:
for(初始值;条件表达式;变量更新表达式){
  语句;}
  初始值:设置一个变量的初值,用来循环,在源文件中可以看出来。
  条件表达式:当初始值的那个变量付合条件时就继续循环,否则跳出循环。
  变量更新表达式:当初始值的变量按一定的规律变更。
  下面的源文件还是从1加到100的效果
  注:其中i++的意思是i=i+1,上面的while的源文件中好像也有这个,在此说明一下。
附件: for.fla
  for……in
  flash帮助里的
  示例
  下面的示例使用 for..in 迭代某对象的属性:
myObject = {
name:'Tara', age:27, city:'San Francisco' };
for (name in myObject) {
trace ("myObject." + name + " = " + myObject[name]);
}
  此示例的输出如下所示:
  myObject.name = Tara
  myObject.age = 27
  myObject.city = San Francisco
   下面的示例将 typeof 运算符与 for..in 一起使用来迭代特定类型的 child:
for (name in myMovieClip) {
if (typeof (myMovieClip[name]) = "movieclip") {
trace ("I have a movie clip child named " + name);
}
}
  下面的示例枚举影片剪辑的子级,并将每个子级发送到其各自时间轴的第二帧。RadioButtonGroup 影片剪辑是一个父级,它具有多个子级:_RedRadioButton_、_GreenRadioButton_ 和 _BlueRadioButton。
for (var name in RadioButtonGroup) {
 RadioButtonGroup[name].gotoAndStop(2);
}
  BY 圣鱼
  第一个例子我是这样理解的:
  大括弧里面的语句被执行了3次,每次执行以前name依次被赋值为"name","age","city";
  可以再加上这样一行:
trace("name="+name);
就可以看到name在最后值为“city”;因此,in前面那个参数是字符串(string)属性的