幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3236|回复: 0

[AS3] AS3备忘录

[复制链接]

86

主题

250

帖子

390

积分

版主

Rank: 7Rank: 7Rank: 7

积分
390
发表于 2009-11-27 21:18:43 | 显示全部楼层 |阅读模式
as3 备忘录



//网址链接,转向指定网址(注意:本地访问网址可能会弹出安全提示!):
  1. var urlStr:String = "http://xwuxin.javaeye.com";
  2. var currUrl:URLRequest = new URLRequest(urlStr);
  3. var openLoc:String = "_blank"; //网页打开位置
  4. navigateToURL(currUrl,openLoc);
复制代码

//as3读取xml文件
  1.    var xml:XML;
  2.    var xmlList:XMLList;
  3.    var xmlLoader:URLLoader;
  4.    var xmlSrc:String = "data/sys.xml";
  5.    xmlLoader = new URLLoader();
  6.    xmlLoader.load(new URLRequest(xmlSrc));
  7.    xmlLoader.addEventListener(Event.COMPLETE, xmlLoaded);
  8.    xmlLoader.addEventListener(IOErrorEvent.IO_ERROR,xmlError);
  9.    xmlLoader.addEventListener(ProgressEvent.PROGRESS,xmlPro);
  10.    //加载xml
  11.    private function xmlLoaded(event:Event):void {
  12.           xml = XML(event.target.data);
  13.           xmlList = xml.children();//这个东东就是root结点下的一个列表对象,通过它去操作root结点下的东东(详细去查API)。
  14.    }
  15.    //加载出错处理
  16.   private function xmlError(event:Event):void{
  17. }
  18.   // 加载侦听。可用来获取加载时的一些信息。
  19. private function xmlPro(event:Event):void{
  20. }
复制代码

//在文本框中追加文本请使用高效率的appendText();如:nameTxt.appendText("append text test!");



//as3检测操作系统
  1. var os:String = System.capabilities.os.substr(0,3);   
  2. if(os == "Win"){   
  3.     //Windows-specific code goes here   
  4. }else if(os == "Max"){   
  5.     //Max-specific code goes here   
  6. }else {   
  7.     //Must be Unix or Linux   
  8. }  
复制代码

//as3检测播放器类型
  1. var playerTypeStr:String = flash.system.Capabilities.playerType;
  2. if(playerTypeStr == "Plugin"){
  3. }else if(playerTypeStr == "ActiveX") {
  4.     //do actions for IE
  5. }else {
  6.     //do actions for no browser
  7. }
复制代码

//as3检测系统语言
  1. //Example output:en-US
  2. trace(flash.system.Capabilities.language);
  3. var greetings:Array = new Array();
  4. greetings["en"] = "Hello";
  5. greetings["es"] = "Hola";
  6. greetings["fr"] = "Bonjour";
  7. if(greeting[lang] == undefined){
  8.     lang = "en";
  9. }
  10. trace(greetings[lang]);
复制代码

//as3检测显示设置
  1. //screenResolutionX和screenResolutionY属性返回桌面的显示分辨率:   
  2. trace(flash.system.Capabilities.screenResolutionX);   
  3. trace(flash.system.Capabilities.screenResolutionY);  
复制代码

//as3缩放影片
  1. stage.scaleMode = StageScaleMode.SHOW_ALL;   
  2. stage.scaleMode = StageScaleMode.NO_BORDER;   
  3. stage.scaleMode = StageScaleMode.EXACT_FIT;   
  4. stage.scaleMode = StageScaleMode.NO_SCALE;
复制代码

//as3改变对齐方式,属性很多,其它请参考文档。

[codeflash.display.StageAlign类的属性
stage.align = flash.display.StageAlign.TOP_RIGHT;[/code]

//隐藏flash播放器的菜单项
设置stage.showDefaultContextMenu属性
  1. //下面的语句可以移除许多项目,Settings和About是不能移除的
  2. 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);



//千分位格式化数字
  1. public static function formatno(n:String) {
  2.             
  3.             var Num:uint;
  4.             if (n.indexOf(".") != -1) {
  5.                 Num = uint(n.substring(0, n.indexOf(".")));
  6.             } else {
  7.                 Num = uint(n);
  8.             }
  9.             var arr = new Array('0'),
  10.             i = 0;
  11.             if (n.indexOf(",") == -1) {
  12.                 while (Num>0) {
  13.                     arr[i] = ''+Num%1000;
  14.                     Num = Math.floor(Num/1000);
  15.                     i++;
  16.                 }
  17.                 arr = arr.reverse();
  18.                 for (var i1 in arr) {
  19.                     if (i1>0) {
  20.                         while (arr[i1].length<3) {
  21.                             arr[i1] = '0'+arr[i1];
  22.                         }
  23.                     }
  24.                 }
  25.             } else {
  26.                 trace("d");
  27.                 arr[i] = Num;
  28.             }
  29.             var Dec:String;
  30.             if (n.indexOf(".") != -1) {
  31.                 Dec = n.substring(n.indexOf("."));
  32.             } else {
  33.                 Dec = "";
  34.             }
  35.             if (Dec.length == 0 || Number(Dec) == 0) {
  36.                 arr += ".00";
  37.             } else if (Dec.length == 2) {
  38.                 arr += Dec+"0";
  39.             } else {
  40.                 arr += Dec;
  41.             }
  42.             //delete Num, Dec, i;
  43.             return arr;
  44. }
复制代码

舞台上元件得到不到的原因:



在flash cs3中(cs4适用),当主时间轴(stage)上有影片剪辑的实例,且该影片剪辑有实例名称,并且关闭了“自动声明舞台上的实例”功能时(文件 ->发布设置->flash->ActionScript 3.0设置),你需要在文档类中手动声明与实例名称相同的属性,否则会报错。



在文档类以外的其他类中访问舞台对象 解决方法:
1:侦听,该类的实例被加到舞台以后,才访问该实例的stage属性。
2:创建实例的时候,把场景当参数传入这个类中。
3:创建一个顶级的继承MovieClipt的类,里面一个静态属性,存放stage的引用。其他的类(包括文档类)继承这个类,那在哪都能访问了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-28 23:43 , Processed in 0.018993 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表