发新话题
打印

最常用的Flash语句(汇总)

最常用的Flash语句(汇总)

  1、按钮事件处理

  box_btn.onPress=function(){

  trace("ok");

  };

  按钮实例名称.事件处理方法=function(){

  //处理程序

  };

  例如:

  n=1

  box_btn.onRelease=function(){

  n=n+1

  trace("n="+n);

  }

  当按钮被点一下的时候,Output窗口会输出:"n=2"

  onClipEvent(load){

  stop();

  }

  以上是影片剪辑的事件处理函数。"()"的内部是事件。

  在一个Flash里在第一个场景里调用第二个场景,

  要在第一个场景里需要调用的地方加个按钮,然后在按钮上写下如下代码:

  on (release) {

  tellTarget ("_root") {

  gotoAndPlay ("mm2", 1);

  }

  }

  其中,"mm2"是第二个场景的MC的名称。

  on (release) {

  loadmovIE("fz3.swf",1);

  setProperty("fz3.swf",_x,100);

  setProperty("fz3.swf",_y,100);

  _root.createEmptyMovieClip("Card Game");

  mc.loadMovie("fz3.swf");

  mc._x=0;

  mc._y=0;

  }

  fz3.swf是需要调入的SWF文件,_x,_y是坐标轴

  Card Game是SWF中MC的名字

  on(release)结构只能用于按钮,

  其他相关的几种用法如on(press)、on(rollOver)、on(rollout)、on(dragOver)、on(dragOut)等。

  2.else

  对if语句可以进行扩展,使用else执行条件不成立(比较表达式为false)时的代码,如下所示:

  if (x == 9) {

  gotoAndPlay(15);

  } else {

  gotoAndPlay(16);

  }

  你也可以使用else if语句将if语句更推进一步,如下所示:

  if (x == 9) {

  gotoAndPlay(15);

  } else if (x == 10) {

  gotoAndPlay(16);

  } else if (x == 11) {

  gotoAndPlay(20);

  } else {

  gotoAndPlay(25);

  }

  你可以让if语句想要多长就有多长,你也可以使用else if语句对别的变量进行比较,如下所示:

  if (x == 9) {

  gotoAndPlay(15);

  } else if (y<20) {

  gotoAndPlay(16);

  } else {

  gotoAndPlay(25);

  }

TOP

  3.复合比较

  你可以在一个if语句中对几个比较表达式的值进行判断,

  比如说你希望在x为9并且y为20时跳转到第10帧,可以使用如下所示的脚本:

  if ((x == 9) && (y == 20)) {

  gotoAndPlay(10);

  }

  逻辑与运算符&&将两个比较表达式联接在一起成为一个复合表达式,

  当两个表达式的值都为true时复合表达式的值才为true。

  每个比较表达式都需要添加独立的括号以便Flash能正确识别。

  在Flash的早期版本中使用and执行逻辑与运算,现在已推荐不使用。

  你也可以使用逻辑或运算符||将两个比较表达式联接在一起成为一个复合表达式,

  只要有一个表达式的值为true,复合表达式的值就为true。如下所示:

  if ((x == 7) || (y == 15)) {

  gotoAndPlay(20);

  }

  在该脚本中,只要x为7或者y为15,或者两者都成立,结果都是跳转到第20帧。

  只有当两者都不成立时,才不会执行gotoAndPlay命令。

  3.4.6 函数

  到现在为止,我们都是将脚本放在影片的第1帧中。

  如果程序相当复杂,再放在同一帧中就使脚本显得太庞大了。

  函数使你可以组织需重用的代码,并放在时间轴中,例如:

  function myFunction(myNum) {

  var newNum = myNum+5;

  return newNum;

  }

  函数以关键字function开头,function后面是函数名。

  与变量名相似,你可以指定自己的函数名,最好将函数名取得有意义一些。

  函数名后面的括号容纳该函数的参数,所谓参数也是一个变量,它的值在调用该函数时予以指定。

  一个函数可以有若干参数,也可以没有参数。无论有没有参数,函数名后都应紧跟一对括号。

  大括号中的部分是函数体,在函数体中创建了一个局部变量newNum,

  将myNum加5的结果设置为newNum的值。

  如果你将10作为参数传递给该函数,newNum的值就是15。

  return命令仅用于函数中,使用return结束一个函数并返回函数值。

  此处,newNum是用return命令返回的函数值。

  要使用函数,就需要调用它,如下所示:

  var a = myFunction(7);

  该语句创建一个新的局部变量a,将7作为参数调用函数myFunction,并将函数返回的结果作为变量a的值。

  被调用的函数开始运行,创建一个局部变量myNum,将7作为myNum的值,

  然后执行函数体内的代码,使用return命令将newNum的值12返回给函数的调用者。这时,a的值变为12。

  函数最大的作用体现在它可以重复使用。如下所示的3行代码产生3个不同的结果:

  trace(myFunction(3));

  trace(myFunction(6));

  trace(myFunction(8));

  运行以上代码,你将得到结果8、11和13。

  使用函数还有一个好处就是可以只改变函数中的一处,从而影响所有调用该函数的命令。

  例如,将函数myFunction中的var newNum = myNum+5改成var newNum = myNum+7,

  上面3个调用该函数的命令的结果将变成10、13和15点语法的另一个用途是指定影片剪辑的属性。

  如下面的语句将影片剪辑myMC的_alpha(透明度)属性设置为50%:

  myMC._alpha = 50;

  你还可以在影片剪辑中使用点语法定位根(root)中的一个全局变量。

  如果你在主时间轴中创建了一个全局变量globelVar,

  而要在影片剪辑中使用这个全局变量,可以使用如下的语句:

  trace(_root.globleVar);

  stop:使影片停止在当前时间轴的当前帧中。

  play:使影片从当前帧开始继续播放。

  gotoAndStop:跳转到用帧标签或帧编号指定的某一特定帧并停止。

  gotoAndPlay:跳转到用帧标签或帧编号指定的某一特定帧并继续播放。

  nextFrame:使影片转到下一帧并停止。

  prevFrame:使影片回到上一帧并停止。

  stop命令常常用在帧动作中,以使影片停止并等待用户控制。

  其他命令常常用在按钮的事件处理函数中。

  如果gotoAndPlay命令中只有一个参数,Flash将认为它代表某个帧;

  如果有两个参数,第1个参数将作为场景名,第2个参数代表该场景中的帧。

  要定位包含某一对象的上一级对象,可以使用关键字_parent。

  如果一个影片剪辑是包含在主时间轴中,在影片剪辑中使用_parent和_root的效果是一样的。

  如果影片剪辑与主时间轴相差两个层级,即当影片剪辑包含在另一个位于主时间轴中的影片剪辑中,

  这时在该影片剪辑中使用_parent指代的是它上一级的影片剪辑,

  而_root是指它上两级的主时间轴。在主时间轴中不能使用_parent,因为主时间轴没有上一级。

TOP

  9.详细了解GOTO语句

  prevFrame()

  跳至并停止在前一祯。

  nextFrame()

  跳至并停止在下一祯。

  prevScene()

  跳至并停止在前一场景的第1帧。

  nextScene()

  跳至并停止在下一场景的第1帧。

  gotoAndPlay([scene,] frame)

  跳至scene场景(省略表示当前场景)的frame帧并播放。

  gotoAndStop([scene,] frame)

  跳至scene场景(省略表示当前场景)的frame帧并停止。

  10、了解MC的各种可改写的属性

  _x 中心点所在相对X坐标(象素单位)

  _y 中心点所在相对Y坐标(象素单位)

  _xscale 横向缩放比例,初始为100

  _yscale 纵向缩放比例,初始为100

  _rotation 相对旋转角度(度单位)

  _width 相对显示宽度(象素单位)

  _height 相对显示高度(象素单位)

  _alpha 显示透明度(0~100)

  _visible 是否可见

  _focusrect 是否显示焦点框

  _name 实例名称

  11、三大纪律:1>写代码时一定要用英文(如EN CH)输入法

  2>必须要有唯物主义思想,没有加载的MC是不可以更改它的属

  性,更不可以写代码去控制它。这个问题较难掌握,高手有时也会

  犯,道理就是先有吃的才能请客吃,啥也没有请客吃什么呢

  3>操作什么一定要选什么(实际上哪个软件也要这样)。在MX中加代

  码时如不选,就一定要写明名称,实际上也是一种先择。

  12,八项注意:1>按钮不能盖着输入文本,动态文本和输入文本域不能盖着按钮

  2>用loadMoie时LEVEL1及以上的文件尽量少用大隐型按钮

  3>从一个文件中复制MC实例到别一个文件中时,尽量复制帧,而不能直接

  复制实例,

  4>从一个文件中复制MC实例到别一个文件中时,要先把目标文件中的符

  号库中原有的符号,装进资夹里,很多网友这个问题上上过当吧?


  需要记住一个动作的作用时,可在动作面板中使用comment(注释)语句给帧或按钮动作添加注释。如果你在协作环境中工作或给别人提供范例,添加注释有助于别人对你编写的脚本的正确理解。

  在动作面板中选择comment动作时,字符"//"被插入到脚本中。如果在你创建脚本时加上注释,即使是较复杂的脚本也易于理解,例如:

  on(release){

  //建立新的日期对象

  myDate = new Date();

  currentMonth=myDate.getMonth();

  //把用数字表示的月份转换为用文字表示的月份

  monthName = calcMoth(currentMonth);

  year = myDate.getFullYear();

  currentDate = myDate.getDat();

  }

  常量

  常量有其值永不改变的属性。常数用大写字母列于动作工具箱中。例如,常数BACKSPACE、ENTER、QUOTE、RETURN、SPACE和TAB是Key对象的属性,指键盘上的键。要测试用户是否在按Enter键,可使用下面的语句:

  if(keycode()= =key.ENTER){

  alert = "你准备好了吗?"

  controlMC.gotoAndStop(5);

  }

TOP

不是高手,从别人那里转的文章,我不会用FLASH。

TOP

发新话题