//序// 我不是大虾,我是菜鸟,菜鸟最清楚菜鸟需要什么,于是,我拿出我的笔记.鬼火虽然不是什么大师什么大虾,大鸟,但是我相信对你,一定会有帮助----------前提示你自己要认真看
// 引言//
读补习班时,养成了"凡看书必笔记,无笔记无效果"之恶习,到现在仍不可改.延续至flash5 延续至flashmx.自认书中精华,记之;自认书中未录之处,添之,于是有笔记数十,心得数十. 笔记中,约6成为书中知识,余4成,为自己即兴所添.今出之与闪友共享,但望可助初学之人 一二. //第一部分// ******************************************** 1.flash mx编写过程中的错误对于组件 //错误在于未将滚动窗格命名 //文本框与文本框的变量没有分清楚,有时候没有给文本的变量命名而给文本命了名。 //注意文章颜色与背景色不要相同,造成很难发现的麻烦 //本题错无在未命组件的名。给文本设置变量和直接用点语法指向文本效果相同。 //错在没有命名,给组件命名已经经常出错误了。组件命名在其instansname和chang handler中要命相同的名称. //取得文本框中的值在无变量而有文本名称时候用"textname.text",在有变量名“var"时候,直接可以用变量名来代指。 //取得组件中的指在action中,对于可以选择的组件使用"组件变量.getvalue()"或者可以分别对待使用其他语句. //在ouput中显示选择的项的方法,首先用function建立用组件名做函数名的函数,再用trace语句。如trace("你的个爱好是”+上网._name) //在表单中赋予选项的方法1:直接用组件的面板,2:用如下语句 //onclipevent(load){ // _root.组件名称.setlable("??")##对复选框 //_root.组件名称.additem("选项名",n)##对组合列表框如果要将某一行一开始就选中,在n的位置输入_root.a //对列表框的方法与前者不同参考“创建表单”的代码,如下: //onclipevent (mouseup) { //myobject=new object(); //myobject.myhandler=function (component){ //trace("你所学的专业是"+_root.listbox1.getselecteditem().label); //}; //_root.listbox1.setchangehandler("myhandler",myobject); //}##其中listbox1是组件名称,中间最大的不同是: _root.组件名.getselecteditem().lable //创建提交按纽只需用一般的按纽设置方法,并且指明要发生的事件在action中,如“创建表单”中的提交按纽的代码 //on (release) { // gotoandstop("输出文本",1);
// out="亲爱的"+name+"你好"+newline+"你的个人信息如下"+newline+"性别:"+sex+newline+"年龄:" //+age+newline+"籍贯:"+nativeplace+newline+"教育水平:"+education+newline+"其他:"+others+newline+"请确认!"; //} //滚动窗格的设置也是电影触发然后 _root.组件名.loadscrollcontent("friend.jpg"); //参考“创建滚动窗格"代码 // onclipevent (load) { // _root.scollpanl.loadscrollcontent("照片1");} //其实所有的组件都可以采用同一类的语句来赋予值,就是使用getvalue语句,参考”留言板"的原代码 //function onclick(component){ // _root.result.text="姓名:"+name.text+"\r评价:"+choice.getvalue()+"\r性别:" // +sex.getvalue()+"\r留言:"+word.text+"\r联系:"+mail.getvalue();} //在滚动窗格中要看到图象应该按照以下操作:1,注意滚动窗格的命名 2,图片必须存在相同的文件夹中,同时该图片必须被导入到.fla文件中 ******************************************************** 2.雷电脚本 heightstart=10;//定义"闪光段"高度最小值 heightrange=50;//高度范围 anglestart=-80;//转角最小值 anglerange=160;//转角范围 setproperty("basic",_visible,false);//设置"闪光段"为不可见
//第二帧的脚本 i=1; currentx=300;//第一个闪光段的位置(x) currenty=-100; do{ i=i+1; heightoffset=random(heightrange)+heightstart;//产生随机的高度, angleoffset=random(anglerange)+anglestart;//产生随机的旋转角度 newobj="basic"+i;//产生一个新的字符串,用于下一条语句 duplicatemovieclip("basic",newobj,i);//复制电影并且用"newobj"为其命名,设置它的深度为i setproperty(newobj,_x,currentx); setproperty(newobj,_y,currenty); setproperty(newobj,_height,heightoffset); setproperty(newobj,_rotation,angleoffset); setproperty(newobj,_xscale,100-5*i);//设置刚才复制的闪光段的宽度 currentx=currentx-(math.sin(angleoffset*3.14/180))*heightoffset*7;//计算下一个闪光段的位置 currenty=currenty+(math.cos(angleoffset*3.14/180))*heightoffset*7;//".7"的意识是什么?0.7简写 }while(i<10); //注意“闪光段”中心的位置也很重要,需要改变其中心位置到其顶端,才能使复制后的闪光段与上一个上光端相衔接。 *********************************************************** 3.数组访问操作符[] //数组访问操作符的语法: //myarray["a0","a1",..........,"an"]; //object[value1,value2,.......,valuen]; //参数: //myarray:数组的名字 //a0,a1.....an:在一个数组中的元素 //value1...valuen:特性的名字 //描述: /*创建一个新的对象,并初始化变元(value1.......)中指定的特性或者用变元(a0.......) 初始化一个新数组中的元素。创建的对象将用普通对象(object)来作为它的原型(prototype). 使用这个操作符与调用new object等同,并且可以用复制操作符=来为对象的特性赋值*/ //例如:创建空数组的两种不同方法: //myarray=[]; //myarray=new array(); //下面是一个简单数组的例子: //myarray=["red","orange","yellow","green","blue","purpul"]//注意这不需要“;” //上面的代码等同于下面的代码: /*myarray[0]="red" myarray[1]="orange" ...........*/ ********************************************************* 4.按位异或“^”以及按位异或并赋值 //首先将expression1和expression2转换为32位无符号整形,然后将expression1和expression2的相应位置 //进行比较,如果为异(即相应位置的值不相同),就取真1;相同(如果为同)就为假取0。 //例如: //15^9返回6(1111^1001=0110) //按位异或并赋予值^= //例子: x=100; y=5; x^=y; trace(x);//十进制转换为二进制时,将最后除出来的数放在最高位。 *************************************************************** 5逻辑非
happy=false; if(!happy){ trace("dont worry be happy");}//!的意思是逻辑非,相当于"相反"的意思 //下面是“不等于”(!=)的用法 /*对于expression1!=expression2,如果二者相等,那么返回值就是“false",如果二者的值不相等 那么返回值就是”true" */ a="david"; b="fool"; if(a!=b){trace("davidid not a fool");} //求余的表达式为expression1%expression2 m=13%5; trace(m); //另外求余并赋予值“%=”,要将求于后所得到的值赋予expression1. //比如x=4,y=3,c%=y,结果c=1,expression1%expression2,结果expression1的值变为了所求得的余数 //所有类似的符号都有与%=相似的性质,x%=y等同于x=x%y ********************************************************** 6关于自加的一些解释 比如,x=1,y=x++,那么,现在的y是1,现在的x是2; 而x=1,y=++x,那么现在的x是2,y是2。 ****************************************************** ******************************************************** 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初始化对象对于数组的元素使用的单引号,每 //一句后面还有分号,这是不同于数组操作符的地方。 ************************************************************ 8.按位与按位或”或“按位非 //按位或"" //或“”,语法 expression1expressioon2,其中exp1与exp2是布尔值或者一个能够 //转换表示为布尔值的表达式,只要exp1和exp2中任意一个的布尔值返回为true,结果就是true, //只有当且仅当exp1和exp2同时为false时为false. //下面的语句表示料在一个if语句中如何使用|| want=true; need=false; love=false; if(wantneedlove){ 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); *********************************************************** 9按位左移 //语法 expression1<
//按位右移的语法 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 ***************************************************************** 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.按位无符号右移 //按位无符号右移 //>>>不保留原来数的符号有移并用0来填充空位; x=-15>>>1; trace(x); ***************************************************** 18._alpha /*语法 instancename._alpha instancename._alpha=value; “instancename”是一个电影剪辑的名字 */ on(release){ setproperty(star._alpha=30); } /* or on(release){ star._alpha=30; } 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"用来实现鼠标跟随动画 ************************************************************** 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()); **************************************************************** 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); **************************************************************** 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); *************************************************************** 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); ///////////////////////////////////////////////////////////
//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都不交换位置。如此循环 //方法是自己事先设定好,然后再来调用 ***************************************************************
24.数组的使用之splice和tostring和unshift //array.splice从一个数组总删除或添加元素 /*语法: myarray.splice(start,deletecount,value0,value1..........,valuen); "start"作为要插入或者删除起始点的元素的索引。 "deletecount"将要被删除的元素的个数。被删除的数包括start参数指定的元素。 如果没有指定deletecount的值,将删除从start到数组末尾处的所有元素 "value":0或者更多的将要插入到数组中有start指定的位置,这个参数是可选的*/ //方法:这个方法将修改数组本身而不作拷贝 //例子 myarray=[1,2,3,4,5,6,7]; trace(myarray); myarray.splice(2,2,789,123); tt=myarray.splice(2,2,789,123);//返回被删除的元素组成的数组 trace(tt); trace(myarray); //////////////////////////////////////////////////////////////////////////////////////// //tostring返回一个字符串以描述这个array对象中的元素(的类别) /*语法 myarray.tosting(); 没有参数;返回一个字符串 数组中的每一个元素,从索引值为0到索引值为myarray.length-1的全部元素被连接成为一个字符串,并以逗号作为分隔符。*/ //例子 myarray=[1,2,3,4,5,6,7,8,9]; trace(myarray.tostring()); trace(myarray.tostring().join("~"));//由于返回的是一个字符串所以这一语句是无用的
//myarray.unshift添加一个或多个元素到数组的开始处, 并返回新数组的长度array对象中的元素 /*语法 myarray.unshift(value1......valuen); "value"一个或多个数字、元素或变量,他们将插入到数组的开头*/ //例子 myarray=[1,2,3,4] trace(myarray); tt=myarray.unshift(5,6,7,8); trace(tt);//返回的是长度,而不是数组的元素 ***************************************************************** 25.数组的综合运用 myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示"); trace("do concat"); trace(myarray); myarray.concat("tt","yy"); trace(myarray); trace(myarray.concat("tt","yy")); trace("////////////////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示"); trace("do join"); trace(myarray); myarray.join("@"); trace(myarray); trace(myarray.join("@")); trace("////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do pop"); trace(myarray); myarray.pop(); trace(myarray); trace(myarray.pop()); trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do push"); trace(myarray); myarray.push(qw,er,rt); trace(myarray); trace(myarray.push(qw,er,rt)); ///////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do reverse"); trace(myarray); myarray.reverse(); trace(myarray); trace(myarray.reverse()); /////////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
myarray=[1,2,3,4,5,6,7,8,9];// trace("do shift"); trace(myarray); myarray.shift(); trace(myarray); trace(myarray.shift()); ///////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do slice"); trace(myarray); myarray.slice(2,3); trace(myarray); trace(myarray.slice(2,3)); //////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do sort"); trace(myarray); myarray.sort(); trace(myarray); trace(myarray.sort()); ///////////////////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do splice") trace(myarray); myarray.splice(2,3,ty,tu,ti); trace(myarray); trace(myarray.splice(2,3,ty,tu,ti)); ////////////////////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do tostring"); trace(myarray); myarray.tostring(); trace(myarray); trace(myarray.tostring()); ///////////////////////////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do unshift") trace(myarray); myarray.unshift(44,99); trace(myarray); trace(myarray.unshift(44,99)); //////////////////////////////////////////////////////////////////////////////// trace("/////////////////////////////////////////////////////////") myarray=[1,2,3,4,5,6,7,8,9];// trace("第一行为动作"); trace("第二行为原数组元素"); trace("第三行为动作执行后的原数组的新返回值"); trace("第四行为整个语句包含在trace动作中的显示");
trace("do length") trace(myarray); myarray.length(); trace(myarray); trace(myarray.length); ********************************************************** 26.数组的使用方法以及concat //简单的使用 myarray=[];//开始时候漏掉了这一句,所以失败。 myarray[0]="ja"; myarray[1]="ka"; myarray[2]="la"; myarray[3]="ha"; trace(myarray); ///////////////////////////////////* 数组的方法汇总 concat * 链接参数,并将链接的结果作为一个新的数组返回 join * 将数组中的所有元素连接成一个字符串 pop * 删除一个数组中的最后一个元素,并返回它的值 push * 添加一个或多个元素到一个数组的后面,并返回数组现在的新长度 reverse * 颠倒数组的方向 shift * 删除数组的第一个元素并返回它的值 slice * 提取数组的一部分并将它作为一个新的数组返回 sort * 按某个顺序对数组进行排序 splice * 从一个数组中删除或添加元素 tostring* 返回一个字符串以描述这个array对象中的元素(的类别) unshift * 添加一个或多个元素到数组的开始处,并返回新数组的长度 length * 返回数组的长度 */ /* 语法 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()); //下面的例子说明了如何链接多个数组 num1=[1,2,3]; num2=[4,5,6]; num3=[7,8,9]; nums=num1.concat(num2,num3); trace(nums); ********************************************************* 27.蒙板试验思考 蒙板层从被蒙版层取得性质,比如蒙版层的文字为白色,而被蒙版层的颜色为黑色,那么在此文字经过被蒙版层的黑色区域时候,取得蒙版层黑色的性质变成了黑色文字;而底色就是与被蒙版层最接近的那一个普通层。 如果没有普通层在其下面,那么舞台的颜色就作为背景色了。 蒙版层不透明透明(有实物或者有颜色铺在其上面)处,在实际中试虫被蒙版层取得性质的;而透明除却在实际中不表现出老背景色之外的其它性质. duplicatemovieclip("movie","movie"+num,number(num)+1); num=number(num)+1; if(number(num)>=10){ num=0;}
**************************************************************** 28.点操作符 //点操作符的语法: //object.property_or_method //instancename.varibale //instancename.childinstance.variable //object为一个对象的实例,某些对象在使用时只能使用它的实例,可以通过那个对象的构造器函数来创建对象的实例。 //这个对象可以是任何预定义的actionscript或者一个自定义的对象。这个参数中在.点操作符的左边。 //property_or_method 与对象有关的特性或方法 //例如,通过电影剪辑person识别变量haircoler的当前值: person.haircolor; //下面的代码说明了如何用点语法来创建一个数组的数据结构: account.name="gary smith"; account.address="123 main st"; account.city="any town"; account.state="ca"; account.zip="12345";//思考:如何应用trace来输出数组的结果。 ********************************************************* 29.试验登录窗口与动画复制 onclipevent (load) { var i=age; var t=name; var k=1; if(i>0) { duplicatemovieclip("three","three"+i,-i+2) setproperty("three"+i,_x,three._x+10); setproperty("three"+i,_x,three._y+10); k++; i-- ////////////////////////////////////////// //这是加载在提交按纽上面的 if (age>=24){ gotoandstop(3); yu="不要装成熟!!!!大哥。"; } else{if(age<=17){ gotoandstop(3); yu="来,过来吃糖。你有这么婴儿吗?!";} } else{gotoandstop(2);}} ********************************************************** 30.boolean函数与boolean对象 //boolean函数语法 //boolean(expression) //将指定的参数转换为一个布尔型,并换回这个布尔值 //expression是变量、数字或者字符串 trace(boolean(-3)); trace(boolean(-2)); trace(boolean(-1)); trace(boolean(0)); trace(boolean(1)); trace(boolean(2)); trace(boolean(3)); //结果只有0返回false其它数字返回的值都是true //****************************************** //boolean对象是一个简单的封装对象,可以获得boolean对象的原始数据类型或 //字符串表示法 //tostring 换回boolean对象的支付串表示法(true或false) //valueof 返回指定的boolean对象的原始值类型 /*语法 new boolean(); new boolean(x); x是一个数字、字符串、布尔、对象、电影剪辑或其他表达式,这个参数是可选的 如果省略了x那么将默认为false,指定了x之后遵循以下规则: 如果x是一个数字,为0时返回false,不为0时返回true ; 如果x是一个布尔型,函数将返回x ; 如果x是一个电影剪辑或对象,而且x不等于null,则函数返回true ,否者返回false 如果x是一个字符串,如果number(x)不等于0,在我返回true,否则返回false. */ trace(new boolean()); trace(new boolean(true)); trace(new boolean(false)); trace(new boolean(ja)); trace(new boolean(aa)); trace(new boolean("aa")); ************************************************************* 31.color的脚本 //color对象(构造器) /* color方法汇总 getrgb 返回最后一尺setrgb调用设置的数字rgb值 gettransform 返回最后一次settransform调用设置的改变信息 setrgb 为一个color对象设置rgb值的16进展表示法 settansform 为一个color对象设置颜色改变 */ /*语法 new color(target); target是指定的电影剪辑名字*/ //例子 //这个例子为电影剪辑mymovie创建了一个新的名字为mycolor的color对象 mycolor=new color(mymovie); /////////////////////////////////////////////////////////////////////// /*color.getrgb 语法 mycolor.getrgb(); */ //下面的例子以一个16进制的字符串形式获得rgb值 value=(getrgb()).tostring(16); ////////////////////////////////////////////////////// //color.setrgb(0xrrggb; //下面的例子为电影剪辑mymovie设置rgb值 mycolor=new color(mymovie); mycolor.setrgb(0x993366); //////////////////////////////////////////////////////////// //color.settransform /*语法 mycolor.settransform(colortransformobject); 参数:colortransformobject:一个由普通对象object对象构造器串创建的对象, 用于为settransform方法指定颜色改变的参数值。这个颜色改变对象必须有以下这些参数:ra,rb, ga,gb,ba,bb,aa,ab. 描述 方法:为一个color对象设置颜色改变信息。colortransformobject变元是一个普通使用的对象object对象创建的对象,它含有用于指定一个颜色的红绿蓝以及透明度成分的参数,输入项的形式应为16进制。 ra,ga,ba,aa是成分的百分比 rb,gb,bb,ab是成分的偏移量*/ //可以向下面一样创建一个颜色改变对象: mycolortransform=new object(); mycolortransform.ra=50; mycolortransform.rb=100; mycolortransform.ga=50; mycolortransform.gb=200 mycolortransform.ba=80; mycolortransform.bb=120; mycolortransform.aa=30; mycolortransform.ab=200; //也可以使用下面这样的语法: //mycolortransform={ra:"50",rb:"100",...............} //例子 //为目标mymovie创建一个名为mycolor的颜色对象。 mycolor=new color(mymovie); mycolortransform=new object; mycolortransform={ra:"50",rb"244",ga:"40",gb:"112",ba:"12",bb:"90",aa:"40",ab:"70"} mycolor.transform(mycolortransform); **************************************************** *************************************************
32.我的as笔记里面关于loadvariable,geturl.....等的部分
经常看见有新手在上面问起相关的问题,我将我的一篇笔记传上来,由于这是自己的笔记 所以很详细,大家一看应该就明白了几种方法的用法.(因为我的笔记都是在做flash的同时 记录下来的,所以还保留着注释符号以及当时我手边的教材的影子) //////////////////////////////////////////////////////////////////////////// /* //下面的变量在你是用一部电影之前检查数据是否已经被装载,在装载之后才能够使用变量lastframevisited loadvariables("mydata.txt",0); gotoandplay(lastframevisited); //下面的代码中从文件中将变量装载到电影剪辑里面 on(release){ loadvariables("mydata.txt",_root.loadtargetmc); } //下面的代码中动作仅在变量全部被装载了之后才能够被执行 onclipevent(data){ gotoandplay(lastframevisibled); } //要想一个文本文件中储存的变量能够被flash使用必须符合标准的mime格式 1:变量与其值之间使用等号连接, 2:变量/指对之间用&隔开, 3:不能够含有任何的空格,如果要在一个变量中使用空格,需要用"+"来取代空格. 例如下面一个例子中 username=icefall&age=25&address=77+xuzhou&zip=266000 下面的例子中电影中将有一个飞机的电影剪辑和一个红色的按钮,通过在文本中读取变量而改变值 set_alpha=50&set_x=400*/ //必须以txt格式存档才能够被识别 /* geturl将所有的返回信息送至一个浏览器窗口而不是player loadvriable将变量载入到指定的timeline中 loadmovie将一部电影加载到一部指定的level中 可以指定三个量 url是一个文件,这个文件中存储着所需的变量 locating 是电影中的目标或者level(geturl)中没有这个参数 variable指定传送方式get或者post //例如,如果想跟踪一个游戏的最高分数,你可以在服务器上面储存分数score,每当有人玩这个游戏的时候就是用一个loadvariable动作将 score装入电影中, loadvariables(" http://www.ghostfire.com/script/high_score.php" ;,_root.scoreclip,get); 这个动作将从一个被叫做high_score.php的php脚本中读取变量*/ *******************************************************************************************************
//尾声// 不知道我的笔记是否有价值,反正贴出来吧.呵呵当然,我是不会全部贴出来的, 还是要有一点隐私的,呵呵.在高考结束之后,我就因为笔记的原因,被学校请回去 作了报告--------从这一点看出,我的笔记还是有一点水平的,呵呵.应为很多的笔记事 我连着.fla文件一起的,所以我现在没有传.fla文件,有些笔记看起来是看不明白的. 我想看看我的笔记是否受欢迎,再考虑是否将源文件也传上来. **********************************************************************************************************
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器