ActionScript3.0运算符及表达式
- 格式:pdf
- 大小:196.97 KB
- 文档页数:7
as3 正则表达式的使用谈谈正则表达式,AS3.0 中引进了正则表达式。
正则表达式是用于验证文本值是否符合特定模式。
正则表达式有四个部分。
1元子符。
2元序列。
3标志。
4数量表达符。
可以这样看 pattern RegExp= /匹配字符串 元字符 元序列/标志 当然顺序可能不完全是这样.别把他想的太 复杂其实他就是个组合。
现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } |前面说的是元字符串的使用1.^的用法:匹配字符串的开头var pattern:RegExp=/^小虫/;var str:String="小虫是好人";trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true2.$的用法:字符串的结尾部分与前面的字符串匹配.var pattern:RegExp=/lizhen$/;var str:String="My name is lizhen";trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true仔细看一下两个符号在匹配字符串中的位置,注意:如果同时使用^符号和$符号,将进行精确匹配。
3.\的用法:转义字符如果匹配字符串中包含有"/"比如 1/2 的时候,使用如下定义var pattern:RegExp = /1\/2/;var str:String="1/2 是多少?";trace(str, " is valid:", pattern.test(str));1/2 是多少? is valid: true如果匹配字符串中包含有""比如 "lizhen" 的时候,使用如下定义var pattern:RegExp=/\"lizhen"/;var str:String="My name is \"lizhen\"";trace(str, " is valid:", pattern.test(str));My name is "lizhen" is valid: true4.*的用法:匹配 0 个或多个前面的字符.一个都没有也会返回 true;var pattern:RegExp=/我的*/;var str:String="我的我的我的";或者 var str:String="我的"trace(str, " is valid:", pattern.test(str));我的我的... is valid: true5.+的用法:匹配至少一个前面的字符var pattern:RegExp=/我的+/;var str:String="我的 ID 是...";或者 var str:String="我的"trace(str, " is valid:", pattern.test(str));我的 ID 是... is valid: true注意+和*的区别。
ActionScript3.0语法简介-三清网在Flash ActionScript3.0中与ActionScript2.0的语法相比有一些改变,下面我们来了解一下Flash ActionScript3.0语法。
一、区分大小写在ActionScript3.0中是区分大小写的,大小写不同的标示符会被视为不同,例如:var a:Number;var A:Number;a和A可以看做两个变量,又如var myplay:MoveClicp;var myPlay:MoveClicp;第二、使用点语法使用点语法可以用来访问对象的属性,例如我们定义了一个影片剪辑mc,我们要查看mc的x轴坐标,可以这样写:mc.x,如果要访问这个对象的方法,可以这样写:mc.play();另外我们在导入包或者导入类的时候也会使用到点语法,例如我们要加载某一个包中的类,可以这样写:flash.events.EventMouse。
第三、斜杠语法在ActionScript3.0中斜杠语法主要用来注释,比如我们不希望某行运行,可以在这行的开头添加://,在通常情况下我们都会利用双斜杠作注释用法如下:// 定义一个num属于Number类型var num:Number;多使用注释会让我们的程序可读性更高。
第四、分号分号通常用来结束语句,在ActionScript2.0的时候很多人不习惯写分号,这是一个不好的习惯,ActionScript3.0严格模式下不写分号编译器会报错,另外经常写分号会让我们的程序的可读性更高。
分号使用方法如下:stop();var a:int=324;gotoAndPlay(2);第五、小括号小括号一般有三种用处第一种通过小括号的组合可以改变运算的优先顺序,例如:(a+b)*c/4;第二种可以结合逗号运算符来计算一个以上表达式,并返回最后的结果,例如:trace((a=a++,b=b++,a+b));第三种通过小括号想函数或方法传递一个或多个参数,例如:gotoAndPlay(2);第六、注释这里的注释跟上面提到的双斜杠注释有所不同,这里的注释可以把多行注释掉。
本人花了近一个月的时间总结,希望对您们能有所帮助基本三角函数的计算:角的正弦值= 对边/ 斜边角的余弦值= 邻边/ 斜边角的正切值= 对边/ 邻边角度制与弧度制的相互转换:弧度= 角度* Math.PI / 180角度= 弧度* 180 / Math.PI计算两点间距离:dx = x2 –x1;dy = y2 –y1;dist = Math.sqrt(dx*dx + dy*dy);缓动公式:sprite.x += (targetX - sprite.x) * easing;//easing为缓动系数变量sprite.y += (targetY - sprite.y) * easing;弹性公式:vx += (targetX - sprite.x) * spring;//spring为弹性系数vy += (targetY - sprite.y) * spring;sprite.x += (vx *= friction);//friction为摩擦力sprite.y += (vy *= friction);偏移弹性公式:var dx:Number = sprite.x - fixedX;var dy:Number = sprite.y - fixedY;var angle:Number = Math.atan2(dy, dx);var targetX:Number = fixedX + Math.cos(angle) * springLength; var targetY:Number = fixedX + Math.sin(angle) * springLength;向鼠标旋转(或向某点旋转)dx = mouseX - sprite.x;dy = mouseY - sprite.y;sprite.rotation = Math.atan2(dy, dx) * 180 / Math.PI;波形运动:public function onEnterFrame1(event:Event):void {ball.y=centerScale+Math.sin(angle)*range;angle+=speed;}心跳:public function onEnterFrame1(event:Event):void { ball.scaleX=centerScale+Math.sin(angle)*range; ball.scaleY=centerScale+Math.sin(angle)*range; angle+=speed;}圆心旋转:public function onEnterFrame(event:Event):void { ball.x=centerX+Math.cos(angle)*radius;ball.y=centerY+Math.sin(angle)*radius;angle+=speed;}椭圆旋转:public function onEnterFrame(event:Event):void { ball.x=centerX+Math.cos(angle)*radiusX;ball.y=centerY+Math.sin(angle)*radiusY;angle+=speed;}颜色运算得到透明值:var t:uint=0×77ff8877var s:uint=0xff000000var h:uint=t&svar m:uint=h>>>24trace(m)转换为十进制:trace(hexValue);十进制转换为十六进制:decimalValue.toString(16)颜色提取:red = color24 >> 16;green = color24 >> 8 & 0xFF;blue = color24 & 0xFF;alpha = color32 >> 24;red = color32 >> 16 & 0xFF;green = color32 >> 8 & 0xFF;blue = color232 & 0xFF;按位计算得到颜色值:color24 = red << 16 | green << 8 | blue;color32 = alpha << 24 | red << 16 | green << 8 | blue;过控制点的曲线:// xt, yt是你想要让曲线通过的那一点// x0, y0 和x2, y2 是曲线的终点//PS.发现很多人转帖都是直接复制粘贴,也不翻译一下xt * 2 –(x0 + x2) / 2;y1 = yt * 2 –(y0 + y2) / 2;moveTo(x0, y0);curveTo(x1, y1, x2, y2);========================================= =======================以下是其它兄弟回帖分享的========================================= =======================匀速移动到目标点public function onEnterFrame(event:Event):void {var X = targetX - ball.x;var Y = targetY - ball.y;var Z = Math.sqrt(X * Y + Y * Y);? ?//求出距离var t = ball.Speed / Z;? ?//求出时间??ball.Speed 为求的运动速度var Vx = X / t;? ? //横向速度var Vy = Y / t;? ? //纵向速度ball.x += Vx;ball.y += Vy;??if(Z <= ball.Speed){? ? ball.x = targetX;? ? ball.y = targetY;? ? return;??}//判断距离}移动到目标点抖动特效公式function??onEnterFrame () :void{??v = v + easing * (targetX - ball._x);//easing为缓动系数变量??ball._x = ball._x + v;??v = spring * v;//spring为抖动幅度变量};弧度和角度的关系值得注意的是在as3.0程序里,三角函数使用的角单位是弧度而不是角度。
as3二进制运算符(原创实用版)目录1.AS3 概述2.AS3 二进制运算符的分类3.AS3 二进制运算符的实例与用法4.AS3 二进制运算符的优先级5.总结正文1.AS3 概述AS3(ActionScript 3.0)是一种基于 JavaScript 的编程语言,主要用于开发 Adobe Flash 平台和 AIR(Adobe Integrated Runtime)的应用程序。
AS3 具有丰富的语法特性和强大的运行时性能,广泛应用于游戏开发、网站开发和桌面应用程序开发等领域。
2.AS3 二进制运算符的分类AS3 中的二进制运算符主要分为以下几类:- 算术运算符:如加法(+)、减法(-)、乘法(*)、除法(/)和取模(%)等。
- 关系运算符:如大于(>)、小于(<)、大于等于(>=)、小于等于(<=)和相等(==)等。
- 逻辑运算符:如与(&&)、或(||)和非(!)等。
- 位运算符:如按位与(&)、按位或(|)、按位异或(^)、按位非(~)和左移(<<)/右移(>>)等。
3.AS3 二进制运算符的实例与用法下面举几个实例来说明 AS3 二进制运算符的用法:- 算术运算符:```var num1:Number = 10;var num2:Number = 5;var sum:Number = num1 + num2; // 结果为 15```- 关系运算符:```var num1:Number = 10;var num2:Number = 5;if (num1 > num2) {trace("num1 > num2"); // 输出 "num1 > num2"}```- 逻辑运算符:```var num1:Number = 10;var num2:Number = 5;var result:Number = num1 > num2? num1 : num2; // 结果为 10 ```- 位运算符:```var num:Number = 10;var mask:Number = 2;var result:Number = num & mask; // 结果为 2```4.AS3 二进制运算符的优先级AS3 中,二进制运算符的优先级从高到低依次为:- 位运算符(如按位与、按位或等)- 算术运算符(如加法、乘法等)- 关系运算符(如大于、小于等)- 逻辑运算符(如与、或等)当表达式中包含多个二进制运算符时,优先级高的运算符会先进行计算。
Action Script 3.0 练习求3数之和除了求余数外,ActionScript还可以用来求几个数之和。
通过ActionScript与Flash组件的结合使用,可以制作一个简单的Flash程序,用于计算用户输入的3个数字之和,如图2-13所示。
图2-13 求3数之和在ActionScript中求3数之和,可以使用加法运算符“+”。
(1)新建【尺寸】大小为500像素×350像素的文档,将素材图像导入到舞台中,将其设置为舞台背景,如图2-14所示。
图2-14 设置舞台背景(2)新建图层2,选择【文本工具】,设置【字体】、【字体大小】和【填充颜色】为#006600。
然后输入静态文本,如图2-15所示。
图2-15 输入文本(3)新建图层3,将图层2中的文本复制到该层中。
然后按两次Ctrl+B组合键,将文字分离,并在【颜色】面板中设置其【填充颜色】,如图2-16所示。
图2-16 设置填充颜色(4)将图层2拖至图层3的上方,以显示效果。
新建图层4,选择【矩形工具】,设置其属性。
然后在舞台中绘制圆角矩形,如图2-17所示。
图2-17 绘制圆角矩形(5)将其转换为影片剪辑,设置其Alpha值为“50%”,并在【滤镜】面板中设置其参数,如图2-18所示。
图2-18 设置滤镜(6)新建图层5,创建各个组件,并为组件设置各种参数,如图2-19所示。
图2-19 设置组件参数(7)新建“等于”按钮元件,在舞台中绘制绿色的圆角矩形,设置其参数。
然后在其上方输入文本,设置其参数,如图2-20所示。
图2-20 设置文本属性(8)在其它帧处插入关键帧,并调整圆角矩形的【填充颜色】为#F58C18。
然后将按钮元件拖至舞台中,如图2-21所示。
图2-21 将元件拖至舞台(9)在舞台中输入“+”文本,并绘制矢量图形。
然后在该关键帧处右击执行【动作】命令,输入代码,计算输入的数字之和,代码如下所示。
var sty1:TextFormat=new TextFormat();//创建文本样式sty1sty1.size=14;//设置文本的大小为14var sty2:TextFormat=new TextFormat();//创建文本样式sty2sty2.size=20;//设置文本的大小为20tx1.setStyle("textFormat",sty1);//实例名称为tx1的组件读取样式sty1tx2.setStyle("textFormat",sty1);//实例名称为tx2的组件读取样式sty2tx3.setStyle("textFormat",sty1);//实例名称为tx3的组件读取样式sty3tx4.setStyle("textFormat",sty2);//实例名称为tx4的组件读取样式sty4function buttonclick1(event:MouseEvent):void//创建名称为buttonclick1的函数{var a:Number=Number(tx1.text);//将组件tx1中的内容转换为数字类型并赋值给变量avar b:Number=Number(tx2.text);//将组件tx2中的内容转换为数字类型并赋值给变量bvar c:Number=Number(tx3.text);//将组件tx3中的内容转换为数字类型并赋值给变量cvar d:Number=a+b+c;//求变量a、b、c的和,并赋值给变量dtx4.text=String(d);//将变量d的值转换为字符串类型并在组件tx4中显示}but.addEventListener(MouseEvent.CLICK,buttonclick1);//侦听实例名称为but的鼠标单击事件并调用buttonclick1事件。
ActionScript3.0 编程基础_数据类型及其运算、程序流程关键字: flex7.3 数据类型和数据运算7.3.1 关于数据类型一个变量或者常量被声明时,必须指定其数据类型:原生数据类型:语言本身提供:字符串、整数、布尔型等复杂数据类型:由基本数据类型组成的复合型类型:类、接口等。
基本数据类型:∙Boolean:布尔型,true 和 false∙int:整数,存放32位二进制整数,范围:-2147483648~2147483647,当超出自动转为Number∙Null:空值,是字符串和所有类的默认值。
∙Number:整数型和浮点型,使用64位双精度格式存放数据,没有小数点时自动转换成整数。
最小值和最大值分别存放在Number 对象的MIN_VALUE 和 MAX_VALUE属性中。
∙String:字符串,以Unicode 编码格式存放。
∙uint:正整数类型,0~4294967295∙void:值为undefined,只能用作函数的返回类型。
1、Boolean:布尔型,它可以使用true或false(用于进行逻辑运算)两个值中一个值。
2、int:表示为 32 位带符号整数的数据类型。
int 类表示的值的范围是:-2,147,483,648 (-2^31) 到 2,147,483,647 (2^31-1)。
3、uint:表示 32 位无符号整数的数据类型的方法。
4、String:表示一串字符的数据类型。
5、Number:表示 IEEE-754 双精度浮点数的数据类型。
6、.Date:表示日期和时间信息。
复杂数据类型:Object 对象、 Array 数组、 Date 日期、Error 错误对象、Function 函数、 RegExp 正则表达式、XML XML数据对象、XMLList。
其中Object 是所有对象的基类。
以下是各个类型的默认值∙Object、Array :null∙Number:NaN∙int、uint:0∙Boolean:false∙*:不定类型,默认值:undefined。
ActionScript编程正则表达式概述说明:正则表达式就是用一种特殊的字符串表达式,其可以描述一些特征,然后用这种字符串去验证另一些字符串是否符合这个特征,或者替换与特征匹配的部分字符。
在ActionScript 3.0中,正则表达式通常以斜杠“/”开始和结尾。
正则表达式属于全局类RegExp的实例,因此不需要在类中链接RegExp类。
1.创建正则表达式的实例在创建正则表达式时,需要声明RegExp实例,通过构造函数为其赋值,如下所示。
var RegExpName:RegExp=new RegExp("RegExpValue");在上面的代码中,各关键字的含义如下所示。
●RegExpName 正则表达式实例的名称●RegExp 正则表达式实例的数据类型●RegExp() 正则表达式的构造函数●RegExpValue 正则表达式的值除了通过以上方式外,还可以直接声明正则表达式,然后为其赋值,如下所示var RegExpName:RegExp=RegExpValue;2.正则表达式的属性在ActionScript中,RegExp类包含多种属性供用户选择。
通过这些属性,用户可以创建自定义的正则表达式实例,如表11-1所示。
表11-1 正则表达式的属性多数正则表达式的属性都可以通过表达式标志,直接书写在表达式的尾部。
3.正则表达式的方法正则表达式实例可使用的方法主要包括两种,即exec()方法和test()方法。
exec()方法的作用是在给定的字符串中执行正则表达式搜索。
当正则表达式实例非全局匹配型时,从字符串的开头搜索,否则则从正则表达式实例指定的索引位置开始搜索。
exec()方法返回的值可以分为2种。
当字符串与正则表达式不匹配时,返回值为null;否则,返回一个对象,该对象包含一个数组、一个非负整数以及一个字符串,如下所示。
●数组元素0包含完全匹配的字符串,其他元素则为与正则表达式中的括号组相匹配的字符串●非负整数匹配的字符串在整个字符串中的位置●字符串被匹配的整个字符串test()方法的作用是对给定的字符串进行匹配测试操作。
Action Script 3.0 自定义函数在actionScript 3.0中可以通过两种方法来定义函数:使用函数语句和使用函数表达式。
如果采用静态或严格模式的编程,则应该使用函数语句来定义函数;如果有特定的需求,需要用函数表达式来定义函数,则才使用该方法。
函数表达式更多地运用地动态编程或标准模式编程中。
1.函数语句函数语句是在严格模式中定义函数的首选方法。
函数语句是以function关键字为开头,其使用语法如下所示。
function 函数名(参数列表):数据类型{代码块}其中,函数名用来说明函数的功能,因此,函数名的命名最好能够表达要实现的功能。
例如,playMovie表示播放影片,toString表示转换为字符串类型,nextFrame表示跳转到下一帧,getTime表示获取时间。
函数根据需要,可以向函数中的代码传递外部的变量即参数。
如果不需要传递参数,则不需要加入参数,这样的函数叫做无参函数。
例如,play()函数就是一个无参函数。
如果函数需要传递参数,这样的函数叫做有参函数。
当传递多个参数时,则在小括号中以逗号来分隔参数列表。
例如,trace()函数就是有参函数,可以向这个函数传递一个或多个参数。
函数中的代码块可以返回一些数据,这些数据可以是简单数据类型,也可以是复杂数据类型。
数据类型表示函数返回的数据类型,当不需要返回数据时,数据类型应该标识为void,即表示没有返回值。
例如,trace()函数就没有返回值,而toString()函数就返回一个字符串,代码如下所示。
var num:Number=123.456;var str:String=num.toString();trace(str,typeof(str));上面的代码使用toString()函数将数字型数据转换为字符串,并返回该字符串。
然后,通过“=”运算符把这个字符串赋值给变量str。
注意,trace()函数就不能这样使用,因为它没有返回值。