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

flex的常用用法二十条(转载)

    博客分类:
  • 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");
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/parine26/archive/2009/05/26/4214761.aspx
分享到:
评论

相关推荐

    flex常用知识问答

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

    Flex常用教程及库

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

    flex常用动态菜单

    在IT行业中,尤其是在Web开发领域,Flex是一种广泛使用的框架,用于构建富互联网应用程序(RIA)。Flex提供了丰富的组件库,使得开发者能够轻松创建交互性强、视觉效果丰富的用户界面。本篇文章将详细探讨“flex常用...

    12条常用Flex代码 值得收藏

    以下是12条常用的Flex代码,涵盖了Flex的多个方面,旨在提高开发者的开发效率和编程水平。 1. 复制内容到系统剪贴板 在Flex应用程序中,经常需要将内容复制到系统剪贴板,以便用户可以快速地粘贴内容到其他应用...

    FLEX常用验证控件.doc

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

    flex滚动条三种实现方式

    在Flex布局中,我们可以有几种不同的方法来实现滚动条,尽管它们在技术上可能被视为一种实现,但可以以不同的样式呈现。下面我们将详细探讨这些方法。 1. **默认滚动条**: 在不进行任何自定义的情况下,浏览器会...

    Flex 常用大收藏

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

    flex DataGrid用法大全

    flex 里面DataGrid常用到的所有用法总结!

    flex 经常用法flex 经常用法

    Flex布局,全称为“Flexible Box”,也称作弹性盒布局,是CSS3中的一种布局模式,主要用于处理网页或应用程序中的复杂布局问题。...理解和熟练运用这些常用方法,对于提升网页和应用程序的用户体验至关重要。

    Flex Flex Flex Flex

    Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...

    Flex 常用代码

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

    Arcgis server flex 渲染用法

    Arcgis server flex FeatureLayer 渲染用法

    Flex tree的用法

    让我们深入了解一下Flex Tree的用法以及与XML数据结合的方式。 1. **Flex Tree的基本用法** - **创建Tree组件**: 在Flex中,你可以通过在MXML或ActionScript中定义`mx.controls.Tree`组件来创建Tree。 - **数据...

    Flex 颜色渐变条

    Flex颜色渐变条是一种在Flex应用中用于展示和编辑颜色渐变效果的组件。它允许用户通过添加、删除和修改节点来定制颜色过渡,从而在视觉上表达出丰富多彩的色彩变化。这种组件在UI设计中尤其有用,因为它提供了对颜色...

    常用Flex网站常用Flex网站

    Adobe Flex SDK是开源的,可以免费下载使用,同时还有众多第三方库和框架,如Spark和 Halo,可扩展Flex的功能。 总结,Flex作为一款强大的RIA开发工具,虽然面临HTML5的挑战,但在特定领域依然有不可替代的作用。...

Global site tag (gtag.js) - Google Analytics