面对不给力的FlashBuilder

Categories: Flex; Tagged with: ; @ November 14th, 2010 17:22

AS写的多了, 有时候觉得到了雄狮流泪, 雌狮绝经的空间边缘, 孤立无助, 身边是FB这头病驴 — 不能抛弃他, 还得指望着他拉犁, 他只是一头驴, 你不能把他当成一头狮子.

虽然FlashBuilder已比Flex Builder比更早的IDE更先进, 更牛逼, 但乏力依旧, 最近从3.5升级一个App到4.0, 自家的PackageName有些改变, 于是重构起来非常乏力.

先说电脑配置: AMD 4×3.0GHz, 内存4G.
问题: 在小规模开发时, 流畅, FB也就是吃500M内存, 但在重构时, 尤其AutoBuilding, 要命啊….

因此在重构/开发时要注意:

0. 保持一个正在开发的Application
1. 尽量只引用当前开发的模块, Application里引用太多, 无异于找死.
2. 像个程序员一样写符合规范的代码, 推荐: http://riashanghai.com/node/66
3. 在频繁改动, 保存之前, 取消auto build

对于FB4重构:

Rename PackageName已可以正常工作 – 但偶尔还会有问题, 记得勾选sub Package.
因此如果批量修改PackageName, 不需要像以前一样, 一个个改了, 直接rename packageName.
重构量大时, 可将常用的新的Import存起来, 粘贴进去, ctrl+shift+O重新组织Import, 速度会很快

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 – 不友好啊不友好…

Newer Posts <-> Older Posts



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