原创文章

Flex4 实现拖拽缓动

分类于 原创文章 十月 10th, 2011 by marco – 5 Comments

你有在做类似Google地图这种拖拽缓动效果的应用吗?你还在为写缓动加速算法而头痛吗?如果是那么你看了下面的文章内容后你肯定会大骂一句:“TMD,原来这么简单!”。。。

费话少说,先看一下效果吧(由于是国外服务器,flash和图片加载有点慢,有请耐心等待):

效果怎么样,是不是很流畅呢!
read more »

Flash Builder 4安装程序采用AIR技术

分类于 原创文章, 行业资讯 三月 22nd, 2010 by marco – 2 Comments

刚刚在安装新下载的Flash Builder4正式版,从整个安装向导UI来看极像是用AIR程序做的。

AIR2.0已经支持将程序打包为可直接执行的exe文件。

安装向导用AIR2.0解决方案,即能体现AIR2.0的特性又给自己的产品做了一次值入式广告,真是一举两得!

自定义图表刻度标签

分类于 原创文章 一月 6th, 2010 by marco – 4 Comments

Flex为我们提供了一套非常强大的图表组件,而且这些组件给我们开发人员提供了丰富的接口,在此基础上可以扩展出更加令人兴奋的应用。
下面是我扩展的AxisRenderer类,AxisRenderer是图表轴渲染器,所有图表的轴都是通过这个类来渲染的。而我这个例子所做就是在AxisRenderer的基础上提供几个接口(以Style方式),这几个接口的作用是给轴的刻度标签加上格式、前/后缀、千位符、单位。

Demo


read more »

StyleBindingUtils可以绑定样式的工具类

分类于 原创文章 一月 5th, 2010 by marco – 1 Comment

Flex自带的有一个BindingUtils类,可以把两个类的属性绑定起来,但是不能绑定样式(Style),样式是Flex中常用的特性,看其BindingUtils源码,绑定技术本身是依靠于ChangeWatcher,所以照着BindingUtils写一个可以绑定样式的方法。
StyleBindingUtils:

package org.beasy.binding.utils
{
	import mx.binding.utils.ChangeWatcher;
	import mx.styles.IStyleClient;
 
	/**
	 * Flex的绑定功能为我们的日常提供很多的方便
	 * 但是Flex只提供了属性的绑定类->BindingUtils;
	 * 如果要实现绑定控件的Style还要自己用ChangeWatcher去侦听事件
	 * 有了StyleBindingUtils这一切将变的简单
	 * StyleBindingUtils封装了ChangeWatcher进行了Style的绑定实现,
	 * 为您的开发提供了更多方便和快捷
	 * @author Marco
	 */
	public class StyleBindingUtils
	{
		public function StyleBindingUtils()
		{
		}
 
		public static function bindStyle(
			site:IStyleClient, prop:String,
			host:Object, chain:Object,
			commitOnly:Boolean = false):ChangeWatcher
		{
			var w:ChangeWatcher =
				ChangeWatcher.watch(host, chain, null, commitOnly);
 
			if(w != null )
			{
				var assign:Function = function(event:*):void
				{
					site.setStyle(prop, w.getValue());
				}
				w.setHandler( assign );
				assign(null);
			}
 
			return w;
		}
 
	}
}

read more »

在Tree上添加CheckBox(II) – 支持级联选择

分类于 原创文章 一月 4th, 2010 by marco – 4 Comments

以前也写过一遍关于Tree CheckBox ItemRenderer的文章,分析如何在Tree的节点上添加Checkbox,实现了在节点上添加了CheckBox并关联对应数据的selected:Boolean属性,也就是CheckBox的选择状态随selected属性的改变而改变,selected也随时更新当前节点上CheckBox的选择状态。

目前这个版本不仅实现了原有的功能,而且支持了树结构级联选择:支节点选中的话支节点下的子节点也会选中。

效果图:

示例
read more »

对于Flex4正式版等Adobe其它产品的分析

分类于 原创文章, 生活随笔 十二月 7th, 2009 by marco – 2 Comments

距08年初Flex3的发布已经快两年了,Flex4目前还是只Beta2的版本,正式版迟迟没有发布,目前AIR2.0和Flash Player 10.1也都是测试版。

Adobe官方说Flex4今年底或明年初会放出,这里做一个分析:我想到时Flex4、AIR2.0、Flash Plyaer 10.1和Adobe CS5产品套件应该会相继发布,Adobe的整个产品线将会又上一个档次。随着Flex4、Flash Catalyst、CS5套件的完美融合(FXG格式),Adobe的整个产品线将会一脉相承更加成熟和更加紧密的联系。

Adobe将在媒体处理、RIA等方面占据或捍卫其统治者地位。

AIR2.0新特性Exciting!

分类于 原创文章 十一月 26th, 2009 by marco – 4 Comments

前不久adobe刚刚发布了air2.0 bate版,其中包含了很多令人兴奋的新特性。

最主要的几点是:

  • 本地进程API
  • 访问麦克风数据
  • 多点触摸和手势支持
  • 全局错误处理
  • Socket的增强

我最最喜欢的是多点触摸和Socket的增强,因为我觉得多点触摸在以后是一种趋势,随便IT的发展,多点触摸能给用户带来更好的体验,多点触摸是必备的。另外Socket的增强,包括ServerSocket、 UDP Socket、TLS/SSL Socket,这是多么令我振奋的三个功能啊,这说明air从此可以做为Socket服务器端,并且支持P2P和TLS/SSL套接层加密。前早以前我写过用as3去做邮件客户端的程序,连接网易163这样的国内邮件服务器是没有问题的,但是像Gmail这样采用SSL加密的服务器那时候就没有办法了,因为那时Socket根本就没有SSL加密。现在有了AIR2.0就可以做一个AIR版的Gmail客户端了!

用as3解析带有命名空间的xml

分类于 原创文章 十一月 23rd, 2009 by marco – 添加评论

很多人都不知道XML标签里面的冒号代表什么含义,用通常的办法不能解析出带冒号的XML。那冒号正是XML的一个重要的特性–Namespace,更多资料请去Google,我这时只说怎么用as3来解析带有namespace的XML;
testXml:

<fx:XML id="textXml" xmlns="http://www.beasy.org" xmlns:beasy="http://blog.beasy.org">
	<root>
		<website>http://www.beasy.org</website>
		<beasy:name>Marco</beasy:name>
		<beasy:email>***@gmail.com</beasy:email>
	</root>
</fx:XML>

上面是一个xml变量, 我现在要获得website,name和email;
注意虽然前面没有”*:”这样的符号,也看看根节点上的命名空间定义xmlns=”http://beasy.org”,这一名就定义了一个空注解的命名空间.虽然前面没有符号, 但节点也在命名空间限制内的,想要获取他的值要这样写:

var emptyNS:Namespace = testXml.namespace(&quot;&quot;);
trace( testXml.emptyNS::website ); //输出:www.beasy.org
 
var beasyNS:Namespace = testXml.namespace(&quot;by&quot;);
trace( testXml.beasyNS::name ); //输出:marco
trace( testXml.beasyNS::email ); //输出:***@gmail.com

Flex在Tree控件上添加CheckBox

分类于 原创文章 十一月 15th, 2009 by marco – 添加评论

声明:原创文章,转载请注明出处:http://www.beasy.org/archives/17
网上遇到很多需要在Tree控件添加CheckBox等控件的问题, 本以为把Tree的itemRenderer设置成mx.controls.CheckBox 就可以完事了, 但是试了之后才发现没有这么简单 . . .
     今天看了Tree的源码, Tree在初始化的时候默认给自己设置itemRenderer属性. 此属性值也是Flex现成的:mx.controls.treeClasses.TreeItemRenderer.它内部分为三部分:1,icon也是就三角形的小图标. 2,disclosureIcon文件夹图标. 3,label显示的文字.
     我想我只要继承TreeItemRenderer再扩展一番,在label前面加上一个CheckBox不就行了.
read more »