`
jblzdg
  • 浏览: 31823 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Flex的一些常用方法

    博客分类:
  • Flex
阅读更多

 虽然Action Script 语法对于学Java的人来说不难,但是毕竟二者还是有区别的,按java用法硬套有时候是不灵的,所以找了这篇文章,以备查询.

原文地址::http://blog.csdn.net/parine26/archive/2009/05/26/4214761.aspx

 

一 、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常用教程及库

    这个“Flex常用教程及库”压缩包文件可能包含了丰富的资源,帮助开发者深入理解和使用Flex技术。 在Flex开发中,皮肤是一个关键的概念,它定义了应用程序或组件的外观和感觉。Flex允许开发者自定义组件的外观,以...

    flex常用知识问答

    flex 常用 知识 问答 flex 常用 知识 问答 flex 常用 知识 问答

    FLEX常用验证控件.doc

    FLEX常用验证控件,flex的一些常用的验证

    粗糙的FLEX3常用功能LIB库--flex3ExtLib

    NULL 博文链接:https://redsnow-fenglin.iteye.com/blog/807966

    flex常用动态菜单

    本篇文章将详细探讨“flex常用动态菜单”的相关知识点。 一、Flex菜单组件 在Flex中,动态菜单通常使用`mx.controls.Menu`组件来实现。`Menu`组件可以作为下拉菜单或独立的弹出式菜单使用,其功能强大,可定制性强...

    flex详述和js常用方法

    本文将详细探讨“flex详述和js常用方法”,帮助开发者优化代码。 首先,我们来看CSS中的Flex布局,它是一种灵活的盒模型,用于创建响应式和动态布局。在示例中,“FlexLi(盒子里面的子居中)”展示了如何让`li`元素...

    12条常用Flex代码 值得收藏

    Flex常用代码大全 Flex是一种功能强大且灵活的Rich Internet Application(RIA)开发平台,广泛应用于桌面应用程序、移动应用程序、Web应用程序等。对Flex开发者来说,掌握基本的Flex代码是非常必要的。以下是12条...

    FlexBuilder3常用快捷键

    本文将详细介绍FlexBuilder3中的一些常用快捷键及其应用场景。 #### 二、代码编辑与管理 1. **Shift + Tab**: 将选中的代码块向左缩进一级。这对于调整代码格式或进行代码块的对齐操作非常有用。 2. **Alt + /**: ...

    常用Flex网站常用Flex网站

    Flex是一种由Adobe公司开发的富互联网应用程序(RIA)框架,主要用于构建交互性强、用户体验良好的桌面和移动应用程序。在本文中,我们将深入探讨Flex在创建网站中的应用及其重要性,以及如何利用Flex技术来提升网站...

    Flex 常用大收藏

    这个"Flex 常用大收藏"压缩包包含了关于Flex开发中的几个重要主题,包括DataGrid、上传下载、WipeLeft隐藏动画以及分页功能的实现。 首先,我们来探讨DataGrid组件。DataGrid是Flex中用于显示大量结构化数据的组件...

    Flex 常用代码

    以下是对Flex中常用代码的详细解释: 1. **解决Flex中文乱码问题** 在Flex应用中,如果遇到中文显示为乱码,可以使用`System.useCodePage = true;`来启用代码页支持,确保中文字符正确显示。这段代码应该在应用...

    flex array 一些操作

    在Flex开发中,Array对象是一种常用的数据结构,它提供了一系列用于操作数组元素的方法。本文将详细介绍几种常用的Array操作方法:`push`、`pop`、`unshift`、`shift`以及`splice`,并探讨如何通过`delete`关键字和...

    flex tree 修改icon方法

    在Flex编程环境中,Tree组件是一种常用的用户界面元素,它用于展示层次结构的数据。当我们需要自定义Tree中的节点图标时,可能会遇到如何根据数据源动态改变图标的问题。标题"flex tree 修改icon方法"正好指出了这一...

    12个Flex常用功能代码

    以下是根据标题和描述中的12个Flex常用功能代码的详细说明: 1. **复制内容到系统剪贴板**:通过`System.setClipboard(strContent)`,你可以将任何字符串`strContent`复制到用户的系统剪贴板中,方便用户进行粘贴...

    FLEX简单应用工程

    FLEX提供了一个庞大的组件库,包括按钮、面板、列表、图表等常用UI元素。这些组件都继承自Flex Component Kit(FCK),并且可以自定义样式和行为,满足各种复杂的界面需求。 **事件处理** 在FLEX中,事件驱动编程...

Global site tag (gtag.js) - Google Analytics