今天在网上发现了许多有关flex的用法和优化,感觉还是很有用的。在这里把它门记下来,防止以后忘了。
一 、System.setClipboard("给系统剪切板赋值 "); 用于给系统的剪切板赋值。
二、var objectid =  ExternalInterface.objectID; //在 Internet Explorer 中返回 object 标签的 id 属性,或者在 Netscape 中返回 embed 标签的 name 属性。
三、如果要创建一个自定义组件,你需要重写 UIComponent 类的某些方法,最少需要重写如下方法(按先后顺序):构造函数 , createChildren(), commitProperties(), measure(), layoutChrome(), updateDisplayList() 。
四、改变输出swf的尺度,背景颜色或帧频
在”Navigator”窗框里右键你的项目>选中”Properties”>选中”ActionScript Compiler”>在”Additional compiler arguments”里输入你所需要的命令
如想改变背景颜色,请输入: -default-background-color 0xffffff
五、是数字但不是有效数字问题
var quantity:Number = 15 - “rabbits”;
trace(typeof quantity); //显示: “number” , 但它是NaN (not a number)
trace(quantity is Number); //true
trace(quantity != NaN); //false
//使用isNaN()函数检测:
isNaN(quantity); //true
//检测变量是否内含有效数字:
!isNaN(quantity); //false
六、Timer类注意事项
不要认为Timer可以极其准确;使用Timer时间间隔不要低于10毫秒.
七、for…in与for each…in的区别
与for…in循环不同的是,for each…in循环中的迭代变量包含属性所保存的值,而不包含属性的名称(或主键,索引)
八、隐藏Flash Player的右键菜单
stage.showDefaultContextMenu = false;
九、让其它域的.swf访问本域的.swf
在本域的.swf文件里加上:flash.system.Security.allowDomain()
或 者使用安全策略文件”crossdomain.xml”.在Flash 8以前,这个文件必须放在.swf所在域的根目录,现在,你可以使用flash.system.Security.loadPolicyFile(),指 定安全策略文件所在的位置.拒绝任何域的做法是在<cross-domain-policy>标签内什么也不填,安全策略文件也支持通用字符 “*”:
<?xml version=”1.0″?>
<!– http://www.mydomain.com/crossdomain.xml –>
<cross-domain-policy>
<allow-access-from domain=”www.riahome.cn” />
<allow-access-from domain=”*.Y-boy.cn” />
<allow-access-from domain=”210.38.196.48″ />
<allow-access-from domain=”*” />
</cross-domain-policy>
十、把数字取至最近的小数点位,即指定精确度
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

十二、在指定数值范围内获得随机数
//可取范围:[min, max]
private function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
十三、把数组转成字符串
使用String.join()方法:
var myArr:Array = new Array(”one”, “two”, “three”);
var myStr:String = myArr.join(” and “);
trace(myArr); //输出: one,two,three
trace(myStr); //输出: one and two and three
十四、在数组中获取最小或最大值
var scores:Array = [10, 4, 15, 8];
scores.sort(Array.NUMERIC);
trace(”Minimum: ” + scores[0]);
trace(”Maximum: ” + scores[scores.length - 1]);

十五、使用for … in语句读取关联数组元素
var myObject:Object = new Object();
myObject.name = “YoungBoy”;
myObject.age = 20;
for(var i:String in myObject) {
trace(i + “: ” + myObject[i]);
}
//输出: name: YoungBoy
//       age: 20
注意: for … in循环不会显示对象所有的内建属性.例如,循环会显示执行期间新增的特殊属性,但是,不会列出内建对象的方法,即使都是储存在对象属性内。
十六、过滤文字输入
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属性只影响用户可以输入的内容,脚本可将任何文本放入文本字段中.
十七、SystemManager
SystemManager 是Flex应用的主控者, 它控制着应用窗口, Application实例, 弹出窗口, cursors, 并管理着ApplicationDomain中的类. SystemManager是FlashPlayer实例化的第一个类, 它存储了主应用窗口的大小和位置信息, 保存其子组件比如:浮动弹出窗口和模态窗口的痕迹. 通过SystemManager可以获得内嵌字体,样式和document对象.
自定义的可视化组件(UIComponent的子类)只有在调用过addChild()后, 才会有一个SystemManager赋给他们, 之前是Null. 所以在自定义可视化组件的构造函数中不要使用SystemManager。
十八、Flex Application 初始化顺序
通常, Application对象创建时, 发生如下事件:
1. 实例化Application对象
2. 初始化Application.systemManager
3. Application在初始化过程之前, 派发预初始化事件.
4. 调用createChild(). 此时, 所有应用组件被创建, 所有组件的createChild()被调用.
5. Application派发初始化事件, 表明所有的组件初始化完毕.
6. 派发creationComplete事件
7. Application对象添加到显示列表中
8. 派发applicationComplete事件
Flash 包含的是一个时间线上的多个帧, 而Flex的SWF只包含2个帧. SystemManager, Preloader, DownloadProgressBar和少量工具类都在第一帧, 剩下的包括应用代码/ 内嵌资源全都在第二帧中. 当Flash Player下载下载SWF时, 只要接收到第一帧内足够的数据, 就会实例化SystemManager, 由它来创建Preloader, 然后创建DownloadProgressBar, 这两个对象会察看剩余字节的传输过程. 当第一帧的所有字节传输完毕后, SystemManager发送enterFrame到第二帧, 然后是其他事件. 最后Application对象派发applicationComplete事件。
十九、FLEX 与 JSP 传递中文的问题
情况分析:Flex默认使用的都是utf-8编码,包括Get、Post等方法。而Tomcat服务器端接收request对象默认是ISO_8859_1编码。
1.FLEX to JSP:
情况一:MXML源代码文件中写入中文字符
    Flex使用 System.useCodepage = true; //即使用本地操作系统编码(GBK)设置Flex的处理编码。Jsp中用依然用ISO_8859_1编码来处理,并转化为GBK。这样Jsp可以正确解释Flex传递的中文字符。这个时候可以认为Flex对mxml源代码文件进行编译时候,源代码中的中文字符已经混乱了,所以要加上System.useCodepage = true;,按GBK编码将中文字符从Flex发送到Tomcat。同时Tomcat中Jsp应该按GBK重新编码。(如下,categoryID 在FLEX 中赋值为中文字符)
String categoryID = request.getParameter("categoryID");
String strOut = new String(categoryID.getBytes("ISO8859-1"), "GBK");
情况二:FLEX 运行时由输入框输入中文字符
       输入框输入的中文字符是一定为utf-8编码的,所以Flex中System.useCodepage = false; 或者不设置,就默认utf-8编码格式传递数据,而Tomcat中Jsp使用下面语句按utf-8来重新编码。
String categoryID = request.getParameter("categoryID");
String strOut = new String(categoryID.getBytes("ISO8859-1"), "utf-8");
2.JSP to FLEX:
情况一:FLEX 接收 JSP 页面的中文参数
Jsp页面用页面指令<%@ page contentType="text/html;charset=utf-8"%>设置,返回结果是utf-8编码,Flex接收后成功解释并正确显示。
情况二:将MXML文件中的<mx:application>标签内容复制到JSP页面中,
(页面中含有中文字符)
    Jsp页面使用指令<%@ page contentType="text/html;charset=gb2312/gbk"%>设置即可。
二十、在Flex中添加右键菜单及页面跳转
var myContextMenu : ContextMenu = new ContextMenu();
var GoUrl : ContextMenuItem = new ContextMenuItem("欢迎您!");
GoUrl.addEventListener(ContextMenuEvent.MENU_ITEM_Select,GoUrlClick);
myContextMenu.customItems.push(GoUrl);
myContextMenu.hideBuiltInItems();
this.contextMenu = myContextMenu;

private function GoUrlClick(event:ContextMenuEvent):void {
       navigateToURL(new URLRequest("http:// dragonfly.autodesk.com"),"_blank");
 }

flex的常用用法二十条相关推荐

  1. Android ListView常用用法(二)

    来自:51CTO论坛 原帖:http://mobile.51cto.com/android-254823.htm Android开发:实现带图片和checkbox的listview 项目要用到一个li ...

  2. 【Android 异步操作】Handler 机制 ( Handler 常用用法 | HandlerThread 简介 | HandlerThread 源码注释分析 )

    文章目录 一.Handler 常用用法 二.HandlerThread 简介 三.HandlerThread 源码 一.Handler 常用用法 主线程 Handler 主要作用 : Looper 和 ...

  3. arcgis api for flex 开发入门(二)map 的创建

    arcgis api for flex 开发入门(二)map 的创建 在flex 中创建一个esri 的map ,你只需要使用<esri:Map>标签就可以轻松完成. 在<esri: ...

  4. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  5. 【Data Mining】机器学习三剑客之Numpy常用用法总结

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 一.前言 玩数据分析.数据挖掘.AI的都知道这个pyt ...

  6. 关于grep,egrep正则表达式的常用用法

    正则表达式是一类字符所书写的模式(pattern) 元字符:不表示字符本身的意义,而用于额外功能性的描述:而如果在这些特定的字符前加/这个符号那么这些字符就表示原有的意思. 正则表达式:基本正则表达式 ...

  7. 哈佛大学凌晨4点半的景象--哈佛图书馆的二十条训言

    哈佛大学凌晨4点半的景象 哈佛图书馆的二十条训言: This moment will nap, you will have a dream; But this moment study, you wi ...

  8. 【Linux命令】ip addr、ip link、ifconfig 用法 二

    文章目录 1. 前言 2. ip link 2.1 ip link add 2.1.1 命令实例 2.2 ip link set 2.3 ip link show 2.4 ip link delete ...

  9. Flex布局 学习(二)

    上一篇<Flex布局 学习(一)>主要学了flex的基本用法及作用,现在来把flex具体运用到实例中,看看flex的弹性布局效果. 一.垂直居中布局 不知道有多少小伙伴在前端笔试面试时被问 ...

最新文章

  1. python爬虫如何从一个页面进入另一个页面-Python爬虫如何获取页面内所有URL链接?本文详解...
  2. C#项目单步调试莫名结束问题
  3. 特征级融合_更丰富的卷积特征用于目标边缘检测(文末附有论文及源码下载)...
  4. Reachable Numbers
  5. python学习day11
  6. 使用NW.js封装微信公众号菜单编辑器为桌面应用
  7. CC框架实践(1):实现登录成功再进入目标界面功能
  8. MySQL修改表名示例
  9. Java NIO编程基础
  10. three相机在模型上_一步步带你实现web全景看房——three.js
  11. Purism释出Librem 5智能型手机新进展
  12. www.biubiujie.com BiuBiu街-要Beautiful的女孩纸逛的街
  13. 深入了解Cookie(1)------selenium2进行Cookie操作的前奏
  14. 老外的一个用的SQLite的例子,看起来比较初级
  15. 51cto案例精解第一章PPT
  16. mysql监控 代码审计_Seay源代码审计系统2.1及源码开放 人人都是代码审计师
  17. pycharm无需汉化教程(无需下载汉化包)
  18. grads 相关系数_气象绘图软件GrADS高级使用技巧
  19. 58-高级路由:双点双向重分发
  20. matlab画图时如何将坐标设置为中文宋体,英文新罗马字体

热门文章

  1. blender FLIP-Fluids 流体插件中文帮助文档系列01
  2. IMX6ULL UART5配置错误imx6ul-pinfunc.h
  3. 黄天不负有心人,拥有属于自己的LOGO
  4. 游戏服务器设计(C#)简单版
  5. 【Practical】产生不大于N的连续素数序列 —— 埃拉托色尼筛法
  6. Unable to identify any set of controllers that can actuate the specified joints:
  7. 动态内存分配(详解)
  8. 使用会议管理系统的高效办会思路
  9. 微信小程序 app.wxss css 不生效
  10. 天命奇御单独破解补丁下载|天命奇御steam数字版单独破解补丁下载(附天命奇御反激活方法图文教学)