Flex:使用正则表达式验证用户输入

Categories: Flex; Tagged with: ; @ January 14th, 2010 20:51

目的: 使用正则表达式对数据进行校验

使用正则表达式的优点: 1. 可进行更为复杂的精确复杂的Validation; 2. 更重要的是, 在动态创建爱UI时, 可在xml, 数据库或其他持久性存储中存放对某一UI的正则表达式, 在创建后便可设定给有关ui.

如某UI只允许输入数字, 可监听FlexEvent.VALUE_COMMIT或Event.CHANG事件:

 

var regExp:RegExp = new RegExp("^[0-9]*$"); if(!regExp.test(getVauleFromUI())) { _errorMessage = RM.getString(BUNDLE_CONSOLE, "error.msg.regexp.wrong", [regExp.toString()]); }

 

效果:

image

Flex 设置UI组件宽高的同时设置其百分比

Categories: Flex; Tagged with: ; @ January 14th, 2010 20:06

设定一个组件的宽高, 且能随着外部容器变化而变化, 使用

explicitMinHeight: Number

布局过程中父级要考虑的组件最小建议高度。

Pasted from <http://livedocs.adobe.com/flex/3_cn/langref/mx/containers/VBox.html>

Flex 将字符串编码为有效的 URI(统一资源标识符)

Categories: Flex; Tagged with: ; @ January 14th, 2010 20:03

直接使用顶级方法:

encodeURI(uri:String):String

相关方法:

Boolean(expression:Object):Boolean

将 expression 参数转换为布尔值并返回该值。

Top Level

decodeURI(uri:String):String

将已编码的 URI 解码为字符串。

Top Level

decodeURIComponent(uri:String):String

将已编码的 URI 组件解码为字符串。

Top Level

encodeURI(uri:String):String

将字符串编码为有效的 URI(统一资源标识符)。

Top Level

encodeURIComponent(uri:String):String

将字符串编码为有效的 URI 组件。

Pasted from <http://livedocs.adobe.com/flex/3_cn/langref/package.html>

Flex: HBox horizontalAlign 靠左/右排序

Categories: Flex; Tagged with: ; @ October 27th, 2009 13:42

hboxActions.setStyle(“horizontalAlign”, “right”); 便可实现… 今天早晨脑子被挤,发现设了之后还是靠左…良久, 才想起来没有设定hboxActions的宽度

Flex TileList 使用自定义ItemRnederer低级错误举例

Categories: Flex; Tagged with: ; @ October 23rd, 2009 14:17

使用Flex TileList实现如下效果:

image

考虑到日后可能需要在其后添加按钮, 考虑到日后可能会在后面加入其它内容, 于是继承HBox, 实现IDropInListItemRenderer, IDataRenderer.

但屡屡发现出现错误: 每次仅显示最后的一个或两个Item, 前面的有, 但不再显示.

image

经过检查, 发现在Renderer中, 实现set data()时, 未呼叫super.data

Container中data setter如下

    /**
     *  @private
     */
    public function set data(value:Object):void
    {
        _data = value;

        dispatchEvent(new FlexEvent(FlexEvent.DATA_CHANGE));

        invalidateDisplayList();
    }

增加super.data后, 功能实现.

更正后的ItemRender:

package com.liguoliang.es.app.class_.ui
{

import mx.containers.Box;
import mx.containers.BoxDirection;
import mx.controls.CheckBox;
import mx.controls.listClasses.BaseListData;
import mx.controls.listClasses.IDropInListItemRenderer;
import mx.core.IDataRenderer;

public class RenderForInitCE extends Box implements IDropInListItemRenderer, IDataRenderer
{
	private var _listData:BaseListData; // 为实现IDropInListItemRenderer而创建.

	/** UI */
	protected var _box:Box;
	protected var _checkBoxCE:CheckBox;
	
	public function RenderForInitCE() {
		super();
		_box = new Box();
		_box.direction = BoxDirection.HORIZONTAL;
		_checkBoxCE = new CheckBox();
	}
	
	//-------------------------Renderer-------------------------------
    [Bindable("dataChange")]
    [Inspectable(environment="none")]
	public function get listData():BaseListData {
		return _listData;
	}
	
	public function set listData(value:BaseListData):void {
		_listData = value;
	}
	
	
    [Bindable("dataChange")]
    [Inspectable(environment="none")]
	/** @inheritDoc */
	override public function get data():Object {
		return super.data;
	}
	
	/** @inheritDoc */
	override public function set data(value:Object):void {
		super.data = value;
		removeAllChildren();
		_checkBoxCE.label = (value as ClassEnrollment).user_.nameFull;
		addChild(_checkBoxCE);
		_checkBoxCE.percentWidth = 100;
	}
	
} // End of class
} // End of package

Newer Posts <-> Older Posts



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.