1. 我要改变影片的对齐方式
使用stage.align属性
stage.align的值是flash.display.StageAlign类的一个枚举。其值如下:
Value | Vertical Alignment | Horizontal |
StageAlign.TOP | Top | Center |
StageAlign.BOTTOM | Bottom | Center |
StageAlign.LEFT | Center | Left |
StageAlign.RIGHT | Center | Right |
StageAlign.TOP_LEFT | Top | Left |
StageAlign.TOP_RIGHT | Top | Right |
StageAlign.BOTTOM_LEFT | Bottom | Left |
StageAlign.BOTTOM_RIGHT | Bottom | Right |
package { flash.display.Sprite; flash.display.StageAlign; flash.display.StageScaleMode; Sample1105Sprite { Sample1105() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_RIGHT; .graphics.beginFill(0xFF0000); .graphics.drawRect(10,10,stage.stageWidth,stage.stageHeight); .graphics.endFill(); } } }
2. 确定客户端是否能播放音频
使用flash.system.Capabilities的hasAudio判断是否支持音频,hasMP3判断是否能播放MP3
(flash.system.Capabilities.hasAudio && flash.system.Capabilities.hasMP3) { } else { }
3. 提示用户改变播放器设置
使用flash.system.Security.showSettings()方法打开用户的Flash播放器设置对话框窗口
该方法接受一个flash.system.SecurityPanel枚举作为参数。对应功能如下:
SecurityPanel.DEFAULT 默认面板
SecurityPanel.CAMERA 摄像头面板
SecurityPanel.LOCAL_STORAGE 本地存储面板
SecurityPanel.MICROPHONE 话筒面板
SecurityPanel.PRIVACY 安全控制面板
SecurityPanel.SETTINGS_MANAGER 管理面板会打开浏览器进行更多设置
{ flash.display.Sprite; flash.system.Security; flash.system.SecurityPanel; Sample1117Sprite { Sample1117() { flash.system.Security.showSettings(flash.system.SecurityPanel.DEFAULT); } } }
4. 对数值进行四舍五入或取近似值
用Math.round()进行四舍五入,Math.floor()和Math.ceil()进行上下近似值。NumberUtilities.round()方法可自定义取值
{ ascb.util.NumberUtilities; flash.display.Sprite; Sample1117Sprite { Sample1117() { (Math.round(234.56)); (Math.floor(234.56)); (Math.ceil(234.56)); (Math.round(123.456*100)/100); (Math.round(123.456/0.1)*0.1); (NumberUtilities.round(123.456,0.1)); (NumberUtilities.round(123.456,6)); } } }
5. 对数字和字符串进行格式化
用NumberFormat对象的format()与currencyFormat()方法。由于是第三方类库,测试过程中发现有些不完善。自己写了一个格式化货币的方法
{ flash.display.Sprite; Sample1118Sprite { Sample1118() { money:Number = 26591234569.5678; (formatString(money)); i:int = 1234; (formatString(i)); (formatString()); } formatString(obj:Object):String { (obj int||obj uint||obj Number) { money:Number = obj Number; str:String = (Math.round(money/0.01) * 0.01).toString(); _index:int = str.indexOf(); cursor:int = 0; (_index>-1) { cursor = _index; str = str.substring(0,_index + 3); (str.length < _index+3) { str = str + ; } } else { cursor = str.length; str = str+; } arrStr:Array = Array(); (cursor-3>=0) { arrStr.push(str.substr(cursor-3,3)); cursor = cursor-3; } (cursor>0) { arrStr.push(str.substr(0,cursor)); } arrStr.reverse(); arrStr.join(',') + str.substr(str.indexOf()); } else { obj.toString(); } } } }
6. 生成随机数(猜硬币)
用NumberUtilities.random(0,1)方法产生随机数
{ ascb.util.NumberUtilities; flash.display.Sprite; flash.events.MouseEvent; flash.text.TextField; Sample1118Sprite { label:TextField; Sample1118() { label = TextField(); label.background = ; label.backgroundColor = 0xFF0000; label.textColor = 0xF7FCFF; label.autoSize = ; .addChild(label); sprite:Sprite = Sprite(); sprite.graphics.beginFill(0xFFFF00); sprite.graphics.drawCircle(100,100,50); sprite.graphics.endFill(); sprite.addEventListener(MouseEvent.CLICK,OnClick); .addChild(sprite); } OnClick(event:MouseEvent): { (NumberUtilities.random(0,1)==0) { label.text = ; } else { label.text = ; } } } }
7. 生成随机数(骰子)
用NumberUtilities.random(1,6)方法产生随机数
{ ascb.util.NumberUtilities; flash.display.Sprite; flash.events.MouseEvent; Sample1119Sprite { sprite:Sprite; Sample1119() { sprite = Sprite(); .addChild(sprite); sprite.addEventListener(MouseEvent.CLICK,OnClick); OnClick(null); } OnClick(event:MouseEvent): { sprite.graphics.clear(); sprite.graphics.beginFill(0xFFFFFF); sprite.graphics.drawRect(0,0,50,50); sprite.graphics.endFill(); randNum:int = NumberUtilities.random(1,6); sprite.graphics.beginFill(0x000000); (randNum==1) { sprite.graphics.drawCircle(25,25,6); } else (randNum!=2) { sprite.graphics.drawCircle(8,8,6); sprite.graphics.drawCircle(42,42,6); } (randNum==3||randNum==5) { sprite.graphics.drawCircle(25,25,6); } (randNum==4||randNum==5||randNum==6) { sprite.graphics.drawCircle(42,8,6); sprite.graphics.drawCircle(8,42,6); } (randNum==2) { sprite.graphics.drawCircle(25,8,6); sprite.graphics.drawCircle(25,42,6); } (randNum==6) { sprite.graphics.drawCircle(8,25,6); sprite.graphics.drawCircle(42,25,6); } sprite.graphics.endFill(); } } }
8. 生成唯一随机数(基于毫秒)
调用NumberUtilities.getUnique()得到当前时间(精确到毫秒)的唯一数字
{ ascb.util.NumberUtilities; flash.display.Sprite; Sample1119Sprite { Sample1119() { (i:uint=0;i<10;i++) { (NumberUtilities.getUnique()); } } } }
9. 计算两点之间的距离
根据勾股定理,使用Math.pow()和Math.sqrt()联合计算
{ flash.display.Sprite; flash.geom.Point; Sample1119Sprite { Sample1119() { p1:Point = Point(10,20); p2:Point = Point(100,200); x:int = p1.x - p2.x; y:int = p1.y = p2.y; length:Number = Math.sqrt(Math.pow(x,2)+Math.pow(y,2)); (length); } } }
10. DisplayObject类结构图
flash.display包中包含Flash Player用于构建可视显示内容的核心类。DisplayObject类是可放在显示列表中的所有对象的基类