透明 发表于 2015-1-15 20:53:43

带来一篇参考:AS3及Flex的经常使用有用成绩-Flash actionscript

Flash8支持一种新的编码格式(On2的VP6),这种编码格式与Flash7的视频编码格式相比,有了很大的提高。
找材料的时分看到一篇文章很有用对老手的基础成绩都能够找到,便利查找谜底的工夫
【改动输入swf的标准,背景色彩或帧频】
在"Navigator"窗框里右键你的项目>选中"Properties">选中"ActionScriptCompiler">在"Additionalcompilerarguments"里输出你所必要的命令
如想改动背景色彩,请输出:-default-background-color0xffffff

【鼠标坐标】
mouseXmouseY
【反省变量范例并前往布尔值】
is
【反省变量范例并前往范例】
typeof
【反省工具范例并前往该工具】
as
【是数字但不是无效数字成绩】
varquantity:Number=15-"rabbits";
trace(typeofquantity);//显现:"number",但它是NaN(notanumber)
trace(quantityisNumber);//true
trace(quantity!=NaN);//false
//利用isNaN()函数检测:
isNaN(quantity);//true
//检测变量是不是内含无效数字:
!isNaN(quantity);//false
【作废默许的严厉编译形式】
在"Navigator"窗框里右键你的项目>选中"Properties">选中"ActionScriptCompiler">作废"Enabelcompile-timetypechecking"选项
【基元数据范例和庞大数据范例比如"值范例"和"援用范例"】
基元数据范例相似按值传送:
varintOne:int=1;
varintTwo:int=1;
trace(intOne==intTwo);//true
【庞大数据范例相似按援用传送】
vararrayOne:Array=newArray("a","b");
vararrayTwo:Array=arrayOne;
trace(arrayOne==arrayTwo);//true
//-----------------------------------
vararrayOne:Array=newArray("a","b");
vararrayTwo:Array=newArray("a","b");
trace(arrayOne==arrayTwo);//false
【优化逻辑AND(&&)和OR(||)的小常识】
关于逻辑And(&&):
除非前提表达式的前半部分为真,不然,ActionScript不会再往求算逻辑AND运算符的后半部.假如前半部为假,全部前提表达式必定为假,以是再往求算后半部就没效力了.
关于逻辑OR(||):
除非前提表达式前半部为假,不然,ActionScript不会再往求算逻辑OR运算符的后半部,假如前半部为真,全部前提表达式必定为真.
总结:利用逻辑AND(&&)时,把了局最大概为false的表达式放到后面;利用逻辑OR(||)时,把了局最大概为true的表达式放到后面.
【Timer类注重事项】
不要以为Timer能够极为正确;利用Timer工夫距离不要低于10毫秒.
【private,protected,internal,public会见权限】
private:只能在类自己外部会见,按常规,定名公有成员时以下划线"_"开首;
protected:能够由类自己或任何子类会见.但这是以实例为基本的.换言之,类实例能够会见本人的回护成员大概父类的回护成员,但不克不及会见不异类的别的实例的回护成员,按常规,定名回护成员时以下划线"_"开首;
internal:能够由类自己大概不异包内的任何类会见;
public:能够在类外部会见,也能够由类实例会见,大概声明为static时,能够间接从类会见.
【一个函数具有未知个数的参数,用arguments工具或"...(rest)"标记会见它的参数】
注重:利用"...(rest)"参数会使arguments工具不成用;
privatefuncitonaverage():void{
trace(arguments.length);//输入参数的个数
//arguments的范例是:object,但能够像会见数组一样往会见它
trace(arguments);//输入第二个参数
}
privatefunctionaverage(...argu):void{
trace(argu);//输入第二个参数,argu参数名是自界说的.
}
【毛病处置try,catch,finally】
privatefunctiontryError():void{
try{
trace("测试入手下手-try");
throwError();
}catch(errObject:Error){
trace("毛病信息:"+errObject.message);
trace("测试停止-catch");
return;
}finally{
trace("固然catch里已有return办法,但位于return办法前面的finally里的代码仍然会被实行.实在不管return办法是在try里,仍是catch里,finally里的代码一直会被实行");
}
trace("后面已有return了,此处是不会再实行的.除非没有抛堕落误,以使catch里的代码没有被实行");
}
privatefunctionthrowError():void{
thrownewError("抛堕落误");
}
【for...in与foreach...in的区分】
与for...in轮回分歧的是,foreach...in轮回中的迭代变量包括属性所保留的值,而不包括属性的称号(或主键,索引).
【定名包路径的小技能】
利用响应于具有者和相干项目标包称号会对照好.按常规来说,包称号的开首应当是逆向的网址称号.比方,假如ExampleCorp(examplecorp.com)写了一些ActionScript3.0类,就会把一切类放在com.examplecorp包内(大概com.examplecorp的子包内).云云一来,假如英国有另外一家ExampleCorp(examplecorp.co.uk)也写了一些ActionScript3.0类,只需利用包uk.co.examplecorp,便可确保独一性.
当类属于特定使用程序的一部分时,就应当放在该使用程序特定的子包内.比方,ExampleCorp大概有个使用程序名叫WidgetStore.假如WidgetStore使用程序利用一个名为ApplicationManager的类,则此类就应当放在com.examplecorp.widgetstore包内,大概位于该包的子包内.
按常规来讲,包称号的开首是小写字母.
【隐式的掏出办法(getter)和设定办法(setter)】
publicfunctiongetcount():uint{
return_count;
}
publicfunctionsetcount(value:uint):uint{
if(value<100){
_count=value;
}else{
throwError();
}
}
【确保类是毫不会有子类,利用final】
finalpublicclassExample{}
【super关头字的利用】
super();//父类的机关函数,只能在类实例机关函数外部利用
super.propertyName;//挪用父类的属性,属性必要声明为public或protected
super.methodName();//挪用父类的办法,办法必要声明为public或protected
【创建常数,利用关头字const而不是var】
staticpublicconstEXAMPLE:String="example";
【检测播放器版本】
flash.system.Capabilities.version
关于8.5版之前的任何FlashPlayer版本,这类办法都不合用.
【判别客户端体系】
flash.system.Capabilities.os
【检测播放器范例】
flash.system.Capabilities.playerType
大概的值有:
"StandAlone",用于自力的FlashPlayer
"External",用于内部的FlashPlayer或处于测试形式下
"PlugIn",用于FlashPlayer扫瞄器插件
"ActiveX",用于MicrosoftInternetExplorer利用的FlashPlayerActiveX控件
【检测体系言语】
flash.system.Capabilities.language
【判别用户是不是启用了IME(输出法编纂器)】
flash.system.IME.enabled
【检测屏幕的分辩率】
flash.system.Capabilities.screenResolutionX
flash.system.Capabilities.screenResolutionY
【把弹出窗口居中的算法】
X=(舞台宽/2)-(窗口宽/2)
Y=(舞台高/2)-(窗口高/2)
【把持影片共同Player的体例,包含缩放成绩】
stage.scaleMode
可供选择值:flash.display.StageScaleMode
【舞台的对齐体例】
stage.align
可供选择值:flash.display.StageAlign
【埋没FlashPlayer的右键菜单】
stage.showDefaultContextMenu=false;
【检测体系是不是具有音频功效】
flash.system.Capabilities.hasAudio
【检测播放器是在具有MP3解码器的体系上运转,仍是在没有MP3解码器的体系上运转】
flash.system.Capabilities.hasMP3
【检测播放器能(true)仍是不克不及(false)播放流式视频】
flash.system.Capabilities.hasStreamingVideo
【检测播放器是在撑持(true)嵌进视频的体系上运转,仍是在不撑持(false)嵌进视频的体系上运转】
flash.system.Capabilities.hasEmbeddedVideo
【检测播放器能(true)仍是不克不及(false)对视频流(如来自Web摄像头的视频流)举行编码】
flash.system.Capabilities.hasVideoEncoder
【显现FlashPlayer中的"平安设置"面板】
flash.system.Security.showSettings();
可供选择项:flash.system.SecurityPanel
【让别的域的.swf会见本域的.swf】
在本域的.swf文件里加上:flash.system.Security.allowDomain()
或者利用平安战略文件"crossdomain.xml".在Flash8之前,这个文件必需放在.swf地点域的根目次,如今,你可使用flash.system.Security.loadPolicyFile(),指定平安战略文件地点的地位.回绝任何域的做法是在<cross-domain-policy>标签内甚么也不填,平安战略文件也撑持通用字符"*":
<?xmlversion="1.0"?>
<!--http://www.mydomain.com/crossdomain.xml-->
<cross-domain-policy>
<allow-access-fromdomain="www.webjx.com"/>
<allow-access-fromdomain="*.Y-boy.cn"/>
<allow-access-fromdomain="210.38.196.48"/>
<allow-access-fromdomain="*"/>
</cross-domain-policy>
【数字的分歧进制之间的转换】
parseInt(str:String,radix:uint=0):Number前往十进制的数,参数radix暗示要剖析的数字的基数.假如省略radix,就默许为10,除非字符串的开首是"0x","0X"或"0":
trace(parseInt("0x12"));//设定radix为16,输入:18
trace(parseInt("017"));//设定radix为8,输入:15
大概利用Number,uint和int工具的toString(radix)办法.
【利用Math.round()对一个数取整,四舍五进】
Math.round()
trace(Math.round(204.499));//输入:204
trace(Math.round(401.5));//输入:402
【利用Math.floor()对一个数向下取整,就是只需整数部分而不睬会小数分】
trace(Math.floor(204.99));//输入:204
【利用Math.ceil()对一个数向上取整,只需小数部分不为零,整数部分就加1】
trace(Math.ceil(401.01));//输入:402
【发生一个随机数】
利用Math.random()发生一个伪随机数n,个中0<=n<1
【把数字取至比来的小数点位,即指定准确度】
1.决意你要取的数字的小数点位数:比方,假如你想把90.337取成90.34,就暗示你要取到两位小数点位,也就是说你想取至比来的0.01;
2.让输出值除以步骤1所选的数字(此例为0.01);
3.利用Math.round()把步骤2所计得的值取成比来的整数;
4.把步骤3所得的了局乘以步骤2用于除法的谁人值.
比方,要把90.337取成两个小数点位数,可使用:
trace(Math.round(90.337/0.01)*0.01);//输入:90.34
【把数字取成一个整数的最靠近倍数值】
例1,如许会把92.5取成5的比来倍数值:
trace(Math.round(92.5/5)*5);//输入:95
例2,如许会把92.5取成10的比来倍数值:
trace(Math.round(92.5/10)*10);//输入:90
【在指定命值局限内取得随机数】
//可取局限:
privatefunctionrandRange(min:Number,max:Number):Number{
varrandomNum:Number=Math.floor(Math.random()*(max-min+1))+min;
returnrandomNum;
}
使用例子:
摹拟投银币,即但愿失掉随机布尔值(true或false):randRange(0,1);
摹拟投骰子,即但愿失掉随机六个值:randRange(1,6);
为制止被缓存而必要发生一个举世无双的数字追加在URL尾端,一般最好办法是获得以后毫秒数.
【弧度(radian)与度数(degree)之间的转换】
从弧度转为度数:degrees=radians*180/Math.PI
从度数转为弧度:radians=degrees*Math.PI/180
【盘算两点之间的间隔】
勾股定理:c2=a2+b2
假定有两个影片剪辑mc1和mc2,则它们两点间的间隔c为:
varc:Number=Math.sqrt(Math.pow(mc1.x-mc2.x,2)+Math.pow(mc1.y-mc2.y,2));
【摹拟圆周活动】
已知圆心o(x0,y0),半径r和弧度angle,求圆上恣意一点P(x,y)的坐标:
x=x0+(Math.cos(angle)*r);
y=y0+(Math.sin(angle)*r);
注重:舞台的x轴正偏向程度向右,y轴正偏向垂直向下.
【摹拟椭圆活动】
已知圆心o(x0,y0),长轴a,短轴b和弧度angle,求圆上恣意一点P(x,y)的坐标:
x=x0+(Math.cos(angle)*a);
y=y0+(Math.sin(angle)*b);

【华氏温度和摄氏温度之间的转换】
华氏温度=摄氏度数*9/5+32
摄氏温度=(华氏度数-32)*5/9
【千克与磅之间的转换】
千克=磅*2.2
磅=千克/2.2
【向数组尾端增加元素】
vararray:Array=newArray();
array.push("a","b");
//向数组尾端增加单一元素也能够如许:
array="c";
//假如以索引设定的元素不存在,数组自己会主动扩大以包括充足的元素数量.介于两头的元素会被设为undefined:
array="e";
trace(array);//输入:undefined
【向数组初步增加元素】
vararray:Array=["a","b"];
array.unshift("c","d");
trace(array);//输入:c,d,a,b
【删除数组中第一个元素并前往该元素,利用shift()办法】
varletters:Array=newArray("a","b","c");
varfirstLetter:String=letters.shift();
trace(letters);//输入:b,c
trace(firstLetter);//输入:a
【删除数组中最初一个元素并前往该元素的值,利用pop()办法】
varletters:Array=newArray("a","b","c");
trace(letters);//输入:a,b,c
varletter:String=letters.pop();
trace(letters);//输入:a,b
trace(letter);//输入:c
【删除数组中的元素,给数组增加新元素并前往删除的元素,利用splice()办法】
splice(startIndex:int,deleteCount:uint,...values):Array
startIndex:一个整数,它指定命组中入手下手举行拔出或删除的地位处的元素的索引;
deleteCount:一个整数,它指定要删除的元素数目;
...values:用逗号分开的一个或多个值的可选列表或数组,此列表或数组将拔出到此数组中由startIndex参数指定的地位.
【查找数组中第一个相婚配的元素】
vararray:Array=["a","b","c","d","a","b","c","d"];
varmatch:String="b";
for(vari:int=0;i<array.length;i++){
if(array==match){
trace("Elementwithindex"+i+"foundtomatch"+match);
//输入:Elementwithindex1foundtomatchb
break;
}
}
【查找数组中最初一个相婚配的元素】
vararray:Array=["a","b","c","d","a","b","c","d"];
varmatch:String="b";
for(vari:int=array.length-1;i>=0;i--){
if(array==match){
trace("Elementwithindex"+i+"foundtomatch"+match);
//输入:Elementwithindex5foundtomatchb
break;
}
}
【把字符串转成数组】
利用String.split()办法:
varlist:String="IamYoungBoy.";
varwords:Array=list.split("");//以空格作为分开符将字符串切割
trace(words);//输入:I,am,YoungBoy.
【把数组转成字符串】
利用String.join()办法:
varmyArr:Array=newArray("one","two","three");
varmyStr:String=myArr.join("and");
trace(myArr);//输入:one,two,three
trace(myStr);//输入:oneandtwoandthree
【利用工具数组处置相干数据】
varcars:Array=newArray();
cars.push({make:"Mike",year:1997,color:"blue"});
cars.push({make:"Kelly",year:1986,color:"red"});
for(vari:int=0;i<cars.length;i++){
trace(cars.make+"-"+cars.year+"-"+cars.color);
}
//输入:
//Mike-1997-blue
//Kelly-1986-red
【在数组中猎取最小或最年夜值】
varscores:Array=;
scores.sort(Array.NUMERIC);
trace("Minimum:"+scores);
trace("Maximum:"+scores);
【利用for...in语句读取联系关系数组元素】
varmyObject:Object=newObject();
myObject.name="YoungBoy";
myObject.age=20;
for(vari:StringinmyObject){
trace(i+":"+myObject);
}
//输入:name:YoungBoy
//age:20
注重:for...in轮回不会显现工具一切的内建属性.比方,轮回会显现实行时代新增的特别属性,可是,不会列出内建工具的办法,即便都是贮存在工具属性内.
【AVM(ActionScriptVirtualMachine,假造机)和衬着引擎(RenderingEngine)】
AVM卖力实行ActionScript程序,而衬着引擎则是把工具绘制在显现器上.
【指出容器的显现清单中有几显现工具】
每一个容器都有numChildren属性.
【把项目新增至显现清单】
addChild(child:DisplayObject)
addChildAt(child:DisplayObject,index:int)
index:增加该子项的索引地位.假如指定以后占用的索引地位,则该地位和一切更高地位上的子工具会在子级列表中上移一个地位.
【从显现清单中移除项目】
removeChild(child:DisplayObject)
removeChildAt(index:int)
index:要删除的DisplayObject的子索引,该子项之上的任何显现工具的索引地位都减往1.
假如想移除窗口一切子元件,能够分离removeChildAt(),numChildren属性和for轮回.由于每次一个子元件被移除时,索引地位城市变更,以是,有两种办法能够处置一切子元件的移除:
1.老是移除地位0的子元件;
2.倒过去移除子元件,也就是从尾端入手下手.
【变动现有子项在显现工具容器中的地位】
setChildIndex(child:DisplayObject,index:int):void
大概用到的办法:
前往DisplayObject的child实例的索引地位:getChildIndex(child:DisplayObject):int
前往位于指定索引处的子显现工具实例:getChildAt(index:int):DisplayObject
注意:当子元件移到低于它如今地点地位的索引时,那末,从标的索引发,直到子元件索引后面的谁人索引的一切子元件城市令其索引增添1,而该子元件就会指定至标的索引.当子元件移到较高索引时,从该子元件索引之上的谁人索引发,直到标的索引的一切子元件城市令其索引往下减1,而该子元件就会指定至标的索引值.
【关于TextField以垂直体例把笔墨摆在按钮外表中央点的小技能】
textField.y=(_height-textField.textHeight)/2;
textField.y-=2;//减2个像素以调剂偏移量
【内部.swf影片载进和互动】
1.监听init事务;
2.透过content属性存取所载进的影片.
当所载进的影片做好充足的初始化事情,使其办法和属性能够承受互动时,init事务就会被倡议.只要在载进器倡议init事务后,才干把持影片.所载进的影片还没初始化就试着与它互动,是会发生实行时代毛病的.
_loader.contentLoaderInfo.addEventListener(Event.INIT,handleInit);//当载进的.swf的属性和办法可用时
_loader.load(newURLRequest("ExternalMovie.swf"));
privatefunctionhandleInit(event:Event):void{
varmovie:*=_loader.content;
trace(movie.getColor());
movie.setColor(0xFF0000);
}
【TextField有两品种型:静态(dynamic)和输出(input),默许值为静态.改动TextField范例办法】
field.type=TextFieldType.INPUT;//selectable属性默许值为true
flash.text.TextFieldType.INPUT和flash.text.TextFieldType.DYNAMIC
【过滤笔墨输出】
TextField.restrict="此处为可输出的内容";
field.restrict="^此处为克制输出的内容";
restrict属性撑持一些相似正则表达式的款式:
field.restrict="a-zA-z";//只同意巨细字母
field.restrict="a-zA-z";//只同意字母和空格
field.restrict="0-9";//只同意数字
field.restrict="^abcdefg";//除小写字母abcdefg不同意外,别的都同意
field.restrict="^a-z";//一切小写字母都不同意,可是,别的内容都同意,包含年夜写字母
field.restrict="0-9^5";//只同意数字,但5破例
让restrict字符包括具有特别意义的字母(比方-和^):
field.restrict="0-9-";//同意数字和破折号
field.restrict="0-9^";//同意数字和^
field.restrict="0-9\";//同意数字和反斜杠
你也能够利用Unicode本义序列,指定同意的内容.比方:
field.restrict="^u001A";
注重:ActionScript有辨别巨细写的,假如restrict属性设为abc,同意字母的年夜写情势(A,B和C)输出时会酿成小写看待情势(a,b和c),反之亦然.restrict属性只影响用户能够输出的内容,剧本可将任何文本放进文本字段中.
【设定输出框的最年夜长度】
TextField.maxChars:int
【向TextField追加内容】
TextField.appendText(text:String):void
与经由过程对text属性利用加法赋值来毗连两个字符串(比方field.text+=moreText)比拟,此办法的效力更高.
【显现HTML格局的笔墨】
TextField.htmlText="<b>Htmltext</b>";
支持的HTML标签集有:<b>,<i>,<u>,<font>(有face,size和color属性),<p>,<br>,<a>,<li>,<img>和<textformat>(有leftmargin,rightmargin,blockindent,indent,leading和tabstops属性,响应于TextFormat类的同名属性)
【缩减空缺】
TextField.condenseWhite=true;
删除具有HTML文本的文本字段中的分外空缺(空格,换行符等),好像多半HTML扫瞄器所做的那样.
注重:在设置htmlText属性之前设置condenseWhite属性
【主动巨细调剂和对齐】
TextField.autoSize=TextFieldAutoSize.LEFT;
可选之值:
flash.text.TextFieldAutoSize.CENTER
flash.text.TextFieldAutoSize.LEFT
flash.text.TextFieldAutoSize.NONE
flash.text.TextFieldAutoSize.RIGHT
【唆使文本字段是不是主动换行】
TextField.wordWrap=true;//主动换行
【用程序手腕转动笔墨】
程度偏向以像素为单元,而垂直偏向以行做单元:
scrollV:指出笔墨框可见地区的最顶行,可读写;
bottomScrollV:指出笔墨框内最底端可见行,只读;
maxScrollV:scrollV的最年夜值,只读;
numLines:界说多行文本字段中的文本行数,只读;
TextField.scrollV=field.maxScrollV;//转动到最初一页
【呼应转动事务】
field.addEventListener(Event.SCROLL,onTextScroll);
【款式化笔墨的办法】
1.利用HTML标签举行款式化;
2.利用TextFormat工具;
3.利用CSS.
比方:HTML是用<font>标签,TextFormat工具是设定font属性,而CSS是利用font-family属性的.
受撑持的层叠款式表(CSS)属性和值,及其响应的ActionScript属性称号(小括号内):
color(color),display(display),font-family(fontFamily),font-size(fontSize),font-style(fontStyle),font-weight(fontWeight),kerning(kerning),leading(leading),letter-spacing(letterSpacing),margin-left(marginLeft),margin-right(marginRight),text-align(textAlign),text-decoration(textDecoration),text-indent(textIndent)
受撑持的HTML实体:<(小于号:<),>(年夜于号:>),&(和:&),"(双引号:"),(撇号,单引号:)
个中款式工具的两种写法:
写法一:
varsampleStyle:Object=newObject();
sampleStyle.color="#FFFFFF";
sampleStyle.textAlign="center";
css.setStyle(".sample",sampleStyle);
写法二:
varsampleStyle:Object={color:"#FFFFFF",textAlign:"center"};
css.setStyle(".sample",sampleStyle);
【对用户输出的笔墨举行款式化】
利用defaultTextFormat属性,款式会施加至用户键进输出框的笔墨身上:
varformatter:TextFormat=newTextFormat();
formatter.color=0x0000FF;//把笔墨酿成蓝色
field.defaultTextFormat=formatter;
【对现有笔墨的一部分举行款式化】
TextFormat.setTextFormat(format:TextFormat,beginIndex:int=-1,endIndex:int=-1):void
【设定笔墨框的字体】
例子:
HTML:field.htmlText="<fontface=Arial>Formattedtext</font>";
TextFormat:formatter.font="Arial";
CSS:P{font-family:Arial;}
也能够利用以逗号离隔的字体清单:formatter.font="Arial,Verdana,Helvetica";
注重:
字体和字体群组分歧.字体群组有三种:_sans,_serif和_typewriter.
_sans群组一样平常就是指Arial或Helvetica这类字体;
_serif群组一样平常就是指Times或TimesNewRoman这类字体;
_typewriter群组一样平常就是指Courier或CourierNew这类字体.
【嵌进字体】
利用后设标签.后设标签应当呈现在ActionScript文件中,处于类宣布以外.你能够内嵌TrueType字体或体系字体.内嵌TrueType字体时的语法:

pathToTtfFile:ttf文件的路径,TrueType字体的路径能够是绝对的,也能够是相对的;
FontName:字体称号;
内嵌体系字体的语法:

fontName:以不异称号作为实践体系字体称号.
注意:在利用嵌进字体时,要把TextField的embedFonts属性设为true,如许TextField只能用内嵌字体了.假如你试着替embedFonts设为true的TextField利用设备字体,甚么都不会显现.假如embedFonts设为true,就没法指定以逗号相隔的字体清单.
【创建能够扭转的笔墨】
利用内嵌字体.当你扭转笔墨框时,设备字体就会消散.
【显现Unicode笔墨】
1.从内部来历载进Unicode笔墨;
2.假设你的编纂器撑持Unicode(如FlexBuilder),则能够间接在ActionScript程序中利用该字符;
3.利用Unicode本义字符,ActionScript里一切Unicode本义字符都以u开首,前面再跟四位十六进制数字.
注重:假如你想获得Unicode字符,在Windows下利用:入手下手>一切程序>附件>体系工具>字符映照表.
【把FlashPlayer的核心带给笔墨框】
stage.focus=field;
把核心移除:
stage.focus=null;
注重:当.swf文件初次载进至网页扫瞄器时,并没有核心.因而,以程序的体例把核心指定给Flash使用程序的一个元素前,必需先把核心移至FlashPlayer.
【以ActionScript拔取笔墨】
利用TextField.setSelection(beginIndex:int,endIndex:int):void
为了能够一般拔取笔墨,笔墨框必需具有核心:
stage.focus=field;//把核心设给笔墨框
field.text="Thisisexampletext";//设定笔墨
field.setSelection(0,4);//把"This"这个单词以高亮显现
利用只读的selectionBeginIndex和selectionEndIndex属性会见所拔取的字符局限的索引.
【在笔墨内设定安插点(游标地位)并会见游标地位的索引值】
可使用TextField.setSelection()把肇端和开头的索引参数都设成不异值,在笔墨内设定游标地位(假定具有核心):
field.setSelection(0,0);//在第一个字符前摆放安插点
trace(field.caretIndex);//输入游标地位的索引值
【当文本字段遭到拔取或作废拔取时赐与呼应】
取得核心时:FocusEvent.FOCUS_IN
得到核心时:FocusEvent.FOCUS_OUT
经由过程键盘(Tab键)把核心移除时:FocusEvent.KEY_FOCUS_CHANGE
经由过程鼠标把核心移除时:FocusEvent.MOUSE_FOCUS_CHANGE
FocusEvent类有一个relatedObject属性.就FOCUS_IN事务而言,relatedObject属性是方才具有核心的工具的援用地点;关于FOCUS_OUT,KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事务,relatedObject属性是刚吸收到核心的工具的援用地点.
FOCUS_IN和FOCUS_OUT事务都是在核心改动后产生的,以是二者都是不成作废的事务.关于KEY_FOCUS_CHANGE和MOUSE_FOCUS_CHANGE事务,可使用FocusEvent.preventDefault()办法作废默许举动:
field.addEventListener(FocusEvent.KEY_FOCUS_CHANGE,onKeyFocus);
privatefunctiononKeyFocus(event:FocusEvent):void{
if(field.text==""){
event.preventDefault();//当field没有任何笔墨前,不同意利用Tab键把核心移除
}
//event.relatedObject就是方才具有核心的工具的援用地点,即下一个取得核心的工具的援用地点
}

flash影片的后缀名为.swf,该类型文件必须有flash播放器才能打开(包括各大浏览器,视频播放器),且播放器的版本须不低于FLASH程序自带播放器的版本。

活着的死人 发表于 2015-1-17 15:00:08

缺点也必然会会有的,但是不同的产品有不同的缺点吧,比如说flash建站它的速度会比较慢。

柔情似水 发表于 2015-1-25 12:00:14

向量图有一个特点,就是放大后的图像是不会改变的. 点阵图 向量图Flash的应用,还有再不断在完善的Action Script脚本语言。

乐观 发表于 2015-2-2 22:09:41

在Web上只好把动画做得很小。即使最简单的动画也需要较长的下载时间。Flash的流技术和矢量图形对这种情况做了改变。

莫相离 发表于 2015-2-8 13:49:24

flash的流行因素包括了技术上的优势——技术本身的优势;技术掌握上的优势;其他技术的弱势;

深爱那片海 发表于 2015-2-25 18:52:27

在Web页面上使用声音是可能的,但是在精确的时间播放声音几乎是不可能的。Flash通过把声音放入时间期限内解决了这个问题,因此你现在可以把声音连接到动画的特定部分或者某个用户交互过程。

透明 发表于 2015-3-8 02:28:45

Flash也支持alpha通道,这会使设计者高兴。没有太多的技术性,alpha通道是附加在图像上的信息 - 允许图像以不同的方式渲染。

小女巫 发表于 2015-3-15 22:25:08

没有安装FLASH插件的前提下,无法正常显示广告效果。根据调查显示,有3%的互联网用户没有安装shockwave Flash。虽然比例不大,但不能因为这样一个简单的原因而拒绝这些用户。

山那边是海 发表于 2015-3-22 17:10:57

所以不要使用不必要的高祯率 - 否则老的、慢的计算机在显示动画时会阻塞。
页: [1]
查看完整版本: 带来一篇参考:AS3及Flex的经常使用有用成绩-Flash actionscript