比较(Object,Array,Dictionary)读取元素的效率

等号表示约等于。
结论 Array > Object = Dictionary

测试了下

  private function initialized():void
  {
   for(var i:int=0;i<10000000;i++)
   {
    _arr.push(i);
    _dict[i]=i;
    _object[i]=i;
   }
   
   var t0:int = getTimer();
   
   for(var m:int=0;m<10000000;m++)
   {
    _arr[m];   //974 ms
//    _dict[m];  //1159 ms
//    _object[m]; //1211 ms
   }
   
//   for each(var a:int in _arr)
//   {
//    a;//1135 ms
//   }
   
//   for each(var a:int in _dict)
//   {
//    a;//1373 ms
//   }
   
//   for each(var a:int in _object)
//   {
//    a;//1622 ms
//   }
   
   trace("arr  time: "+(getTimer()-t0));
  }

本以为哈希最快,结果居然是数组最快

后来群里

阿伍

结论是存取删除等一系列操作平均object最快
阿伍
部分操作array快。
阿伍
但是基本可以忽略。

Flex 4 和 FlashBuilder 4 正式版发布

http://www.adobe.com/products/flashbuilder/

序列号:1424-4008-9664-3602-3439-1711 (Flash Builder beta 也是用它的,现在也能用)

一大早就得知了这个好消息,跟大家分享一下。在今天(3月22日),Flex4的最终正式版(包含Flash Builder 4,Flex 4 framework),另外还有最新的ColdFusion Builder也发布了(CF Fans可以关注了)。

来自Adobe Flex Team的介绍:

在Flex 4 SDK中,我们包含了一套新的完整的组件和皮肤架构(Spark)来支持RIA的丰富表现。在新的架构中,组件的外观和逻辑是分离的,这意味着会具备更好的可扩展性。另外在新的SDK中,优化了Flex编译器的性能,增强了很多语言和基础特性,并且针对Flash Player 10中新的运行时特性提供了支持。

在Flash Builder4中,团队增强了它在“以数据为中心进行开发”方面的特性,让它很容易连接到数据后端服务。并且包含了新的设计和开发流程(可与Flash Catalyst或Flash进行协作),以及其它很多对开发很有必要的特性。
相关资源

官方Flex4介绍和下载:

http://www.adobe.com/products/flex/

Flash Builder 4 正式版下载(记得卸载已有的Beta版本)

http://www.adobe.com/go/try_flashbuilder

Flex4视频教程(来自Adobe官方,中文字幕):

http://www.riameeting.com/flex4video

视频:

http://tv.adobe.com/watch/adc-pr … ut-flash-builder-4/

http://tv.adobe.com/watch/flash- … ash-platform-tools/

比起beta版,确实苏胡多了~

力挺~

Adobe APIs

Adobe APIs

 
主要包含corelib, mappr, flickr, youtube及加密等类库.

http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries 

as3awss3lib
与 Amazon S3 交互的 ActionScript 3.0 类库

http://code.google.com/p/as3awss3lib/ 

as3soundeditorlib
声音编辑类库

http://code.google.com/p/as3soundeditorlib/ 

as3ds
为游戏开发者整理的 AS3 数据结构

http://code.google.com/p/as3ds/

mecheye-as3-libraries
一组Flash游戏开发的AS3类库。

http://code.google.com/p/mecheye-as3-libraries/ 

APE
Actionscript的模拟物理引擎API

http://www.cove.org/ape/ 

As3Crypto
用 AS3 实现的密码系统类库,支持的算法主要包括 RSA,AES,DES,3DES,MD2,MD5,SHA-1,SHA-224,SHA-256 等等

http://crypto.hurlant.com/ 

FZip
让 AS3 能够加载标准ZIP格式的数据,并能解压其中的文件。

http://codeazur.com.br/lab/fzip/ 

// 3D相关
ASCOLLADA
一个可以解析Collada文件格式的AS3类库,Collada 是一个开放原始码的专案,它可让3D资料以XML的型态储存,并让3D人员可以轻易携带和互换资料

http://code.google.com/p/ascollada/ 

Away3d
3D引擎

http://code.google.com/p/away3d/ 

Papervision3D
3D引擎

http://code.google.com/p/papervision3d/ 

// UI相关项目
uicomponents-as3
一个轻量级的 AS3 UI 组件库

http://code.google.com/p/uicomponents-as3/ 

Tweener
Full featured animation library

http://code.google.com/p/tweener/ 

asinmotion
AS3的一个动画类库,可以并行或线性的管理特效的运行.

http://code.google.com/p/asinmotion/ 

flest
RIA企业级的AS3应用程序开发框架, 应用了Controller, Factory, Command等多种设计模式, 并采用了高效、简洁、实用托管式设计特点。

http://code.google.com/p/flest/ 

// 第三方公司或工具的API

Yahoo AS3 APIs

http://developer.yahoo.com/flash/as3_api_libraries.html 

facebook-as3
访问 Facebook 平台的 AS3 API

http://code.google.com/p/facebook-as3/ 

Salesforce Flex Toolkit

http://wiki.apexdevnet.com/index.php/Flex_Toolkit 

Twitter AS3 API

http://twitter.com/blog/2006/10/twitter-api-for-flash-developers.html 

XIFF 
XMPP client library

http://svn.igniterealtime.org/svn/repos/xiff/branches/xiff_as3_flexlib_beta1/

面瘫家族

音频片段:需要 Adobe Flash Player(9 或以上版本)播放音频片段。 点击这里下载最新版本。您需要开启浏览器的 JavaScript 支持。

跟几个同事去公司附近公园瞎玩了下

这张集体照不错,哈哈

一个不错的StyleManager

从asForm看到一个StyleManager,感觉还不错
主要是提取用swf打包后的skin style

素材打包成swf好处在于 内部进行DefineBitsJpeg3压缩,文件体积比较小,但因为继承MovieClip,不是很轻量
也可以“手动”修改让它继承Sprite。
用jsfl批处理命令的话,写到swf里都是继承MovieClip,我手动修改成Sprite后,复制那条命令,重播一次还是继承MovieClip,比较杯具。

如果把图片直接Embed进主swf,压缩就没前者来的大,文件体积相对也会大些。
所以有好有坏,根据实际情况取舍。

当然如果要用Embed嵌入方式的话,那就用不上了
下面是用动态载入的方式

使用方法很简单,就不介绍了~

package form.core
{
	import flash.display.DisplayObject;
	import flash.display.Loader;
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IOErrorEvent;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;

	import form.events.StyleEvent;

	public class StyleManager extends EventDispatcher
	{
		private var loader:Loader;
		private var appDomain:ApplicationDomain;

		private var _url:String;
		public function get url():String{return _url;}
		public function set url(value:String):void{_url = value;}

		public function loadStyleDeclarations(url:String = null):void
		{
			if(!url || url == "") url = this.url;
			if(!url || url == "") {throw new Error("No skin url found."); return;}
			loader.load(new URLRequest(url));
		}

		private function onLoadComplete(e:Event):void
		{
			appDomain = loader.contentLoaderInfo.applicationDomain;
			StyleManager.getInstance().dispatchEvent(new StyleEvent(StyleEvent.STYLE_COMPLETE));
		}

		private function onLoadError(e:Event):void
		{
			StyleManager.getInstance().dispatchEvent(new StyleEvent(StyleEvent.STYLE_ERROR));
		}

		public function getStyleDefinition(selector:String):DisplayObject
		{
			var s:Class;
			try
			{
				s = appDomain.getDefinition(selector) as Class;
			}
			catch(err:Error){trace(err.message);}
			if(s)
			{
				return new s as DisplayObject;
			}
			return null;
		}

		// Class Instance
		private static var instance:StyleManager;

		public function StyleManager(enforcer:SingletonEnforcer)
		{
			loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
			loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
		}

		public static function getInstance():StyleManager
		{
			if(StyleManager.instance == null)
			{
				StyleManager.instance = new StyleManager(new SingletonEnforcer());
			}
			return StyleManager.instance;
		}
	}
}
class SingletonEnforcer {}

SWFSEO框架(转)

# 资讯类型: 翻译
# 来源页面: http://www.pcthomatos.com/swfseo/index.html
# 资讯原标题: SWFSEO
# 资讯原作者: pcthomatos.com

SWFSEO是什么?

SWFSEO是一个允许你使用所有html网站有的优点来创建flash或flex网站的框架.

你可以点击这儿看到它的例子.

http://www.pcthomatos.com/swfseo/gettingstartedexamples.html

升级版本: SWFSEO 1.71现在可以从这里下载 http://swfseo.googlecode.com/files/swfseo.zip

较之前版本的改进:
1. 更新了SWFScroll和UltraLoader
2.新增了TransitionTwoPage.as以允许”交叉淡入淡出过渡”
3.新增了主类SWFSEOPage和SWFSEOTemplate以更好的与SWFSEO进行交互
4.修正了Flash 10编译器的问题

使用SWFSEO框架的优点:

搜索引擎友好性
编译正确后, 在你flash网站上用到的所有文字和图片对搜索引擎都是可见的。你只需要维护一个内容版本,“altContent(alt内容)”才是你网站的实际内容。

便于网页跟踪
所有“页面浏览量”都可以用一个简单的函数跟踪到,或者你也可以自己选择跟踪技术。

强大的预载功能
UltraLoader是一个非常强大的预载器,它可以预载任何类型的资源。资源一旦被加载,他们将被分组管理,这样它们就很容易访问到,甚至可以循环利用。

动态导航
只要你愿意,想创建多少导航按钮就创建多少,想要把子导航分几个层次就分几个。导航可以按你想的以任何方式放置。甚至有些简单的预设可以直接使用。SWFAddress用来做深度链接和访问历史控制。

可拖动的Flash
该功能可以使你做的flash网站界面要多大有多大。当你的flash网站超出浏览器尺寸时可选滚动条就会出现。(*IE6使用自定义的flash滚动条,其它当前流行的浏览器使用浏览器流动条)

与html的几点比较
传统的html和javascript网站有很多的限制:

浏览器不兼容
一个前端开发人员可能浪费20-60%的时间在追踪和调试基于浏览器的漏洞上。而这些时间本该更加有效的利用。

线性体验
用户的体验是线性的:点击,然后等待页面加载。过渡和运动都非常的有限。虽然“web 2.0”的出现改善了用户体验,但其与flash比较起来还是相形见绌。具有讽刺的是,web 2.0的许多相同的限制被嵌入到了flash网站中。

字体限制
在html中可以十分方便和安全的使用的字体数量非常少。为了克服这种限制,很多开发人员创建了图像中的文本。

缺少视频支持
直到HTML5被所有的浏览器支持,视频内容才能同时在silverlight和flash中被显示。

使用SWFSEO框架,所有的网站都可以被建成flash站点。然而,并不意味着html的网站会被抛弃。像我们现在这个网站仍能使用html表单良好的工作。不过,如果你想建立“优良的Web体验”或“web上的应用程序”,flash是明智的选择。

as3位操作

目前看到的位操作大部分是用在图形的RGB/ARGB的处理,或者用在swf加密的处理。

下面是最简单的位操作,很容易理解

“<<” bitwise left shift 将 expression1 和 shiftCount 转换为 32 位整数,并将 expression1 中的所有位向左移动指定的位数,该数字由 shiftCount 转换所得的整数指定。

“>>” bitwise right shift 将 expression 和 shiftCount 转换为 32 位整数,并将 expression 中的所有位向右移动一定的位数,该数目由 shiftCount 转换得到的整数指定。

“>>>” bitwise unsigned right shift 该运算符与按位右移 (>>) 运算符基本相同,但不保留原始表达式的符号,因为左侧的位始终用 0 填充。

提取颜色组成成分

//24bit 不包含aphla通道
var color:uint = 0x112233;
00  11  22  33
------------------------------------------
var r:uint = color >> 16;
00  00  00  11
------------------------------------------
var g:uint = color >> 8 & 0xFF;//偏移8位 00  00  11  22 后做与运算
00  00  00  22
------------------------------------------
var b:uint = color & 0xFF;
00  00  00  33
------------------------------------------

//32bit 的ARBG的处理跟上面一样的原理
var color:uint = 0xff112233;
var a:uint = color >>> 24;
var r:uint = color >>> 16 & 0xFF;
var g:uint = color >>> 8 & 0xFF;
var b:uint = color & 0xFF;

合并颜色组成成分
主要是做或运算

//24bit
var r:uint = 0x11;
var g:uint = 0x22;
var b:uint = 0x33;
var color:uint = r << 16 | g << 8 | b;
//32bit
var a:uint = 0xff;
var r:uint = 0x11;
var g:uint = 0x22;
var b:uint = 0x33;
var color:uint = a << 24 | r << 16 | g << 8 | b;