使用AS3.0的50条理由

Comments

AIR NativeWindow 试用~

周末尝试着把淘宝试衣间转成AIR,其中涉及到AIR的一些NativeWindow对象知识

下面简单介绍下air的原生窗口对象(NativeWindow)的使用

窗口属性

每个AIR应用的发布设置里都会有3种窗口样式供选择:

默认的系统镶边:显示传统的应用程序边框,包括最小化、最大化、关闭按钮,背景不透明。

自定义镶边(不透明):不显示系统边框,背景不透明

自定义镶边(透明):不显示系统边框,背景透明

这些设置实质上是给AIR初始NativeWindow设置了对应的参数。

我们在应用程序内部动态创建NativeWindow的时候,可以通过NativeWindowInitOptions对象来改变窗口的属性,

其中包括是否透明,是否显示系统边框,窗口类型等等。NativeWindow对象本身含有标题、大小等属性,代码如下

var options:NativeWindowInitOptions = new NativeWindowInitOptions();
    options.transparent = false;
    options.systemChrome = NativeWindowSystemChrome.STANDARD;
    options.type = NativeWindowType.NORMAL;
   
    //create the window
    var newWindow:NativeWindow = new NativeWindow(options);
    newWindow.title = “A title”;
    newWindow.width = 600;
    newWindow.height = 400;

窗口控制

NativeWindow 的orderToFront() 、orderInFrontOf()、orderToBack()等方法可以控制窗口在桌面中的显示层次,

activate()、close()、可以激活和关闭窗口,maximize()、minimize()最大化最小化窗口。

窗口事件

activate 当窗口得到焦点的时候抛出事件
deactivate 当窗口失去焦点的时候抛出事件
closing 当窗口即将关闭的时候抛出事件,(只有在系统边框上关闭按钮被按下的时候才才抛出)
close 当窗口关闭的时候抛出事件
moving 当窗口左上角即将产生位移前抛出事件,(移动、缩放、改变窗口形态都可能).
move 当窗口左上角产生位移时抛出事件
resizing 当窗口即将产生高度或者宽度变化时.
resize 当窗口产生了高度或者宽度变化时
displayStateChanging 显示状态即将改变时
displayStateChange 显示状态改变后

详细的NativeWindow参考手册请参阅Adobe的官方手册 http://livedocs.adobe.com/air/1/devappsflash/

点击下载淘宝试衣间AIR

Comments

flash 常用正则表达试

作者:追箭 | 来源:闪吧  

正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了

^\d+$  //匹配非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //匹配正整数
^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //匹配负整数
^-?\d+$    //匹配整数
^\d+(\.\d+)?$  //匹配非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //匹配正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配负浮点数
^(-?\d+)(\.\d+)?$  //匹配浮点数
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
下表是元字符及其在正则表达式上下文中的行为的一个完整列表:
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
{n} n 是一个非负整数,匹配确定的n 次。
{n,} n 是一个非负整数,至少匹配n 次。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。
? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
(pattern) 匹配pattern 并获取这一匹配。
(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。
(?=pattern) 正向预查,在任何匹配 pattern 的字即ζヅ洳檎易址U馐且桓龇腔袢∑ヅ洌簿褪撬担闷ヅ洳恍枰袢」┮院笫褂谩?
(?!pattern) 负向预查,与(?=pattern)作用相反
x|y 匹配 x 或 y。
[xyz] 字符集合。
[^xyz] 负值字符集合。
[a-z] 字符范围,匹配指定范围内的任意字符。
[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。
\b 匹配一个单词边界,也就是指单词和空格间的位置。
\B 匹配非单词边界。
\cx 匹配由x指明的控制字符。
\d 匹配一个数字字符。等价于 [0-9]。

\D 匹配一个非数字字符。等价于 [^0-9]。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。
\W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。
\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。
\num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。
\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。
\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。

Comments

写在air正式版发布之后

昨天adobe终于发布了让人期待已久的air正式版。

长久以来adobe的flash播放器一直是作为浏览器的控件形式运行的,寄人篱下的感觉他们应该比谁都清楚。

可以说air 1.0 的正式发布使得adobe战略的冰山一角得以浮出水面,也将是adobe RIA意志的最好载体。

摆脱浏览器,跨平台,多媒体,良好的用户体验等等都会使得我们的互联网应用丰富多彩。。。

我一直都有个疑问,千篇一律的web应用何时会结束?现在想想时候应该不远了。

Comments

超越Wii: 用脑电波控制玩游戏

现在只能在科幻电影里看到的场景,或许不用多久都会变成现实了

http://www.cnbeta.com/articles/47444.htm

Comments

Air,Flex3.0正式版发布

Flex 3.0 与 AIR 1.0 正式版发布

Adobe 2月25日发布了Flex 3.0 与 AIR 1.0 的正式版,可以去下载了:)
产品页:
http://www.adobe.com/products/flex/
http://www.adobe.com/products/air/

Comments

一个flash小知识点: allowScriptAccess

今天配合小马对宝贝detail页面的图片查看器进行改造的时候,遇到个问题,在本地测试的时候flash 对本页Js 的调用很正常,可是提交到测试环境之后,AS和JS之间的调用就无论如何不起效果,一番折腾之后,终于确认原因。必须加上<param name=”allowScriptAccess” value=”always” />。

在页面插入flash时, 可以在 PARAM 或 EMBED 标签中进行设置 allowScriptAccess 的属性来控制对外部脚本的控制,一共有三个参数。

  • AllowScriptAccess 为”sameDomain“时,仅当 SWF 文件和网页位于同一域中时才允许执行外出脚本访问。这是 AVM2 内容的默认值(不写的话,就是默认成这个值了)
  • AllowScriptAccess 为”never“时,外出脚本访问将始终失败。
  • AllowScriptAccess 为”always“时,外出脚本访问将始终成功。

 一般情况下,我们的flash文件都不会与页面文件处在同一个域中,往往通过 img.xxx.com,pic.xxx.com等图片服务器路径调用,所以必须把allowScriptAccess设置为always才可以让flash正常调用本页JS.

一个小的知识点,不知道的话有时候还是会惹点小麻烦的。

Comments

更新日志~

今天花了点时间整理下BLOG,添加了几篇以前写的老文,增加了雅虎统计工具,友情链接,只是没搞定雅虎的站点管理工具。

总体感觉wordpress很好,很强大。有时间继续捣鼓。

另外flash做的雅虎站点统计的折线图给我感觉也不错。

Comments

TOGO 测试版~

这个小东西,主要功能很早就用as2写完了,由于有段时间跑去学习 FLEX 了,一直没有完善发布,本来我是想在as3 熟悉之后直接写个air可离线版的。

趁这几天有空 先完善下,以后再重构吧。http://ued.taobao.com/lab/togo/togo.html 顺祝大家国庆HAPPY

1

2

3

Comments

基于客户端的用户行为分析

客户端的用户行为分析,故名思意,就是在用户电脑上进行行为记录,数据分析的一种做法。

这种方法有很多好处,一方面可以减少服务器的压力;

另一方面,如果建立了完善的客户端数据收集,筛选,传递机制后,可以满足不同的需求(指导广告投放,为可用行改进搜集数据等等)。

需要注意的是,因为客户端的数据收集处理,都依赖于用户的电脑,所以如果程序编写不当,容易造成用户体验问题,页面速度慢,消耗资源严重等等。

所以在程序编写上必须慎重。对用户资源使用必须节制。

目前通过一些工具插件可以进行客户端数据收集处理,不过并不能进行广泛的应用。

客户端的数据收集处理,需要的是个隐式的过程。强迫用户安装任何的插件或者程序,那是不现实的。

所以只能充分挖掘浏览器的潜能了:cookie, 确实可以记录很多网站的信息,不过4K的容量限制拿来存放用户的历史数据的话,肯定不够用。

还好Flash有个SharedObject类,帮助文档上这样写的“复杂网站的用户首选项或跟踪数据,如用户阅读了新闻网站上哪些文章的记录。跟踪此信息将允许您以不同方式分别显示已经阅读的文章和新的未读文章。在用户计算机上存储此信息可减小服务器负载。”

SharedObject默认是100k,并且用户可以自己调整大小。

另外通过Flash的ExternalInterface类可以轻易的和页面中的Javascript脚本实现相互调用,那么我们可以充分利用js对DOM的良好控制来收集用户事件,ActionScript处理数据,结果存入SharedObject。这样,数据的收集,处理,保存问题都可以迎刃而解。
这套机制的原理很简单的,技术也不是什么新的。

相对于这些,我想难点应该在数据的归纳、分类上,怎样在数千万的用户中找出你想要的那部分…

我们正在对这套机制进行有步骤的测试,希望可以不断的改进完善。

Comments

« Previous entries · Next entries »