分享

FLASH中变量与影片剪辑的命名讲解

 非学无以成才 2014-01-15

   最近看到很多文章里面的代码都被不同程度地误解过,使得有时候不得不把说过的话再详细说一遍.而这其中最常见的一个问题是大家对代码里面的影片剪辑的名称没有搞清楚.以至于在使用高手写的代码的时候实现不了效果.所以,我觉得有必要把我们常提到的几个名称概念说一说,使初学AS的朋友能够更好地理解代码的意思.

一、几个基本概念:

MC:Movie Clip,影片剪辑的简称。而MovieClip是一个影片剪辑对象(这里不讨论)。

btn:Button,按钮简称。同上Button也是一个按钮对象(这里不讨论)。

主场景:就是最顶端的场景,也是新建一个文件时出现的场景

二、影片中的名称解析

影片中有三种名称,如图:

1、影片剪辑在库中的名称。(图一)
2、影片剪辑在场景中的名称,即通常所说的“实例名”,没有命名的时候用灰色显示“<实例名称>”(图二)
3、影片剪辑链接的名称。(图三、图四)

三个名称中,最常说的就是第二个“实例名”,我们常用MC_name,mc_name等来代替。这个命名是给场景中的一个确定的MC对象(或btn对象)命名,而只有这样命名后才能对该对象进行控制。注意,这个名称不是MC在库中的名称! 例如:mc_name._x=50;意思是一个实例名为mc_name的影片剪辑(或按钮)的横坐标等于50。而所谓的“mc_”不是命名的固有前缀,你可以写abc._x=50;。

另外一个就是链接的名称,如图所示,这个名称是用在某些特定的语句中的,如attachMvoie()语句。
而影片剪辑在库中的名称则只是库中的一个标志而已,它在代码中没有什么作用。
例如,我们把一个MC的库名称名命为abc,然后拖一个实例到主场景中,并命名为bcd,再把链接的名称命名为def。(提醒一下,链接时,默认的链接名称就是库中的名称,可以改动。)。
这样做好以后,把下面的代码复制到主场景中的第一帧:

attachMovie("def","efg",1);//将链接名def改为efg
with(efg){
  _alpha=30;
  _x=20;_y=300;
}//对efg的透明度和位置进行了设置
bcd._alpha=60;
abc._alpha=100;

Ctrl+Shift+Enter测试,调出调示器,按下调示器上右上的绿色“开始”键。
你会在左上的框中看到各实例。

其中没有一个叫abc的MC。而会有一个叫efg的MC出现在(20,300)的位置,其透明度为30.

由这个实例可以明显的看出三个名称在AS代码中的应用,和相应的效果了吧?

三、变量的命名原则:

1、变量必须是以字母或者下划线开头,其中可以包括"$"、数字、字母或者下划线。如_mcMc,worl$dcup都是有效的变量名,但是!go,2up,$food就不是有效的变量名了.(这里注意变量的首字符和中间字符)

2、变量不能和保留关健字同名(注意Flash是不区分大小写的),并且不能为true或者false.

3、变量在自己的有效区域里必须唯一.

另,再给出保留关键字列表:
break For New var Continue Function Return void delete

If This while else In Typeof with

以上规则我想在任何一本介绍AS的书中都有,这里再写出来也是为了初学者方便查阅.

濠仔参与讨论:函数的命名宜用动宾结构~如lineTo,moveTo,creatEmptyMovieClip,而且命名时首字母小写,其余的单词首字母大写,mc一般用如mc_id等表示,如mc0,mc1,mc_0,mc_1等。button一般用btn_purpose如btn_play,btn_stop,btn_pause等,呵呵,其实个人喜好有关吧~我是跟着macromeida走的。

还有,macromedia有个习惯……所有的代码都是加在帧上的……(除了些组件要在PROPERTY面板设置参数)。
希望大家也养成这个习惯。

四、文本框的命名

刚刚看见一篇贴子,发现还有一个重要的问题没有提到,就是文本框的名称问题。

如图,框一是实例名称,框二是变量名称。

如何理解?实例名称与变量名称有什么不同呢?

简单来说,实例名称引用的是整个文本框,而变量名称是指的文本的具体内容。这里的文本框指的是输入文本和动态文本,而不是静态文本。

在这里我想仅就名称问题说说。

比如,我们新建一个文本框,把它调成“动态文本”(如图的左边下拉菜单,而输入文本与之相类,故略去),在实例名称里面输入“abcText",在变量名称里面输入“x”。

OK,现在把下面的代码复制到第一帧:

abcText._x=100;
abcText._y=100;
x="i am a flasher";

可以看到,文本框到了(100,100)的地方,而里面显示“i am a flasher”

RedChimae参与讨论: 要是我对文本框的实例命名的话我会这样来命名:txtName。其中Name是该文本框的含义,而txt是文本框的英文缩写,至于文本框的变量命名仍然遵循变量的命名规则。

[参加讨论]

[闪客帝国注:本教程来源于闪客帝国论坛-教程提交与交流,经闪客帝国编辑整理而成。]

(完)

叶子树:www.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多