Flex4 Spark TextArea 设置自适应大小及派发鼠标滚动事件

Categories: Flex; Tagged with: ; @ November 14th, 2010 16:43

记得在使用Flex4之前, 看过一篇介绍TextArea自适应高度的文章, 监听Event, 动态改变高度.  很少用TextArea, 也没用过. 在Flex4, 使用Spark界面时, TextArea可设为自动适应.

设置heightInLines = NaN -  如果该属性为 NaN(默认值),则组件的默认高度由要显示的文本确定。
See: http://tinyurl.com/2ubwrta

但当鼠标在TextArea之上时, 鼠标滚动, 整个Application的scrollbar竟然没反应…猜是没有dispatch event, 于是增加监听函数:

	/** 响应TextArea的鼠标滚动事件, 接收到后派发出去, 以便引起外部UI可获得该事件, 并进行响应的滚动. */
	protected function onMouseEventWheel(e:MouseEvent):void {
		dispatchEvent(e);
	}

妥了.

Flex中使用NavigateToURL实现HTML预览

Categories: Flex; Tagged with: ; @ November 10th, 2010 21:04

尚未发现Flex中有可以直接渲染HTML代码的组件, 但可通过服务器端配合实现预览.

原理: Flex(尤指AIR环境), 使用URLLoader发送POST请求, 将要预览的HTML代码发送到服务器端Servlet, 服务器端收到请求后创建临时文件, 将HTML存到临时文件中. Flex端收到URLLoader Complete事件后, 使用navigateToURL navigate到Servlet上(使用GET), Servelet 返回文件内容 —- 在上述过程中, Flex端生成UUID作为代码读写的key.

(more…)

[发布] 使用Flex HTTPService与TinyURL API创建的网址缩短小工具

Categories: Flex; Tagged with: ; @ October 16th, 2010 12:33

TinyURL 提供了极其简单易用的网址缩短API.  使用”http://tinyurl.com/api-create.php?url=http://liguoliang.com/“即可获得缩短链接. 这里是使用Flex制作的一个网址缩短小工具:

主要代码供热爱学习的同学们查阅: 主要是HTTPService

		/** On short url button.*/
		protected function onButtonClick(event:MouseEvent):void {
			CursorManager.setBusyCursor();
			var currentUrlRaw:String = StringUtils.trim(textURLRaw.text);

			var service:HTTPService = new HTTPService();
			service.addEventListener(ResultEvent.RESULT, onExecuteSuccess);
			service.addEventListener(FaultEvent.FAULT, onExecuteError);

			service.method = URLRequestMethod.GET;
			// Like : http://tinyurl.com/api-create.php?url=http://liguoliang.com/
			var serviceUrl:String = "http://tinyurl.com/api-create.php?url=" + currentUrlRaw;
			service.url = encodeURI(serviceUrl);
			service.resultFormat = HTTPService.RESULT_FORMAT_TEXT;

			service.send();
		}

		private var lastShortUrl:String;
		/** on API call success. */
		protected function onExecuteSuccess(e:ResultEvent):void {
			CursorManager.removeBusyCursor();
			lastShortUrl = e.result.toString();
			textInfo.text = "短网址生成成功:" + lastShortUrl + "(点此复制->)";
			buttonCopy.enabled = true;
		}

		/** on fault. */
		protected function onExecuteError(e:FaultEvent):void {
			CursorManager.removeBusyCursor();
			Alert.show("Error: " + e.toString());
		}

See: http://www.richardcastera.com/2009/05/09/creating-a-tinyurl-with-tinyurl-api/

Flex 复制内容到粘贴板 Set System Clipboard

Categories: Flex; Tagged with: ; @ October 16th, 2010 12:02

Use:  System.setClipboard(lastShortUrl);

直接Call时, 报错:

Error #2176: Certain actions, such as those that display a pop-up window, may only be invoked upon user interaction, for example by a mouse click or button press.
    at flash.system::System$/setClipboard()

只好加一个"复制"按钮, 在ButtonHandler中set clipboard – 不友好啊不友好…

Flex中使用鼠标状态忙 Set Cursor Busy in Flex

Categories: Flex; Tagged with: ; @ October 16th, 2010 11:43

一直没用过鼠标状态, 都是在忙的时候disable控制UI, 忙完了再enable.  某天看Flex Test Drive, 看上去很好啊:
但是虽然鼠标忙, 但仍旧可以使用, 因此说看上去很美 —- 所以你还是要对控制UI进行Enable/Disable

设置鼠标忙: CursorManager.setBusyCursor();
重置忙状态: CursorManager.removeBusyCursor();

See API: http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/mx/managers/CursorManager.html

Newer Posts <-> Older Posts



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