|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
其实我本人水平也不怎么样,今天之所以搞出个编程心得(主要是自己的一点点经验总结)的介绍,主要是想帮助有爱好往深处研究AS的朋友,由于个人的水平有限,其中难免有谬误,欢迎大家讨论纠正。一来,帮助我进步;二者也是更重要的是,防止初学者养成不好的编程习惯! 废话说多了,下面开始: 一.FLASH有三个地方可以加代码,要害帧,MC(影片剪辑),按钮。 1.要害帧上加代码的灵活性很大,建议初学者:能写在MC或者按钮上的代码,就尽量不要写在要害帧上,要害帧上添加代码后,会出现一个a,如图一: 2.按钮上加代码的一般格式为: on(mouseEvent){ statements; } mouseEvent:触发事件要害字,表示要扑获得事件。 statements:任意行数的可以执行程序代码。 鼠标可扑获的事件如下: press:当按钮被按下时触发该事件 release:当按钮被释放时触发该事件 releaseOutside:当按钮被按住后鼠标移动到按钮以外并释放时触发该事件 rollOut:当鼠标滑出按钮范围时触发该事件 rollOver:当鼠标滑入按钮范围时触发该事件 dragOut:当按钮被鼠标按下并拖拽出按钮范围时触发该事件 dragOver:当按钮被鼠标按下并拖拽入按钮范围时触发该事件 keyPress("key"):当参数(key)指定的键盘按键被按下时触发该事件 举个例子: on(press){
_root.text="学习FLASH!" }//当按下按钮时,主场景中的文本框显示文字:学习FLASH!
onClipEvent() 是影片剪辑事件治理动作。按照FLASH的编程规范,影片剪辑动作必须靠影片剪辑事件来触发,详细的触发条件条件可以在其参数区添加。其参数栏中的选项包括:Load Unload EnterFrame Mousemove Mousedown Mouseup Keydown Keyup Data (共9项)。下面依次介绍: 1.Load------影片剪辑元件在时间轴中出现时触发事件(不管影片剪辑是否完全载入,都触发),而且只触发一次! 2.Unload-------影片剪辑元件在时间轴中卸载时触发事件; 3.EnterFrame--------在播放影片剪辑元件中内容时,每播放一帧执行一次触发; 4.mouseMove--------每当鼠标移动时触发.鼠标位置的改变就会触发该事件.可以用_xmouse _ymouse属性确定当前鼠标的坐标; 5.mouseDown--------单击鼠标左键时触发; 6.mouseUp--------释放鼠标左键时触发; 7.keyDown--------按下键盘上某一键时触发; 8.keyUp--------释放键盘上某一键时触发; 9.Data------当接收到loadVariables或者loadMovie动作载入新的数据时触发; 详细应用举例参看下面的SWF:
这里再举一个简朴的例子: onClipEvent(load){
a=100; b=0; }//当MC被加载时给a b两个变量赋初值;
1.首当其冲的还是点语法,他是在编程时用来指明与某个对象的相关的属性和方式,还可用于标识对象的路径。 比如,要获取主场景中的Myball这个影片剪辑的x坐标值语法为_root.Myball._x。这其中还有一个必须引起注重,初学者经常以为这里的Myball是指给库里的对象命名,如图二:
on(release){ 但是我一般写成: on(release){
2.关于斜杠语法: 据我所知,斜杠语法是在FLASH 4.0中广泛使用的,也用于指示对象的路径,被用于代替点的作用,当他要指出一个变量是需要在变量前面加上冒号,以表示对变量的引用。由于软件都有一种向下兼容性,所以在MX中仍旧可以使用(我没怎么用过2004,估计2004也支持的),但是一般说不推荐使用,一方面,既然被取代了,肯定是因为有缺点,有好的方式了干吗还要抱者旧的不放(你要是怕被人说喜新厌旧,那你就继承用!我是不怕的,挖哈哈......)另一方面,为了和其他人保持一致,大家都用点语法,你一个人用斜杠,总觉得不大好! 3.分号: 编程时,我有在每句话结尾加分号的习惯,其实这个分号是可以省略的,那我为什么要加呢,嘿嘿........那是因为我一开始学习用FLASH编程时,没人告诉我可以不加,我就一直辛辛劳苦的加啊!!!现在改不过来了!挖哈哈.............. 4.大小写 FLASH编程时,只有要害字区分大写和小写,何谓要害字,基本上就是你写对了,会变成兰色的那部分程序代码,也就是为本语言专用的一些单词!!比如:setProperty clearInterval getRGB 这些! 5.注释; 添加注释一般是为了方便别人阅读你的程序,添加注释符号//后,其后的内容为灰色;其实他还有一个最大的长处就是,方便你调试程序,比如,编译时发现程序有错,可是程序很长,你不能完全正确的确定错误发生的位置,那么你可以使用// 逐段的屏蔽掉程序段,进而帮助确定错误的位置。 三.关于查错: 往往从有思路到编程实现效果不可能一次完成,也就是说,难免会出现错误,不能通过编译系统(不知道FLASH里怎么称呼,说成编译系统对不对咧,还请各位指教)。那这时候就需要我们查错。 1.充分利用输出窗口给出的提示: 例如:在按钮上加如下代码: duplicateMovieClip("MC","MC"+j,10+j); ctrl+enter测试影片,输出窗口提示: 场景=场景 1, 图层=AS, 帧=2: 第 4 行: Unknown error ID #1033 setProperty"MC"+j,_x,random(600)); 就是说第四行有错误,回到编辑状态,一看,原来少了半边括号,就是说输出窗口会给我们提供很多必要的帮助,一定要好好利用!让AS编辑区显示行号的方式,如图四:
2.上述方式只能排除语法上的错误,也就是说,你程序本身算法或者程序中参数的传递,出现了问题,编译系统是不可能帮你检查出来的,这个只能靠你自己去检查。我这里介绍一点自己的方式,供大家参考:首先,你得自己心里想明白按照自己的这个算法思想能不能实现想要的结果,就是说先在心里把整个算法重新再理一遍,有时候想的不成熟,或者一开始的思路有疏漏,这时候应该可以更正或者修改过来!当你确定自己的程序设计思路没有问题但是依然出不了效果时,你就该考虑是程序实现时出了错误,比如参数传递有问题,路径指示不明确甚至错误等等都是比较常见的(至少我就经常犯这样的错误); 举个例子: 在主场景中有一个输入文本,其实例名为text 变量名为xx, _root.text.onChanged = function() { 当文本框内容改变时就把文本框的值赋给n这个变量; 然后在主场景中一个风车状的MC上加: onClipEvent(enterFrame){
this._rotation=this._rotation+n; } 意思是让风车旋转,速度为n; 但是测试影片,就是没有效果,为什么呢,想想看,先把风车上的代码改为: onClipEvent(enterFrame){
this._rotation=this._rotation+3; } 指定一个数值作为旋转的速度,测试发现,旋转正常; 这就提醒我们,是不是参数传递出了问题呢,哦!!!对,因为在帧上加的代码,所产生的变量n实际是主场景中的变量,把他传递到MC中时,应该确定起正确的位置。再次修改源代码,MC上的代码改为: onClipEvent(enterFrame){ 再次测试,一切正常,旋转速度随着输入数字的变化而变化 效果: 3.学会使用trace语句,检测错误! 上面的例子中变量比较少,所以很轻易发现问题,假如一个程序中有多个变量,而且比较复杂,那就需要分别对他们进行跟踪查看,方式就是利用trace语句,在某个变量每次发生变化后都用trace将其输出,以便查看其运算结果是否和预期的一致! 同样举个例子:随机抽签效果! 十个MC,透明度均为30; 主场景中的要害帧上加: a =new Array(0,1,2,3,4,5,6,7,8,9);//定义数组;
mm=0;//点击次数统计; nn=10;//数组元素个数; 选择按钮上加: on(press){ i = random(nn); j = a[i]; a1=a.slice(0,i); trace(a1);//输出抽取的部分数所组成的新的数组a1; a2=a.slice(i+1,nn); trace(a2);//输出抽取的另外一部分数所组成的新的数组a2; a=a1.concat(a2); trace(a);//输出组合后的数组,也就是新的数组a; setProperty("mc"+j,_alpha,getProperty("mc"+j,_alpha)+30); mm++; nn--; if(mm==10){ text="抽签结束!" mm="10"; _root.but._visible=false; } } 采用以上方式后,每点击一次按钮,窗口都输出三排数字,最后一排中比上一次输出少掉的那个数字就是被抽取的数字;这样一来,每运行一次代码,程序人员都可以方便的查看各个变量的运算情况! 效果:(注重,trace语句其实可以说是专门用于查错的,因为在swf文件中他无效,所以在以下效果中不能显示trace窗口,大家可以下载下面的源文件在本机测试): 返回类别: Flash教程 上一教程: FlashMX 视频教程(21)-舞台设置 下一教程: Flash MX04文字特效:残影动画(图) 您可以阅读与"入门级技巧:FLASH 编程心得"相关的教程: · Flash高级技巧学习:picturescroll鼠标滚动图片 · Flash高级技巧:BitmapData.draw方式尝试 · FLASH入门及学AS编程的准确途径 · Flash入门及学ActionScript编程的准确途径 · Flash编程入门:物体的自由运动解析 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |