Archive for the ‘ActionScript3’ Category

一个MM讲的Papervision 3D的教程(视频)

Saturday, June 14th, 2008

在Flex3上,包括了讲解基本的SVN知识……

FlashPlayer 10的一些新特性(视频教程)

Tuesday, May 20th, 2008

FlashPlayer10测试版发布已经有几天了,所有这些操作到来自FlashPlayer10内部的技术。我大致看了GotoAndLearn.com提供的三段精彩视频,简介如下:

  1. 文件系统操作
    与Adobe AIR提供的接口类似,FlashPlayer10也提供了对本地文件系统的操作权限(在硬盘上创建、修改、删除文件)。不过值得注意的是,FlashPlayer的文件系统权限仅对本地的SWF文件开放,对任何HTTP(包括本地服务器)提供的SWF文件是无效的。例如你可以打开D:\www\test.swf这个swf文件来进行文件操作,但(如果你的web目录是D:\www的话)即便是localhost/test.swf也是无权操作文件系统的。
    视频教程地址
  2. 动态声音生成器
    FlashPlayer10果然是创意设计者(Designer)的天堂!动态声音的支持让交互的乐趣性骤然提高(例如可以根据鼠标位置和鼠标移动速度来动态地发出声音)
    视频教程地址
  3. 内置三维效果
    为Sprite类的实例添加了“z”和“rotationX”、“rotationY”、“rotationZ”属性。制作一个三维的效果将变得非常简单,甚至不需要Papervision这些辅助库就可以实现了。
    视频教程地址

如果心动了,也想开发FlashPlayer 10的程序,可以点击这个地址查看开发环境设置流程。

对比FlashPlayer8 Beta和Flash8的关系,现在通过FlashPlayer10,其实我们不难察觉到Flash10在终端创意产品的开发上将是一款极其强大的开发工具。Adobe一方面开放Flex和各类API,另一方面进一步加强创意开发工具的威力。从宏观上完全符合了“旧媒体向新媒体转型”、“在线广告市场激增”的未来发展趋势。

用ActonScript3开发Twitter客户端,发布AIR产品

Monday, February 18th, 2008

类似Twitter之类的轻量级SNS的最大优势在于其强大的API支持和巨大无比的扩展空间。目前比较好的产品是twhirl,基于最新的Adobe AIR Beta3(如果是Beta2或者更早的版本,请卸载后安装新的Beta3)

之前,曾在《22 AS3 API》中介绍过相应的API,而今天发现Twitter的官方API中有详细的ActionScript3 Twitter库(当然,也包括AS2库),利用Flex Builder或者下一代Flash IDE可以直接开发AIR应用客户端。这时,产品的设计权完全在开发者的手中,产品竞争力更加草根化、民主化!这也是不提供API的SNS网站所望尘莫及的一点。

利用Firebug来调试Flash(直接输出到Console)

Sunday, September 30th, 2007

Firebug无疑是上天赐予每一个Web Developer最好的礼物。每一个AJAX、XHTML+CSS的项目几乎都要用Firebug从头跟到尾。而许多更加复杂的应用,需要利用Flash与JavaScript通信,甚至操纵DOM,则调试变得异常复杂。好在激活Firebug的Firefox窗体有一个叫做console的Object,它为JavaScript提供了一些列的函数支持,再利用Flash和JavaScript通信所用到的ExternalAPI,我们就可以直接让swf的输出显示在Firebug的console里面了。

感谢 Aaron Bassett 为我们完成了这样一个伟大的应用:

AS3版调试器(类):http://foobr.co.uk/flashBug/flashBug.AS3.as

AS2版调试器(算一个小SDK吧):http://foobr.co.uk/2007/02/debug_flash_with_firebug/

轻量的AS3 Tween类 - TweenLite

Thursday, July 5th, 2007

轻量的AS3 Tween类 - TweenLite

http://blog.greensock.com/tweenliteas3

特点:

  • Minimize file size - 缩小文件尺寸
  • Minimize the amount of code required to initiate a tween - 减少任务代码
  • Tween multiple properties with a single call (including a MovieClip’s volume and color)  - 多属性同一代码调用
  • Maximize performance - 增强性能
  • Build in the ability to call any function when a tween has completed and pass any number of parameters to that function - 完成时事件控制
  • Build in the ability to call any function when a tween starts and pass any number of parameters to that function - 初始化事件控制
  • Allow the user to set a delay before the tween takes effect (useful when looping through an array and you want to have tweens activate in a sequential way) - 启动时的延迟接口

忘记MXML,用CS3携Apollo起飞!

Thursday, June 28th, 2007

首先,回味一下经典的武侠小说《倚天屠龙记》中第二十四章《太极初传柔克刚》中,张三丰传授一招”太极剑”给张无忌的情景。张三丰反复暗示让张无忌忘记招数。最终,张无忌以极快的速度领悟了”太极剑”的精髓,并击败了”八臂神剑”。

其实现实之中,也有很多场合需要我们去”忘记”。最近玩AIR开发的时候,就遇到这样的情况:也许是工作和生活的疲劳,导致我两个晚上研究AIR(Apollo)的进展非常缓慢。今天终于找到自己两个最大的疏忽:没有清晰地理解到MXML是什么;没有彻底认识到”AIR”的含义。总是被MXML所束缚,导致无法使用我擅长的FlashIDE环境直接进行轻量级开局。

下面我就结合对这两点疏忽的反思,简单介绍一下利用Flex Builder3开发并发布AIR程序的原理、思路。转载请保留链接:http://as3blog.com/as3/cs3-develop-air,作者:http://www.awflasher.com/blog/

1、MXML(Macromedia XML?)
MXML是Macromedia在2004年三月发布的一种描述界面的标记语言,基于XML标准。与微软的WPF技术体系不同的是,MXML必须在服务器端编译为swf,然后发布到客户端。客户端,或者我们叫做”Runtime”,可以执行这些swf,展现成界面、实现各种功能。我们常见的Runtime就是常说的Flashplayer。而最近非常红火的”Apollo”更名后的”AIR”,就是一种新的”Runtime”。微软的XAML(eXtensible Application Markup Language)很像MXML,也是一种描述应用界面、交互的基于XML的标记语言,但是它实在发到客户端再解释的(目前还不确定未来的具体实现)。

我个人认为,传统的Flash设计人员对于Flex的复杂性肯定是极难接受的,即便对于传统的Flash开发人员,也很难融入到基于XML的描述中进行一些轻量级的开发。而MXML的本意,则是去吸引那些VC、Java程序员。对于他们来说,MXML开发界面还是十分方便的。

另外还有一个误区就是,MXML就是应用程序。这是绝对错误的。MXML只是一种描述,最终运行,还是需要编译好的SWF+Runtime。对于传统的Flash开发人员,可以这么理解:MXML就好比FLA,FlexBuilder就好比FlashIDE把FLA变为SWF那样把MXML变为SWF。

2、AIR(Adobe Integrated Runtime)
AIR是Apollo Intergeted Runtime。AIR程序都是跑在AIR这个Runtime之上的。这就好比SWF文件在Flashplayer中运行一样。
AIR的组成和发布非常简单:一个描述应用的XML+一个根节点资源+一个打包工具。
在我们使用Flex Builder3简历AIR项目的时候,一般都会自动产生一个MXML和个XML。用Flex编译好的SWF,作为这个AIR的默认根节点,然后可以通过Flex Builder3 发布成为air安装包。然而这并不意味着我们只能用Flex开发AIR应用!我们只要有swf,并且把这个swf描述成为AIR应用的根节点资源,就可以利用Flex Builder3的打包工具发布我们的air安装包了!

下面是我利用Flash CS3开发AIR安装包的几个步骤的截图,我狠花了一番功夫准备的,相信看了这些图片,你会对Flex、MXML、Flash CS3、AIR等等这些概念有一个更加深入的理解!

先看最终效果吧:

Adobe AIR(Apollo)教程, Adobe AIR 入门

开发步骤详细截图(共18张大图): (more…)

Apollo-AIR更名以及开发者需做的调整

Monday, June 25th, 2007

最近Adobe在技术体系方面接二连三地作出调整,Apollo更名为AIR之后,我们开发人员需要做一些调整了。例如要删除Apollo在FlexBuilder2.0.1的插件,而且还有许多工作要做。找了半天,终于在这里找到具体方法:http://labs.adobe.com/wiki/index.php/AIR:Release_Notes

80MB的Flex2项目源文件打包

Monday, June 25th, 2007

http://www.igorcosta.org/?p=6

去这里下载吧,速度还不错。

AS3日积月累(5) - 推荐三个非常有用的AS动画类

Thursday, May 24th, 2007

Flash CS3 Animator
FlashCS3自带的Animator类,采用一个XML的结构来描述动画。而这个XML结构可以通过FlashCS3的IDE的MotionTween直接获得:在一段MotionTween上单击鼠标右键,选择CopyMotion as ActionScript3.0

Tweener
继承了AS2Tween的光荣传统,功能非常强大,更加严格的OOP风格。

AnimationPackage
不光有普通的动画功能,更是加上了很多对滤镜等插件的辅助效果,号称编译swf代码极小(没有仔细考证)。

AS3日积月累(4) - 小问题

Tuesday, May 22nd, 2007

最近太忙了,几乎都没有时间打开Flex2或者FlashCS3。不过,as3blog.com还要继续更新下去。Nshen和Tomato的加盟一定会让as3blog.com带来更多好东西。

没有时间长篇大论,为了证明我还在关注这里,今天记录几个我在试用Flex2和CS3时遇到的一些小问题吧,也许你也会遇到:

  • 如果用getDefinitionByName方法创建自定义类,需要建立一个临时变量使得编译器找到定义,此外,传入的参数,必须是完整路径的,例如:
    private const DICT:Object =
    {
    googlepr:”com.awflasher.RIA.RankFetcher.GooglePR”,
    alexa:”com.awflasher.RIA.RankFetcher.AlexaRank”,
    sogourank:”com.awflasher.RIA.RankFetcher.SogouRank”,
    competerank:”com.awflasher.RIA.RankFetcher.CompeteRank”
    }
    “com.awflasher.RIA.RankFetcher.”不能省略
    在调用之前,需要var一个变量为null:
    public function onFlushData(evt:Event):void
    {
    var dummy1:GooglePR = null;
    var dummy2:AlexaRank = null;
    var dummy3:SogouRank = null;
    for each (var e in getDisplayArr)
    {
    var thisInstance:Sprite = addChild(new (getDefinitionByName(DICT[e]))(Number(myFetcher.rankValue.pr),theme_obj["line"], theme_obj[e])) as Sprite;
    thisInstance.x = 5;
    thisInstance.y = getChildIndex(thisInstance) * 20 + 20;
    }
    }
  • 对Sprite来说,useHandCursor必须在“buttonMode”为true时才能生效:
    buttonMode = true;
    useHandCursor = true;

这里也会不定期更新,到时候我会修改发布时间,大家看RSS就可以了,不必浪费宝贵的时间。