查看完整版本: 51swim计算机互学班的第四课(三、编制代码)

liyuzhe0869 2008-6-16 20:16

51swim计算机互学班的第四课(三、编制代码)

编制代码之前要对需要控制的实例进行调整和命名,我们就来对六个按钮进行调整和命名。我们先用鼠标左键点击一个最左面的按钮,然后点击菜单项[窗口],再选[属性]项,再点一下级联菜单的[属性],就会出现相应按钮的属性面板,参看下图:

[attach]14694[/attach]
我用红矩形圈起来的文本框大家要注意填写,尤其是实例名称最重要,我们要用写脚本就得给每个实例起个与众不同的名字,注意,在这里字母的大小写是有区别的。至于它在库里的元件名可以不去理它,因为一个元件是可以充当若干次不同的实例的。下面两个红色矩形中的文本框是要对按钮的宽和高进行调整,它是与整个flash的大小相适应的,我这里把它们都定为30,别的就可以暂时不动了。请看下图:
[attach]14695[/attach]

大家可以看到按钮变大了一圈,一般地说,凡是按钮,习惯上加btn做后缀,这样可以采用复制和粘贴来加快同类代码的编制速度,例如,我们只要整明白一个按钮的格式,就可以依此类推地把另外5个按钮的格式照样复制出来,然后再对不同的地方加以修改。下面我把六个按钮的功能给大家说一遍,我先都给它们设置一遍。

liyuzhe0869 2008-6-16 20:47

按钮实例名称对照表

[attach]14696[/attach]
从左向右:
1、first_btn:首帧按钮,按动之后从当前帧回到首帧并停止在那里,实际上是真正意义的停止键;
2、prior_btn:前帧按钮,按动之后从当前帧向前移动一帧并停止到那里,如果当前帧是首帧,我们假设首帧和末帧是首尾相接的,那么,它的前一帧就是末帧,也就是最后一帧;
3、stop_btn:停止按钮,按动之后在当前帧停止,实际上它相当于以前说的暂停键;
4、play_btn:播放按钮,按动之后从当前帧开始播放;
5、next_btn:后帧按钮,按动之后从当前帧向后移动一帧并停止在那里,如果当前帧是末帧,那么,根据前面所说的首尾相接的原理,它的后帧应该是首帧;
6、last_btn:末帧按钮,按动之后从当前帧移到末帧并停止到那里。

liyuzhe0869 2008-6-16 21:38

增加个图层,放置一个动态文本。

这是用来显示播放头所在的位置的,播放到第几帧了。在2004年直到我这次出山前,体现帧序号都是制作一套数字序列的图片集,然后导入到舞台上,直到开始为播放界面增加了进度条后才开始用函数来生成它,回想起来自己够苯的。bb30)
[attach]14697[/attach]

liyuzhe0869 2008-6-16 21:47

怎样制作动态文本?

做动态文本的前期工作和静止文本没什么两样,关键是设置属性上除了和静止文本都有的字体、字号和加粗、倾斜、加
下划线等外,需要设置动态文本的名字。
[attach]14699[/attach]

1、选定文本工具;
2、在帧序号图层拖放成一个文本框;
3、点击菜单上的[窗口]|[属性]|[属性],打开属性面板。

[attach]14700[/attach]
大家看见了吧?原来文本有三种类型:静止、动态和输入。
静态的就是一旦确定下来就一成不变的,如落款、题目等就属于静态文本,它们使用的几率最大;
动态的就是根据播放的实际情况而变化的,我们所要表示的帧序号就是这样的动态文本;
输入的就是可以让操作者在播放后按自己的意愿敲入文本,比如用flash做一个登录界面,用户名和密码,就是输入式文本。
显然,我们只要在下拉组合框中选动态文本就可以了。

liyuzhe0869 2008-6-16 22:09

动态文本的其它设置

最重要的设置是它的实例名称:我输入的是my_number,这个就是个习惯,但尽量别用汉字,会点英文的用英文,不会英文的用汉语拼音。
另外需要设置就是文本的字体、字号的大小和颜色了,我把它设成了白色,这也是习惯。

[attach]14704[/attach]
我的设置提供大家参考:

[attach]14705[/attach]

liyuzhe0869 2008-6-17 10:44

其它辅助的信息也在这个影片剪辑元件中处理

比如题目、落款、logo等,为了缩短课时,我就不一一介绍了。还有一个相当重要的一步,我们要给已经成为实例的影片剪辑mcclip输入一个实例名字。点击一下舞台中的影片,然后点击菜单中的[窗口]|[属性]|[属性],就会出现它的属性面板,
请看下图:
[attach]14706[/attach]
我把这个实例名称定义为:my_movie。请看下图:
[attach]14707[/attach]

liyuzhe0869 2008-6-17 11:03

下面就进入ActionScript3.0的编制了。

我也是刚刚入门,但这个3.0比2.0及以前的脚本运行起来快10倍,值得我们去研究一下的。
大家先到库里双击一下mcclip影片剪辑元件,对它要给个预制代码,参见下图:
[attach]14708[/attach]

liyuzhe0869 2008-6-17 11:16

如何打开动作面板?

[attach]14709[/attach]
我已经在图上告诉大家怎么做了,用右键点击图层1的第一帧。这是会弹出一个菜单,见下图:

[attach]14710[/attach]
看见我用红矩形框标注的繁体“动作”二字了吧?点击键入动作面板,见下图:
[attach]14713[/attach]
我用红矩形标出了两个地方,左边这个框让大家进一步明确一下,什么是真正的讲AS3.0的书籍,当它涉及代码编制的时候,如果和我框起来的文字一样,那它就是真的,否则就是冒牌的,现在图书市场上书面上是flash CS3但书里面内容是老版本的占60%。我就上了一次当。另一个红矩形就是写代码的地方,请再上一层。

liyuzhe0869 2008-6-17 11:45

AS3.0的编制特点:

一个显著的特点,就是不允许直接给按钮设置代码了。这对象我和lcs来说是很残酷的,因为我们对这些都比较熟练了。但允许在图层的第一帧书写代码。
[attach]14714[/attach]
大家看我写了个[size=6][color=red][b]stop();[/b][/color][size=3][color=black][b],[/b]其实就是让mcclip元件作为实例的初始状态停止在第一帧。这样做的好处是可以在一个贴子里安放两个或以上个这样的flash动画,否则大家同时播放就闹人了。[/color][/size][/size]
[b][size=6][color=#ff0000][/color][/size][/b]
[b][size=6][color=#ff0000][/color][/size][/b]
[b][size=6][color=#ff0000][/color][/size][/b]

[b][size=6][color=#ff0000][/color][/size][/b]

liyuzhe0869 2008-6-17 12:12

AS3.0和AS2.0的区别

我也是刚刚接触,照本宣科也没意思,我觉得大家第一要知道它的执行速度比以前的版本高出10倍,这是我们要掌握它的目的。第二记住它不允许在按钮后面加动作代码了。第三记住它仍然允许在图层的第一帧书写代码;第四是它提倡把代码写在同flash项目文件的主文件名相同的*.as文件里。这是我们以后要给大家介绍的内容。下面大家从mcclip影片剪辑元件回到场景1,操作步骤见下图:

[attach]14715[/attach]
看见我用红矩形圈起来的场景1字样了吧?点击后就回到场景1了。如果刚才的动作面板碍事,可以关掉,也可以移到一边去。

[attach]14716[/attach]

liyuzhe0869 2008-6-17 12:34

把影片剪辑元件mcmovie嵌入到图层1的第一帧里。

1、用鼠标左键点击一下图层1的第一帧,把库里的mcmovie拖拽到舞台,并对齐。见下图:[attach]14717[/attach]

liyuzhe0869 2008-6-17 12:51

如何测试影片?

1、点击菜单项[控制],再点击[测试影片}:
[attach]14718[/attach]
2、点击菜单项[测试],点击[测试影片]:
[attach]14719[/attach]
3、最简单的办法是按键钮[b]Ctrl控制[/b]+[b]Enter回车[/b]。
大家分别用三种方法测试一遍。它是静止的画面,一个是我们预先让mcclip影片剪辑元件设置了在第一帧停止,并且又没给按钮编写任何代码,所以按钮可按,但按了也白按。下面的问题就到了关键的地方,在何处,如何编写代码了。

liyuzhe0869 2008-6-17 13:00

再插入一个图层,用来存贮代码,或动作脚本。

ActionScript的中文意思就是动作脚本。我们把这两个图层分别命名为“视频”和“脚本”,见下图:[attach]14720[/attach]
但这个脚本不是现在用的,是给以后做预加载程序用的,flash CS3有现成的预加载组件,不用自己编,这就是它的又一个优点。大部分朋友都可能有一个误解,认为版本越高越不好掌握,其实不然,版本越高,集成化越高,自己做的就越来越少了。我们回到mcmovie影片剪辑,我们把代码放到那里,能够简单一点。给这个元件新增一个图层,命名为“脚本”。
[attach]14721[/attach]

liyuzhe0869 2008-6-17 14:28

看看我写的代码

把下面的代码复制到图层脚本的第一帧里,再测试一下影片,如果您和我始终保持同步的话,就应该OK了。

[flash]http://www.51swim.com/mybbs/attachment.php?aid=14723[/flash]


import flash.display.MovieClip;
import flash.events.*;
mcclip.addEventListener(Event.ENTER_FRAME,onFrameHandler);
first_btn.addEventListener(MouseEvent.CLICK,first_btn_Click);
last_btn.addEventListener(MouseEvent.CLICK,last_btn_Click);
prior_btn.addEventListener(MouseEvent.CLICK,prior_btn_Click);
next_btn.addEventListener(MouseEvent.CLICK,next_btn_Click);
stop_btn.addEventListener(MouseEvent.CLICK,stop_btn_Click);
play_btn.addEventListener(MouseEvent.CLICK,play_btn_Click);
function onFrameHandler(e:Event):void{
my_number.text = mcclip.currentFrame.toString();
}
function first_btn_Click(e:MouseEvent):void{
mcclip.gotoAndStop(1);
}
function last_btn_Click(e:MouseEvent):void{
mcclip.gotoAndStop(mcclip.totalFrames);
}
function prior_btn_Click(e:MouseEvent):void{
if(mcclip.currentFrame==1){
  mcclip.gotoAndStop(mcclip.totalFrames);}
  else {
  mcclip.prevFrame();  
}
}
function next_btn_Click(e:MouseEvent):void{
if(mcclip.currentFrame == mcclip.totalFrames){
  mcclip.gotoAndStop(1);}
  else {
  mcclip.nextFrame();
}

}
function stop_btn_Click(e:MouseEvent):void{
mcclip.stop();
}
function play_btn_Click(e:MouseEvent):void{
mcclip.play();
}

liyuzhe0869 2008-6-17 14:35

这些代码编制是需要慢慢学的,还需要从基础开始学。

但大家可以接受我和lcs编好的现成代码,这是一种捷径,当然,您要想深入的研究,那也是不错的选择,别把这些看得太难,可也别看得太容易。上面的代码,我逐行地给大家解释。

shengliang1983 2008-6-17 16:40

发现AS3比AS2的可读性更好,偶喜欢,:loveliness:

liyuzhe0869 2008-6-17 18:25

[quote]原帖由 [i]shengliang1983[/i] 于 2008-6-17 16:40 发表 [url=http://www.51swim.com/mybbs/redirect.php?goto=findpost&pid=178871&ptid=21916][img]http://www.51swim.com/mybbs/images/common/back.gif[/img][/url]
发现AS3比AS2的可读性更好,偶喜欢,:loveliness: [/quote]
小飞猪英语底子厚,学习这些一看就明白,要是遇到加注释的程序,就更容易懂了。AS3不允许在按钮下面加代码了,这样代码更集中了。

shengliang1983 2008-6-18 08:35

现在一个事件对应一个函数,又都放一起,很方便代码阅读与查找
不像以前,还要去找一下按钮放哪了,再找到代码

shengliang1983 2008-6-18 08:39

而且您还记得嘛,以前我问您如何在按钮间代码复用,现在很容易就解决了:victory:

lcs 2008-6-18 09:49

按钮的代码应该很早就可以单独放到代码层了,也提倡这么写,比如写成:
[code]button.onRelease = function ()
{
……
}[/code]
只是有人习惯附着在按钮上,现在给强制了。
页: [1]
查看完整版本: 51swim计算机互学班的第四课(三、编制代码)