as3 备忘录
//网址链接,转向指定网址(注意:本地访问网址可能会弹出安全提示!):
var urlStr:String = "http://xwuxin.iteye.com"; var currUrl:URLRequest = new URLRequest(urlStr); var openLoc:String = "_blank"; //网页打开位置 navigateToURL(currUrl,openLoc);
//as3读取xml文件
var xml:XML; var xmlList:XMLList; var xmlLoader:URLLoader; var xmlSrc:String = "data/sys.xml"; xmlLoader = new URLLoader(); xmlLoader.load(new URLRequest(xmlSrc)); xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded); xmlLoader.addEventListener(IOErrorEvent.IO_ERROR,xmlError); xmlLoader.addEventListener(ProgressEvent.PROGRESS,xmlPro); //加载xml private function xmlLoaded(event:Event):void { xml = XML(event.target.data); xmlList = xml.children();//这个东东就是root结点下的一个列表对象,通过它去操作root结点下的东东(详细去查API)。 } //加载出错处理 private function xmlError(event:Event):void{ } // 加载侦听。可用来获取加载时的一些信息。 private function xmlPro(event:Event):void{ }
//在文本框中追加文本请使用高效率的appendText();如:nameTxt.appendText("append text test!");
//as3检测操作系统
var os:String = System.capabilities.os.substr(0,3); if(os == "Win"){ //Windows-specific code goes here }else if(os == "Max"){ //Max-specific code goes here }else { //Must be Unix or Linux }
//as3检测播放器类型
var playerTypeStr:String = flash.system.Capabilities.playerType; if(playerTypeStr == "Plugin"){ }else if(playerTypeStr == "ActiveX") { //do actions for IE }else { //do actions for no browser }
//as3检测系统语言
//Example output:en-US trace(flash.system.Capabilities.language); var greetings:Array = new Array(); greetings["en"] = "Hello"; greetings["es"] = "Hola"; greetings["fr"] = "Bonjour"; if(greeting[lang] == undefined){ lang = "en"; } trace(greetings[lang]);
//as3检测显示设置
//screenResolutionX和screenResolutionY属性返回桌面的显示分辨率: trace(flash.system.Capabilities.screenResolutionX); trace(flash.system.Capabilities.screenResolutionY);
//as3缩放影片
stage.scaleMode = StageScaleMode.SHOW_ALL; stage.scaleMode = StageScaleMode.NO_BORDER; stage.scaleMode = StageScaleMode.EXACT_FIT; stage.scaleMode = StageScaleMode.NO_SCALE;
//as3改变对齐方式,属性很多,其它请参考文档。
flash.display.StageAlign类的属性 stage.align = flash.display.StageAlign.TOP_RIGHT;
//隐藏flash播放器的菜单项
设置stage.showDefaultContextMenu属性
//下面的语句可以移除许多项目,Settings和About是不能移除的 stage.showDefaultContextMenu = false;
//检测设备音频
//flash.system.Capabilities类的hasAudio和hasMP3属性
hasAudio返回true表明可以播放音频。
hasMP3返回true表明可以播放MP3
//提示用户改变播放器设置
//打开用户的Flash播放器设置对话框窗口.
//使用flash.system.Security.showSettings()方法
//下面例子打开本地存储面板:
flash.system.Security.showSettings(SecurityPanel.LOCAL_STORAGE);
//千分位格式化数字
public static function formatno(n:String) { var Num:uint; if (n.indexOf(".") != -1) { Num = uint(n.substring(0, n.indexOf("."))); } else { Num = uint(n); } var arr = new Array('0'), i = 0; if (n.indexOf(",") == -1) { while (Num>0) { arr[i] = ''+Num%1000; Num = Math.floor(Num/1000); i++; } arr = arr.reverse(); for (var i1 in arr) { if (i1>0) { while (arr[i1].length<3) { arr[i1] = '0'+arr[i1]; } } } } else { trace("d"); arr[i] = Num; } var Dec:String; if (n.indexOf(".") != -1) { Dec = n.substring(n.indexOf(".")); } else { Dec = ""; } if (Dec.length == 0 || Number(Dec) == 0) { arr += ".00"; } else if (Dec.length == 2) { arr += Dec+"0"; } else { arr += Dec; } //delete Num, Dec, i; return arr; }
舞台上元件得到不到的原因:
在flash cs3中(cs4适用),当主时间轴(stage)上有影片剪辑的实例,且该影片剪辑有实例名称,并且关闭了“自动声明舞台上的实例”功能时(文件 ->发布设置->flash->ActionScript 3.0设置),你需要在文档类中手动声明与实例名称相同的属性,否则会报错。
在文档类以外的其他类中访问舞台对象 解决方法:
1:侦听,该类的实例被加到舞台以后,才访问该实例的stage属性。
2:创建实例的时候,把场景当参数传入这个类中。
3:创建一个顶级的继承MovieClipt的类,里面一个静态属性,存放stage的引用。其他的类(包括文档类)继承这个类,那在哪都能访问了。