| 分类: [技术]参考资料 |
********************************************************
7.对象初始化{}
7.对象初始化{}
//语法“
//object{name1:value1;name2:value2;...........nameN:valueN);
//参数:
object:要创建的对象
//nameN:特性的名字
//valueN:与每一个特性相对应的值
//描述:
操作符,创建一个新的对象,并由name和value特性指定的值对其进行初始化。
//创建的对象将使用“object"这个普通对象来作为之际的原型
//使用这个操作符与调用"new
object"的作用相同,并且可以用赋值操作符=来为特性赋予值。
//下面的代码分别用new
Obeject和{}来创建一个空对象。
/*
object={};
object=new Obeject();
下面的代码创建一个account对象,并初始化塔的特性name,address,city,state,zip和balance.
account={name:"john
Smith",address:"123 Main street",city:"blossomville"};
下面的代码展示了被嵌套在其他电影对象内部的对象和数组是如何被初始化的。
person={name:"Peter
Piper",children:["jack","jill","moe"]}; //这里有冒号
下面的代码展示了达到上面的目的的另一种途径,两种方法的结果是一样的。
person=new
Person();
person.name=`john smith`;
person.children=new
Array();
person.children[0]=`jack`;
person.children[1]=`jill`;
具体可以参考文件文本“数组访问操作符[]”
*/
//在初始化操作符里面的数组使用的“:”而不是=,用Object初始化对象对于数组的元素使用的单引号,每一句后面还有分号,这是不同于数组操作符的地方。
//参数:
//描述:
//在初始化操作符里面的数组使用的“:”而不是=,用Object初始化对象对于数组的元素使用的单引号,每一句后面还有分号,这是不同于数组操作符的地方。
************************************************************
8.按位与按位或”或“按位非 //按位或"|" //或“||”
8.按位与按位或”或“按位非 //按位或"|" //或“||”
语法
expression1||expressioon2,其中exp1与exp2是布尔值或者一个能够转换表示为布尔值的表达式,只要exp1和exp2中任意一个的布尔值返回为true,结果就是true,只有当且仅当exp1和exp2同时为false时为false.
//下面的语句表示料在一个if语句中如何使用||
want=true;
need=false;
love=false;
if(want||need||love){
trace("Must have a True in
here");
}
//下面的代码是关于按位与并赋值“|="
x=20;
y=6;
x|=y;
trace(x);
trace(y);
//按位与的意义就是对于两个二进制数如果相同为上面的数只要有一个是1则返回1,当且仅当二者在此位上都为0时才返回0
//按位非~将expression转换为32位的无符号整数,然后改变数字的符号并减去1,与我们平常用的求补码的运算是不一样的。
//语法
~expression
x=1;
x=~x;
trace(x);
//效果相当于 x=-x-1
x="merry";
x+="Christmas";
trace(x);
//下面的语句表示料在一个if语句中如何使用||
//下面的代码是关于按位与并赋值“|="
//按位与的意义就是对于两个二进制数如果相同为上面的数只要有一个是1则返回1,当且仅当二者在此位上都为0时才返回0
//按位非~将expression转换为32位的无符号整数,然后改变数字的符号并减去1,与我们平常用的求补码的运算是不一样的。
***********************************************************
9按位左移
9按位左移
//按位右移的语法 exp1>>exp2
//exp1是数字或表达式或字符串;exp2是数字
//按位右移后坐便空出来的位数用该数的32位整数的最高为来填充,移出了右边最后一位的数字将被丢弃
/*x=65535>>8 结果将是255,因为十进制的65535是二进制中的1111111111111111(16个),移动八位后得到11111111,就是十进制中的255,有应为1111111111111111只有16位,冲17到32位都是0,所以左边空出来的8位用0来填充。 x=-1>>1 结果将是-1,因为-1的二进制是11111111111111111111111111111111(32位),最高位为1,所以坐便空出的位数用1来填充。*/
x=15>>1;
y=1>>1;
trace(x);
trace(y);
trace(x>>=1);
//下面的例子是一个大型的
function convertToBinary(number) {
var result=""
for(var
i=0;i<=32;i++){
//使用按位与来提取最低位
var
isb=number&1; //将这个未加到我们的result字符串上面
result=(isb?"1":"0")+result//设置变量不应该用数字开头,开始时我用"1sb“作为变量,结果出错误
//将number右移一位以看见下一位
}
number>>=1;
return result;
}
convertT0Binary(479)???????????????????
在最后显示的是1111111111111111111111111而不识期待的值!!!!!!!!!!!!1
//exp1是数字或表达式或字符串;exp2是数字
//按位右移后坐便空出来的位数用该数的32位整数的最高为来填充,移出了右边最后一位的数字将被丢弃
/*x=65535>>8 结果将是255,因为十进制的65535是二进制中的1111111111111111(16个),移动八位后得到11111111,就是十进制中的255,有应为1111111111111111只有16位,冲17到32位都是0,所以左边空出来的8位用0来填充。 x=-1>>1 结果将是-1,因为-1的二进制是111111111111111111111111
//下面的例子是一个大型的
在最后显示的是111111111111111111111111
*****************************************************************
16”按位与“等的脚本
16”按位与“等的脚本
//按位与的符号是“&”;
表达式为“expression1&expression2"其中expression1和expression2为任意的数字
//描述将expression1与expression2转换为32位的无符号整形,并在这两个32位整形的每一位上执行布尔值运算。
//结果将是一个新的32位无符号整形。
//*****************************************
//与操作符为”&&“
要求与的两端的条件同时满足式表示为”true"而任意一个并不满足式表示为"false"
//下面举一个例子:
winner=(chocolateEggs>=10)&&(jellyBeans>=25);
loser=(chocolateEggs<=1)&&(jellyBeans<=5);
if(winner){ alert="you win the hunt!"; }
if(lose){ alert="now thats a unhappy hunting!";
}
trace(alert)//但是这里人然没有搞清楚为什么不能显示
//按位与并且赋值"&=";例如x &=y等同于x=x&y。按位与之后的值(如果两者中不是简单的1与0)
//那么等于expression2的值。不管是数还是字符串。详细见下面的解释。
x=15;
y=6;
x&=y;
trace(x);
trace(y);
if m=15 and n=4 then m&=n;
trace(m);//没有搞明白,还是***(回答见“减乘”文档里面)
///////////////////////////////////////////////////////////
//重要的进展
x=?&?
y=(x?"1":"0");
trace(x);
trace(y);
/*x=1&0--------0,0 x=1&1--------1,1
x=0&1--------0,0 x=0&0--------0,0
*****************************************************************
17.按位无符号右移
//描述将expression1与expression2转换为32位的无符号整形,并在这两个32位整形的每一位上执行布尔值运算。
//结果将是一个新的32位无符号整形。
//*****************************************
//与操作符为”&&“
要求与的两端的条件同时满足式表示为”true"而任意一个并不满足式表示为"false"
//下面举一个例子:
//按位与并且赋值"&=";例如x &=y等同于x=x&y。按位与之后的值(如果两者中不是简单的1与0)
//那么等于expression2的值。不管是数还是字符串。详细见下面的解释。
///////////////////////////////////////////////////////////
//重要的进展
*****************************************************************
17.按位无符号右移
//按位无符号右移
//>>>不保留原来数的符号有移并用0来填充空位;
x=-15>>>1;
trace(x);
//>>>不保留原来数的符号有移并用0来填充空位;
*****************************************************
18._alpha
18._alpha
/*语法
instancename._alpha
instancename._alpha=value;
“instancename”是一个电影剪辑的名字 */
instancename._alpha
instancename._alpha=value;
“instancename”是一个电影剪辑的名字 */
*****************************************************
19.坐标轴的设计
19.坐标轴的设计
制作7个input文本框
鼠标:
x轴坐标 var x
y轴坐标 var y
线段:
x1的坐标 var x1
x2的坐标 var x2
y1的坐标 var y1
y2的坐标 var y2
|AB|的值 var ab
|ab|=SQR((x1-x2)2+(y1-y2)2)
坐标轴转换的问题,
屏幕坐标与笛卡儿坐标坐标 x1=x2-400
y1=y2+400
两点之间距离的计算ab=SQR((x1-x2)2+(y1-y2)2);
//第一帧
startDrag("mouse","true");
fscommand("fullscreen","true");
x=getProperty(mouse,_x)-400;
y=getProperty(mouse,_y)+400;
ab=Mth.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
//在退出的隐藏按钮上
on(release){
fscommand("quit");//开始时忘记了为MC“mouse"命名,故整个团都跟着动了
}
//在动画中还包含有一个空动画"mouse"用来实现鼠标跟随动画
鼠标:
线段:
坐标轴转换的问题,
//在动画中还包含有一个空动画"mouse"用来实现鼠标跟随动画
**************************************************************
20.数组的使用方法
20.数组的使用方法
//简单的使用
myArray=[];//开始时候漏掉了这一句,所以失败。
myArray[0]="ja";
myArray[1]="ka";
myArray[2]="la";
myArray[3]="ha";
trace(myArray);
//////////////////////////////////
/* 数组的方法汇总
concat *
链接参数,并将链接的结果作为一个新的数组返回
join
* 将数组中的所有元素连接成一个字符串
pop
* 删除一个数组中的最后哦一个元素,并返回它的值
push
* 添加一个或多个元素到一个数组的后面,并返回数组现在的新长度
reverse * 颠倒数组的方向
shift *
删除数组的第一个元素并返回它的值
slice *
提取数组的一部分并将它作为一个新的数组返回
sort
* 按某个顺序对数组进行排序
splic *
从一个数组总删除或添加元素
toString*
返回一个字符串以描述这个Array对象中的元素(的类别)
unshift *
添加一个或多个元素到数组的开始处,并返回新数组的长度
lenth *
返回数组的长度
*/
/* 语法
new Array();
new Array(length);
new
Array(element0,element1,element2,...........elementN);
"length"一个整数指定数组中元素的个数,在非连续元素的情况下,这个length指的是数中的
最后一个元素的索引数加上1;
"element0,element1,element2,...elementN"一个由两个或更多任意数组成的列表,
一个数组中的第一个元素中是具有索引值0,如果你没有指定任意值,那么一个0长度的数组将被建立。*/
//例子:下面建立辽一个新的数组初始长度为0
myArray=new Array();
//这里用的是圆括号而不是方括号
//下面的例子建立辽一个新的对象ATeam,其初始长度为4
ATeam=new
Array("ja","ka","fa","ta");
//上面的代码等同于下面的代码:
myArray[0]="ja";
myArray[1]="ka";
myArray[2]="fa";
myArray[3]="ta";
//又有数组操作符的方法可以得知另外一种设立数组的方法“[]”
//创建空数组的另外一种方法
myArry=[];
//myArray=["ja","ka","fa","ta"]
//////////////////////////////////////////////////////////////////////////////////
/*
Array.concat链接参数,并将链接的结果作为一个新的数组返回
语法
myArray.concat(value0,value1........valueN);
value0.....valueN是将被连接到一个新数组中的数字、元素或字符串
方法:链接在参数中指定的元素,创建并返回一个新数组。如果这个参数指定的是一个数组,那么数组中的元素将被链接而不是数组本身。*/
//例子:
alpha=new
Array("a","b","c");
numeric=new Array(1,2,3);
alphaNumeric=alpha.concat(numeric);
trace(alphaNumnberic.join());
//////////////////////////////////////////////////////////////////////////////////
/*
Array.concat链接参数,并将链接的结果作为一个新的数组返回
语法
****************************************************************
21.数组使用方法之pop与push与reverse与shift
21.数组使用方法之pop与push与reverse与shift
//Array.pop删除一个数组中的最后哦一个元素,并返回它的值
myPet=["ja","fa","ka","ta"];
myPetpoped=myPet.pop();
trace("原来的数组是");
trace(myPet);
trace("pop动作执行后的结果是");
trace(myPetpoped);
//Array.push添加一个或多个元素到一个数组的后面,并返回数组现在的新长度
myPetpushed=myPet.push("la","sa");
trace("push动作执行后的结果是");
trace(myPetpushed);
//Array.reverse颠倒数组的方向
trace("reverse动作执行后的结果是");
trace(myPet.reverse());
//reverse与其他几个有点不一样的地方就是后面跟一个()
//Array.shift 删除数组的第一个元素并返回它的值
myPetshift=myPet.shift();
trace("shift动作执行后的结果是");
trace(myPetshift);
//Array.push添加一个或多个元素到一个数组的后面,并返回数组现在的新长度
//Array.reverse颠倒数组的方向
//reverse与其他几个有点不一样的地方就是后面跟一个()
//Array.shift 删除数组的第一个元素并返回它的值
****************************************************************
22.数组的使用方法之“join”length“
22.数组的使用方法之“join”length“
//Array.join
/*语法
myArray.join();
myArray.join(separator);
参数
separator:一个字符或字符串,它将在返回的数组中分隔数组元素。为空时就是默认值,为逗号(,)。
*/
//例子
a=["Earth","Moon","Sun"];
//assigns"Earth,Monn,Sun"to myVar1
myVar1=a.join();
myVar2=a.join("+");
myVar3=a.join("%");
trace(myVar1);
trace(myVar2);
trace(myVar3);
My=myVar1.concat(myVar2,myVar3);
trace(My);
//在这一句如果改为trace(My.join("%%%%"));等是不行的,因为My中的元素已经有了分割符号了
////////////////////////////////////////////////////////////////////////////////////////////// //
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Array.length返回数组的长度
/*
语法 mayArray.length
特性。包含数组的长度,当新的元素被添加到数组里面时,这个特性自动被更新在下面的这个赋值过程中:myArray[index]=value
比如myArray[0]="ja"; 如果index是一个数字,并且index比length更大的话,这个length特性将自动更新为index+1.
*/
//下面的代码说明了length特性是如何被更新的
///////////////////////////////////////////////
//初始化length的特性为0
myArray=[]
myArray[0]="ja"; //myArray.length被更新为1
myArray[9]="ka"; //myArray.length被更新为10
trace(myArray);
//中间缺少的深度将用空白来表示,并且仍然有分隔符号
trace(myArray.length);
/*语法
参数
*/
//例子
////////////////////////////////////////////////////////////////////////////////////////////// //
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Array.length返回数组的长度
/*
语法 mayArray.length
特性。包含数组的长度,当新的元素被添加到数组里面时,这个特性自动被更新在下面的这个赋值过程中:myArray[index]=value
比如myArray[0]="ja"; 如果index是一个数字,并且index比length更大的话,这个length特性将自动更新为index+1.
*/
//下面的代码说明了length特性是如何被更新的
///////////////////////////////////////////////
//初始化length的特性为0
***************************************************************
23.数组动作之“slice”与“sort”
23.数组动作之“slice”与“sort”
//Array.slice
//slice是切成薄片的意思,含切割意思
/*语法
myArray.slice(start,end);
start与end表示起始与终止的索引数,是数字,如果start是一个复数的话,将从末尾开始切割,-1表示最后一个元素 ends是一个复数的话,终止点被指定为数组的结束处,-1是最后一个元素. 方法:提取一个自数列并把它返回为新数列,不改变原数列的任何性质。返回的数列包括start元素以及从start到end的一切元素,但是不包括end本身*/
myArray=[0,1,2,3,4,5,6,7,8,9];
trace(myArray);
my1=myArray.slice(3,7);
trace(myArray);
trace(my1);
///////////////////////////////////////////////////////////
//slice是切成薄片的意思,含切割意思
/*语法
start与end表示起始与终止的索引数,是数字,如果start是一个复数的话,将从末尾开始切割,-1表示最后一个元素 ends是一个复数的话,终止点被指定为数组的结束处,-1是最后一个元素. 方法:提取一个自数列并把它返回为新数列,不改变原数列的任何性质。返回的数列包括start元素以及从start到end的一切元素,但是不包括end本身*/
///////////////////////////////////////////////////////////
//Array.sort
/*语法
myArray.sort();
myArray.sort(orderfunc);
"orderfunc"一个可选得比较函数用于决定排序的顺序。给定指定的参数A和B,这个指定的顺序函数将按下面所述执行一个排序:::: ///
//如果在一个排序的序列中A出现在B之前,则返回-1; ///
//如果A=B,则返回0; ///
//如果在一个排序中A出现在B之后,则返回1 “sort"根据每次函数的返回值来排序数组。
//方法:排序数组,且排序不做拷贝。如果你省略了这个orderfunc ,flash将是用<操作符来排序数组 下面举例说明这两种情况*/
//例子
var
fruits=["orange","apple","strawberries","pear","cherries"];
trace(fruits.join());
fruits.sort();
trace(fruits.join());
////////////////////////////////////////////////////////////////////////////////////////////
//下面是一个较大的例子,是同一个指定的顺序函数 var
password=["gary:123","jack:234","john:345","steve:456","dany:567"];
function order(a,b){
//要排序的项目有name:password这样的形式
//排序值使用项目的name作为关键字key来考虑。
var name1=a.split(:)[0];
var name2=b.split(:)[0];
if(name1name2){ return 1;
}else{return 0; }
}
trace(passwords.join());
password.sort(order);
trace("Sorted:");
trace(password.join());
//方法order相当于比较效率比较低下的气泡法,采用的是相邻两个元素进行比较的方法。如果前面的元素的值大于后面的元素则返回1,sort对1采取的动作是交换位置。而返回0和-1都不交换位置。如此循环
//方法是自己事先设定好,然后再来调用
/*语法
"orderfunc"一个可选得比较函数用于决定排序的顺序。给定指定的参数A和B,这个指定的顺序函数将按下面所述执行一个排序:::: ///
//如果在一个排序的序列中A出现在B之前,则返回-1; ///
//如果A=B,则返回0; ///
//如果在一个排序中A出现在B之后,则返回1 “sort"根据每次函数的返回值来排序数组。
//方法:排序数组,且排序不做拷贝。如果你省略了这个orderfunc ,flash将是用<操作符来排序数组 下面举例说明这两种情况*/
//例子
////////////////////////////////////////////////////////////////////////////////////////////
//下面是一个较大的例子,是同一个指定的顺序函数 var
前一篇:[AS]AS技术-1
后一篇:[AS]AS技术-3
< 前一篇[AS]AS技术-1
后一篇 >[AS]AS技术-3


加载中…