Flash-AS2.0代码大全.doc

上传人:w****2 文档编号:6587100 上传时间:2020-02-29 格式:DOC 页数:34 大小:210.50KB
返回 下载 相关 举报
Flash-AS2.0代码大全.doc_第1页
第1页 / 共34页
Flash-AS2.0代码大全.doc_第2页
第2页 / 共34页
Flash-AS2.0代码大全.doc_第3页
第3页 / 共34页
点击查看更多>>
资源描述
Flash as2.0代码大全与Flash制作技巧一、注释/ 单行注释符/* */ 多行注释符/*开始,*/结束 二、转义字符转义序列bfnrt字符退格符(ASCII8)换页符(ASCII12)换行符(ASCII10)回车符(ASCII13)制表符(ASCII9)双引号单引号反斜杠例1:trace(Hellon+ActionScript+2.0) 字符串之间使用运算符+连接结果输出:HelloActionScript2.0实例:获得系统的事件2:var time = new Date();/创建Date类的实例(Date类的实例含系统时间的所有信息);注意var中的字母v是小写的。var yy = time.getFullYear();var mm = time.getMonth()+1;/*getMonth比较特殊,它返回的值是0-11之间的数值,所以必须要加上1*/var dd = time.getDate();var xq = time.getDay(); /返回值为0,周末var hh = time.getHours();var min = time.getMinutes();var ss = time.getSeconds();trace(yy+年/n+mm+月n+dd+日n+星期+xq+n+hh+点n+min+分n+ss+秒)/换行符号 必须在引号里边才可以a=yy+年+mm+月+dd+日+星期+xq+hh+点+min+分+ss+秒三、声明方式及获取类型1.变量的声明方式,数字于字符串数字相加的规则数字声明的方式var a:String=12 ; /声明变量a是一个字符串类型,为12var b:Number=34 ; /声明变量b是一个数字字符串类型,为34var c=a+b ; /声明变量c=a+btrace(c); /字符串类型和数字类型的变量相加时,数字型被转换成字符串再相加输出结果:1234 2.实例:确定变量的数据类型 typeofvar m=12;trace(typeof(m);m=2;trace(typeof(m)输出结果:string number3.改变数据的类型:数字Number()、字符串String()、逻辑是否Boolean、对象数据类Object()、数组Array();var a =12 ; /声明变量a是一个字符串类型,为12var b=Number(a); /将a转换为数字类型,赋予btrace(typeof(b)+:+b)输出结果:number:12四、运算符1.点运算符:用来连接对象与嵌套再对象中的子对象,以及访问对象于对象的属性和方法。例:this.stop /当前对象停止2.数值运算符 运算符+-*/%+-执行的运算加法减法乘法除法取余数递增递减3.比较运算符 运算符=!=!=执行的运算小于大于小于等于大于等于等于严格等于不等于严格不等于例:x=100y=100z1=(x=y) z2=(x=y) /z1 、z2对两个式子进行判断,如果是正确的,则为true,如果为错误的则为false trace(z1+/+z2) 输出结果:true/false4.字符串运算符 +进行连接时,对于不是字符串类型的数值,先将其转换成字符串,再进行连接。如果要将两个数字类型的数字进行连接,可以借助空字符串例:m=12+34 ;n=+12+34trace(m=+m+nn=+n) /输出结果 m=46 换行 n=12345.逻辑运算符逻辑运算符对布尔值(逻辑是于逻辑否)进行运算,结果是一个布尔值true或false符号!&名称逻辑非逻辑与(并且)逻辑或(或者)意义返回相反的结果两个均为true时结果为true一个为true时,结果即为true例:age = 10;h = 1.0;if (age60 | age1.1) /身高不超过1.1,年龄小于14大于60的免票trace(免票); /输出结果:免票 /先执行逻辑非!,然后是逻辑与&,然后是逻辑或6.赋值运算符运算符意义实例+=相加并赋值x+=5 等效于x=x+5-=相减并赋值x-=5 等效于x=x-5*=相乘并赋值x*=5 等效于x=x*5/=相除并赋值x/=5 等效于x=x/5%=取模并赋值x%=5 等效于x=x%5&=换位与并赋值x&=5 等效于x=x&5赋值运算符的一种特殊形式:条件赋值运算符 a=条件 ? 数值1:数值2 /如果条件满足,则为值2,如果不满足,则为数值1h=2;a=age60|h1.1?5:10trace(升高为+h+米+n价格为+a+元) /输出为:升高为2米价格为10元7.数组访问运算符五、程序结构1.条件结构语法格式:if(条件)执行操作if(条件) 执行操作1 else 执行操作2if(条件) 执行操作1 elseif(条件2)执行操作2 elseif(条件3)执行操作3 - else 执行操作2.循环结构语法格式:For(语句1;语句2;语句3) 执行语句语句1通常为赋值语句,语句2通常为表达式进行条件判断,在循环执行一次后执行语句3例:var sum = 0;for (var i = 1; i=100; i+) sum += i;/初始值为1,在小于100的情况下,加到sum中,再i加1执行trace(sum); /输出结果为50503.循环结构while语法格式: while(条件) 执行语句var sum=0;var i=1;while(i=100)sum+=i ; i+trace(sum)输出结果:50504.break和continue语句:break用于跳出整个循环; continue 用于跳出本轮循环质数的判断,判断100以下的数字是否是质数for (var i=3;i=100;i+=2) /检测100以下的数字for (var j=2;ji;j+) if (i%j=0) break; /如果相除无余数,则退出j的循环else if (j=i-1) trace(i); 计算1-100之间所有不能被5整除的自然数的和var sum=0for (var i=1;i=100;i+=1) if (i%5=0) continue; /如果能被5整除,则跳出,开始下一个循环trace(i) /输出所有不能被整除的数字sum+=i trace(sum) /显示和,输出为40005.分支结构swich:swich 用来实现分支结构实例1获取系统时间,然后根据系统时间中的星期数输出适当的字符串var today=new Date()switch(today.getDay() case 0:trace(今天是星期天);break; /case 与后边的数值,必须有一个空格case 1:trace(今天是星期一);break;case 2:trace(今天是星期二);break;case 3:trace(今天是星期三);break;case 4:trace(今天是星期四);break;case 5:trace(今天是星期五);break;default:trace(今天是星期六); /返回当天的星期 实例2判断当前月份所含的天数var today=new Date();theYear=today.getFullYear();theMonth=today.getMonth()+1;switch (theMonth)case 1:case 3: case 5:case 7: case 8:case 10: case 12:ts=31;break; /如果是1、3、5、7、8、10、12月,ts则为31case 4:case 6: case 9:case 11:ts=30;break; /如果是4、6、9、11月,ts则为30case 2:if(theYear%4=0)ts=29; else ts=28;trace(本月有+ts+天)6.with语句语言格式with(对象)对象的属性和方法例:with(mc)nextFrame();_x=100;_y=100;_ratation=90;六、事件处理机制1、按钮事件 on( ) 实例1:用 on的键盘事件控制一个元件。新建一个元件,命名为mc,用移动键控制。(注:可以将按钮放在屏幕外)on (keyPress ) if(mc._x=1)mc._x-=5elsemc._x=0 /左移5像素on (keyPress ) if(mc._x=549-mc._width)mc._x+=5elsemc._x=550-mc._width /右移5像素on (keyPress ) if(mc._y=1)mc._y-=5;mc._xscale=mc._yscale-=5elsemc._y=0;mc._xscale=mc._yscale /上移5像素,横向和纵向缩小20%on (keyPress ) if(mc._y550-_width|_x400-_height|_y0)_xscale=-100;else_xscale=100;/如果鼠标在右侧,则翻转180度,否则不翻转onClipEvent (mouseUp) stop();实例3 getCode方法获得键盘代码 onClipEvent (keyDown) trace(Key.getCode()/显示按键Ascii值;on事件无法完成此操作事件处理函数说明onLoad在影片剪辑被实例化并显示在时间轴上时调用onUnload在影片剪辑被从时间轴上删除后的第一帧中调用onEnterFrame以SWF文件的帧频持续调用onMouseMove移动鼠标时调用onMouseDown按下鼠标左键时调用onMouseUp释放鼠标左键时调用onKeyDown按下按键时调用onKeyUp释放按键时调用onData当所用数据都加载到影片剪辑时调用onPress在影片剪辑上按下鼠标左键时调用onRelease在影片剪辑上按下鼠标左键并释放时调用onReleaseOutside在影片剪辑上按下鼠标左键然后将鼠标移出并释放左键时调用onRollOver当鼠标指针从影片剪辑外移到影片剪辑上时调用onRollOut当鼠标指针从影片剪辑上移到影片剪辑外时调用onDragOver在影片剪辑外按下鼠标左键然后将鼠标指针拖到影片剪辑上时调用onDragOut在影片剪辑上按下鼠标左键然后将鼠标指针拖出影片剪辑时调用onSetFocus当影片剪辑具有输入焦点而且释放某按键时调用onKillFocus当从影片剪辑移除焦点时调用 实例4 onMouseMove函数实现鼠标跟随 (在帧上加语句) 建立几个影片剪辑,命名为n1-n9n1.onEnterFrame=function()this._x+=(_root._xmouse-this._x)/5;this._y+=(_root._ymouse-this._y)/5;for(var i=2;i=9;i+)_rootn+i.onMouseMove=function()this._x+=(_rootn+(this._name.substring(1)-1)._x-this._x)/5;this._y+=(_rootn+(this._name.substring(1)-1)._y-this._y)/5;实例5 onEnterFrame函数实现图片悬停 将一系列图片建成影片剪辑,调入到舞台,水平分布for (var i in _root) /遍历主时间轴中的所有对象_rooti.onEnterFrame = function() /在本事件中令每个对象左移5像素this._x -= 5;if (this._x=-170) /当实例的x位置超过-200时this._x += 895; /使图片放到右端_rooti.onRollOver=function()for(var j in _root) /in 和_root之间有个空格delete _rootj.onEnterFrame;_rooti.onRollOut = function() /在本事件中令每个对象左移5像素for (var j in _root) _rootj.onEnterFrame = function() /在本事件中令每个对象左移5像素this._x -= 5;if (this._x=-170) /当实例的x位置超过-200时this._x += 895; /使图片放到右端实例:实行无限循环的方法P53实例:符合键控制图片的移动P59onEnterFrame=function() if(Key.isDown(Key.CONTROL ) if(Key.isDown (Key.LEFT ) pic._x-=20; if(Key.isDown (Key.RIGHT ) pic._x+=20; 下边两段程序的不同在于:if(Key.isDown(Key.RIGHT ) pic._x+=20; onEnterFrame=function() /按一下RIGHT键,则移动一次if(Key.getCode()=Key.RIGHT ) pic._x+=20; /按一下RIGHT键,则一直移动实例:getAscii方法制作打字游戏P60var chars=new Array();for(var i=0;i10;i+)charsi=i+48for(var i=0;i26;i+)charsi+10=i+65;charsi+36=i+97function generate() /generate函数用于生成随机字符ttt.text=;for(var i=0;i400;i+)rnd=Math.floor (62*Math.random ();ttt.text+=String.fromCharCode(charsrnd)anniu.onPress=generate; /将函数generate设为单击按钮的事件处理函数 _root.onKeyDown =function() if(String.fromCharCode(Key.getAscii()=ttt.text.substring(0,1)ttt.text=ttt.text.substring(1);if(ttt.text=)generate();Key.addListener(_root)实例:替换鼠标指针P62 未完成在要替换的指针上写上代码:onClipEvent (mouseMove) _x=_root._xmouse ;_y=_root._ymouse;在帧上写上代码Mouse.hide() /影藏鼠标指针 实例:自定义鼠标右键七、影片剪辑1.影片剪辑的属性属性说明属性说明_name实例名称_totalframes总帧数_xx坐标位置_framesloaded已经加载的帧数_yy坐标位置_url所在swf文件URL_rotation旋转角度_highqualityswf文件呈现的品质_alpha透明度_focustrect焦点时有无黄色矩形_visible可见性_soundbuftime声音缓冲的秒数_width宽度enabled是否启用的状态_heigth高度menu关联的ContextMenu_xscale水平缩放百分比hitArea点击区域_yscale竖直缩放百分比focuEnabled是否能够接受焦点_xmouse鼠标指针的x坐标tabIndexTab键顺序_ymouse鼠标指针的y坐标tabEnabled是否具有Tab键顺序_parent父级影片剪辑tabChildren子级有无Tab键顺序_target实例的目标路径trackAsMenu可否接收release事件_currentframe播放头所在的当前帧useHandCursor是否显示手型光标实例:通过_rotation属性旋转对象onEnterFrame=function()hh._rotation+=0.01;mm._rotation+=0.6;ss._rotation+=36实例:通过_rotation属性制作鼠标旋转跟随gg._x=aq._xgg._y=qq._ygg.onEnterFrame=function()i=_root._xmouse -this._x;j=_root._ymouse -this._y;if(i0)this._rotation=Math.atan(j/i)*360/(2*Math.PI)elsethis._rotation=Math.atan(j/i)*360/(2*Math.PI)+1802.透明度和可见性实例:通过_alpha属性实现图片渐入渐出tt.stop()onMouseDown=function() /鼠标按下事件(换图)tt.onEnterFrame=function() this._alpha-=5; /透明度递减if(this._alpha=100)delete this.onEnterFrame;实例:用3.用宽度和高度_width和_heigth属性控制影片剪辑的大小实例:_width和_heigth属性控制影片剪辑大小tt.stop()zhe.onMouseMove=function()this._width=2*Math.abs(_root._xmouse-this._x);this._height=2*Math.abs(_root._ymouse-this._y);onMouseDown=function()tt.gotoAndStop(1+tt._currentframe%tt._totalframes);注意此处于上边的不同1+tt._currentframe%tt._totalframes实例:_xscale和_yscale属性控制影片剪辑缩放tt.stop()xx=zhe._widthyy=zhe._heightzhe.onMouseMove=function()this._xscale=100*(_root._xmouse -this._x)/(xx/2);this._yscale=100*(_root._ymouse -this._y)/(yy/2);onMouseDown=function()tt.gotoAndStop(1+tt._currentframe%tt._totalframes);实例:通过_xscale和_yscale属性控制影片剪辑缩放tt.stop()onKeyDown=function()switch(Key.getCode()case Key.UP :tt._yscale+=10;breakcase Key.DOWN :tt._yscale-=10;break/如果用height也可以接近效果,但不能实现翻转case Key.LEFT :tt._xscale+=10; breakcase Key.RIGHT :tt._xscale-=10;breakKey.addListener (_root); /为_root注册键盘监听器4.鼠标位置主场景的鼠标位置:_root._xmouse _root._ymouse影片剪辑鼠标位置:_root.tt_x _root.tt._y5.帧属性实例:鼠标移进开始播放P75for(var i in _root) _rooti.stop(); _rooti.onRollOver=function() this.onEnterFrame=function() if(this._currentframe1) this.prevFrame(); elsedelete this.onEnterFrame; for(var i in _root) _rooti.stop(); _rooti.onRollOver=function() this.onEnterFrame=function() if(this._currentframe1) this.prevFrame(); else delete this.onEnterFrame;实例:制作load动画P77导入一个mp3.放在第三帧上,在第二帧上放上一个按钮,名称为an ,第二帧程序:stop();an.onRelease=function()play();创建一个影片剪辑元件,名为loadd.实例:duplicateMovieClip动态复制影片剪辑P79var i=1;star._visible=false;onMouseDown=function()star.duplicateMovieClip(star+i,i)with(_rootstar+i)_x=_root._xmouse ;_y=_root._ymouse ;_rootstar+i.onEnterFrame=function()this._rotation+=10;i+;实例:用attachMovie方法制作雪花飞舞P81for(var i=0;i100;i+)_root.attachMovie(s,i,i);_rooti._x=550*Math.random();_rooti._y=400*Math.random();_rooti._rotation=60*Math.random (); _rooti._xscale=_rooti._yscale=_rooti._alpha=100*Math.random (); _rooti._alpha=70+30*Math.random ();_rooti.onEnterFrame=function()this._y+=this._xscale/22;this._y%=400;this._rotation+=3;实例:跟随鼠标游动的鱼P82实例:打蜜蜂游戏P83实例:用createEmptyMovieClip方法创建影片剪辑856.动态实现遮蔽:语句:mymc.setMask(遮蔽物) mymc为用来被遮蔽的物体名称;遮蔽物位于遮蔽层取消:mymc.setMask(null) 实例:用遮蔽实现橡皮擦特效_root.createEmptyMovieClip (mask,0);/创建空影片剪辑实例来放置附加的园p.setMask(mask);onMouseMove=function()var i=mask.getNextHighestDepth();mask.attachMovie(yuan,i,i);maski._x=_root._xmouse ;maski._y=_root._ymouse ;实例:用碰撞测试实现粘附特效P95mc._visible=0;onEnterFrame=function()for(var i=0;i10;i+)depth=_root.getNextHighestDepth ();attachMovie(ball,b+depth,depth);_rootb+depth._x=600*Math.random()-50;_rootb+depth.v=5+10*Math.random();_rootb+depth.onEnterFrame=function()this._y+=this.v;this._x+=5*Math.random ();if(mc.hitTest(this._x,this._y,true)ran=3*Math.random ();if(ran400)this.removeMovieClip();实例:用loadMovie制作图片展示P86实例:鼠标跟随的下雪效果P89实例:用swapDepths方法实现立体旋转效果90实例:制作放大镜P92实例:用遮蔽是想橡皮擦特效P93_root.createEmptyMovieClip (mask,0);/创建空影片剪辑实例来放置附加的园p.setMask(mask);onMouseMove=function()var i=mask.getNextHighestDepth();mask.attachMovie(yuan,i,i);maski._x=_root._xmouse ;maski._y=_root._ymouse ;实例:用碰撞测试实现粘附特效P95Stage.scaleMode=showAllmc._alpha=0;onEnterFrame=function()for(var i=0;i10;i+)depth=_root.getNextHighestDepth ();attachMovie(ball,b+depth,depth);_rootb+depth._x=600*Math.random()-50;_rootb+depth.v=5+10*Math.random();_rootb+depth.onEnterFrame=function()this._y+=this.v;this._x+=5*Math.random ();if(mc.hitTest(this._x,this._y,true)ran=3*Math.random ();if(ran400)7.绘画方法MovieClip类的方法可以通过AS来动态绘制图形。moveTo移动绘画位置 myMc.moveTo(x,y) (x,y)是要将绘画位置移动到的点的坐标lineStyle方法定义用lineTo和curveTo方法画线的线条样式。myMc.lineStyle(线条粗细,线条颜色,透明度)0xFFFFFF白色 、0x000000黑色 、0xFF0000红色 、0x00FF00绿色 、0x0000FF蓝色lineTo绘制直线 myMc.lineTo(x,y) 起点在当前位置,终点在(x,y)实例:用绘画方法画直线P97onMouseDown=function()depth=_root.getNextHighestDepth ();drawing=true;x0=_root._xmouse ;y0=_root._ymouse ;onMouseMove=function()if(drawing)_root.createEmptyMovieClip (line+depth,depth);with(_rootline+depth)moveTo(x0,y0);lineStyle(0,0x0000FF,100);lineTo(_root._xmouse,_root._ymouse )onMouseUp=function()drawing=false绘制矩形onMouseDown=function()depth=_root.getNextHighestDepth ();drawing=true;x0=_root._xmouse ;y0=_root._ymouse ;onMouseMove=function()if(drawing)_root.createEmptyMovieClip (juxing+depth,depth);with(_rootjuxing+depth)moveTo(x0,y0);lineStyle(0,0x0000FF,100);lineTo(_root._xmouse,y0);lineTo(_root._xmouse,_root._ymouse )lineTo(x0,_root._ymouse )lineTo(x0,y0)onMouseUp=function()drawing=false实例:用绘画方法画曲线P98curveTo绘制曲线moveTo(100,100); curveTo(300,200,300,300)实例:绘制曲线 P98onMouseDown=function()drawing=true; /绘画开始 if(!down1) /如果不是鼠标按下第一次则为第一次depth=_root.getNextHighestDepth ();down1=true; /标识第一次down2=false;x1=_root._xmouse ;y1=_root._ymouse ;elsedown1=false;down2=true;onMouseMove=function()if(drawing)if(down1) /如果鼠标按下第一次 _root.createEmptyMovieClip (curve+depth,depth); with(_rootcurve+depth) moveTo(x1,y1); lineStyle(0,0x0000FF,100); lineTo(_root._xmouse ,_root._ymouse );else if(down2) /如果鼠标按下第二次则画曲线_root.createEmptyMovieClip (curve+depth,depth);with(_rootcurve+depth) moveTo(x1,y1); lineStyle(0,0x0000FF,100); curveTo(_root._xmouse ,_root._ymouse,x3,y3 );updateAfterEvent(); /刷新显示onMouseUp=function()drawing= false;if(down1)x3=_root._xmouse ;y3=_root._ymouse ;elsedown2=false;实例:用绘画方法画圆P100八、文字1.文本类型P109文本类型: (1)静态文本: (2)动态文本:myTxt.text=zhongguo /要加引号 myTxt =Number(123)实例:文字的淡入淡出var num=65; /字母A的ASCII码值var alp=10; /_alpha属性的变化速率aa.text=String.fromCharCode(num) onEnterFrame=function()aa._alpha-=alp;if(aa._alpha90)num=65;aa.text=String.fromCharCode(num);else if(aa._alpha=100)alp*=-1; /字母A的ASCII码值注:需要将文字加一个滤镜效果,否则无法实现效果实例:倒计时var num=58; /字母A的ASCII码值var alp=10; /_alpha属性的变化速率var ten=10aa.text=String.fromCharCode(num) aa.text=ten;onEnterFrame=function()aa._alpha-=alp;if(aa._alpha=0)alp*=-1;num-;if(num=100)alp*=-1;实例:随机文字特效Stage.scaleMode =showAllvar i=0;onEnterFrame=function()attachMovie(txtMc,txt+i,i);_roottxt+i._x=550*Math.random ();_roottxt+i._y=400*Math.random ();_roottxt+i.txt.text=Math.floor(10*Math.random ();_roottxt+i.onEnterFrame=function()this._rotation+=15;this._xscale=this._yscale=this._alpha-=2;if(this._alpha=0)this.removeMovieClip() /如果透明度为0,则删除此影片剪辑i+;i%=150; /确保不超过50个/必须在动态文本中的属性中,选择嵌入选项。P112输入文本实例:可指定倍数的放大镜bei.text=1;var times=Number(bei.text);var drag;onMouseDown=function()Mouse.hide();mc.glass.startDrag(true);drag=true;onMouseUp=function()Mouse.show();mc.glass.stopDrag();drag=false;onEnterFrame=function()times=Number(bei.text);mc.big._xscale=mc.big._yscale=100*times;if(drag=true)with(edge)_x=_root._xmouse ;_y=_root._ymouse ;with(edge)_x=-(times-1)*mc.glass._x;_y=-(times-1)*mc.glass._y;2.textField类P114textField类方法用来控制文本字段,包括添加和删除侦听器,删除textField实例,获取和设置格式等。实例:用侦听器实现累加运算。txtListener=new Object();txtListener.onChanged=function(txt)input=Number(txt.text);res1=0;res2=1;for(var i=1;i=input;i+)res1+=i;res2*=i;r1.text=res1;r2.text=res2;nu.addListener(txtListener);实例:打字游戏3.TextFormat类P1184.String类P133
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!