`
zwnJava
  • 浏览: 205892 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Flex技巧收集

    博客分类:
  • flex
 
阅读更多
1、让Label、Text中的文本自动换行:
 
<mx:Label id="lab" creationComplete="{lab.mx_internal::getTextField().wordWrap = true;}"/>
     
   Text 标签同理
 
2、flex获得年月日:
var date:Date = new Date(); 
var df:DateFormatter = new DateFormatter(); 
df.formatString = 'YYYY-MM-DD HH:NN:SS'; 
trace(df.format(date)); 

    格式化时间戳:1314063166171 (自 1970 年 1 月 1 日午夜以来的毫秒数。)
    flex 获得时间戳的方法是 new Date().getTime() 。
    Date 的 getTime() 方法 是 自 1970 年 1 月 1 日午夜以来的毫秒数。
    getTime() 得到的时间毫秒数跟 java 和 php 等得到的毫秒数是一样的。
    格式化毫秒数的方法:
    var df:DateFormatter = new DateFormatter();                   
    df.formatString = 'YYYY-MM-DD HH:NN:SS';  // 1314063166171
    trace(" 格式化时间戳 = ",df.format(new Date()));    //当前时间
    trace(" 格式化时间戳 = ",df.format(new Date(1314063166171)));  //已有时间

    注意:new Date()中的数字不能为String 类型。类型为String转化会有问题。   
 
3、ArrayCollection 数据
 
private var tempArr:ArrayCollection = new ArrayCollection(  
    [  
     {date:"2011-3-4",type:"[flex]",title:"flex开发"},
     {date:"2011-3-4",type:"[java]",title:"java开发"},
     {date:"2011-3-4",type:"[php]",title:"php开发"},
    ]  
   );
4、 屏幕分辨率相关
Capabilities
Capabilities 类提供一些属性,这些属性描述了承载 SWF 文件的系统和播放器。例如,手机屏幕可以有 100 个正方形像素(黑白),而 PC 屏幕则可以有 1000 个正方形像素(彩色)。通过使用 Capabilities 对象来确定用户所拥有的设备的类型,可以向尽可能多的用户提供适当的内容。如果熟悉设备的功能,则可以通知服务器发送合适的 SWF 文件,或是通知 SWF 文件变更其播放方式。

可使用 GETPOST HTTP 方法发送功能信息,这些信息作为一个 URL 编码的字符串存储在 Capabilities.serverString 属性中。下例显示了支持 MP3、具有 1600 x 1200 像素分辨率、运行 Windows XP 并且安装有输入法编辑器 (IME) 的计算机的服务器字符串:

A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&
     SB=f&DEB=t&V=WIN%209%2C0%2C0%2C0&M=Adobe%20Windows&
     R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&
     L=en&PT=External&AVD=f&LFD=f&WD=f&IME=t
【 FlexGlobals  出自于 Flex4 】
 
5、自动更新界面组件大小,如:
ViewStack 设置 resizeToContent="true"
 
6、获得Text组件的行数和列数
var numLines:int = summaryText.mx_internal::getTextField().numLines;
var lineLength:int = summaryText.mx_internal::getTextField().getLineLength(numLines - 1);
 
7、Embed 嵌入资源
 
 1)<mx:Image id="myLogo" source="@Embed('assets/logo.png')"/>  
 2)[Embed(source="/assets/report/reportLibrary/pdf.png")]      public var pdfIcon:Class;
 
8、通过两开时间戳来计算其之间相差的天数
 
var begin:Number  =  128672640032;
var end:Number  =  1318175999328;
var count:int= (end - begin)/60/60/1000/24 + 1;
 
 9、加载外部 swf  样式文件
var event:IEventDispatcher = StyleManager.loadStyleDeclarations("assets/compStyle.swf", true);
event.addEventListener(StyleEvent.COMPLETE, loadStyleHandler);
 ----------------------------------------------------------------------------------
private function loadStyleHandler(event:StyleEvent):void
{
      trace("load swf style css finish"); 
}
 10、将组件的 【属性】提取成为【样式】
        1) 作为 .as 文件来做:
 
package com.comps
{
	import mx.containers.VBox;

	[Style(name="heightStyle", type="Number", format="uint", inherit="no")]
	public class MyVBox extends VBox
	{
		public function MyVBox()
		{
		}
		override public function styleChanged(styleProp:String):void
		{
			super.styleChanged(styleProp);
			var heightNum:Number;
			switch (styleProp){
				case "heightStyle":
					heightNum = this.getStyle( styleProp ) as Number;
					this.height = heightNum;
					break;
			}
			this.invalidateDisplayList();
		}
	}
}
 
        2) 作为组件来做:
            
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
	<mx:Metadata>
		[Style(name="heightStyle",type="Number",format="Number",inherit="no")]
	</mx:Metadata>
	<mx:Script>
		<![CDATA[
			/**
			 * 重写styleChanged事件,处理combobox样式
			 */
			public override function styleChanged(styleProp:String):void
			{
				super.styleChanged( styleProp );
				var heightNum:Number;
				switch( styleProp )
				{
					case "heightStyle":
						heightNum  = getStyle( styleProp ) as Number
						if(  heightNum != 0 )
						{
							this.height = heightNum;
						}
						break;
				}
			}
		]]>
	</mx:Script>
</mx:HBox>
  
11、其它
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics