FlashPlayer9的早先版本全屏下的疑似bug

March 5th, 2008

FlashPlayer9经过漫长的发布,终于来到了9.0.115.0。FlashPlayer9先于ActionScript3发布,让更多AS1、2的应用可以享受到许多新功能,其中最著名的就是全屏功能。

然而,之前的一些版本存在一些问题可能会影响我们开发全屏应用程序,尤其是视频播放器类应用,需要在全屏状态下调用Mouse.hide()函数(以ActionScript2而非ActionScript3)则会带来一些麻烦:

全屏之后,一旦调用Mouse.hide()那么即便退出全屏,Mouse.hide()也会继续执行,甚至影响到浏览器之外的任何鼠标位置。

这个问题在FlashPlayer9最新版,也就是上面提到的9.0.115.0中已经被修正。

请在检查您的版本。中国地区的用户可以在国内FlashPlayer下载

Adobe.com大改版,AIR1.0+Flex3正式发布

February 25th, 2008

首页:www.adobe.com

AIR:www.adobe.com/products/air/

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

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

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网站所望尘莫及的一点。

GotoAndLearn - AS3学习的视觉体验

January 10th, 2008

很久很久以前,就看到过Lee Brimelow的ActionScript3学习网站GotoAndLearn,与其他教学资源网站不同,GotoAndLearn是全程的视频资料

我看得第一个视频教程是讲解Math类的用法,还是AS1、2时代的教程了。Lee清晰的发音和流畅的FLV画面让我这个非英语母语的人听起来也完全可以理解。当时,Lee只是用类似Flex的一个框架简单地搭建了一个教程列表。中途有一段时间更新并不算快,我看来,这种速度的更新可能最后就“无疾而终”了。但Lee今天在Twitter上的一则消息让我又振作起来。

GotoAndLearn已经焕然一新,所有的FLV视频都提供下载!现在,大量AS3视频教程的跟进让我觉得这个网站真的是每一个Flash Deveoper都值得一看的资源宝地!

地址:GotoAndLearn.com

Adobe AIR beta3发布

December 18th, 2007

这里看到的消息。翻译过来给大家看看,转载请保留:http://as3blog.com/news/air-beta3/

Adobe AIR是一套能够让开发者将他们已经熟知的HTMLAJAX、Flash和Flex技术融会贯通,并极大限度利用客户端资源的体系。

Beta3日前发布,以下是一些新的功能:

  • Beta3发布的应用能设定为“开机自动运行”、“登录自动运行”(aw附:为考证是否仅针对Windows平台)
  • Web Launcher可以在浏览器中判断您是否安装了某种AIR应用,并且直接激活您已经安装的AIR应用
  • 支持H.264高清视频和高级音频编码(AAC)
  • 全屏硬件加速
  • Flash内容可以集成进入基于HTML的应用
  • 支持AIR的在线自动更新(应该能协助Beta3用户顺利过渡到正式Release了)
  • Thawte为AIR应用提供安全性认证。这个类似Yahoo的Widget引擎的功能使得我们可以放心地下载各种AIR应用
  • 支持Mac OSX Lepard操作系统

其中有三项我个人非常喜欢,已经标为黑体

此外,我在官方Wiki中发现,如果不出意外,Beta3的API将会和最终发行版(1.0)保持不变!

下载地址

探索Flash播放器“运行缓慢”的原因及解决方案

November 1st, 2007

转载请注明出处:探索Flash播放器“运行缓慢”的原因及解决方案 - http://as3blog.com/resources/upload-causing-flashplayer-slowly/

最近在实现基于JavaScript和ActionScript的“批量文件上传系统”。感谢SWFUpload这样一个有趣的项目,从前到后ActionScript(AS2)、JavaScript和PHP都已经基本搞定。然而,当我把本地的PHP脚本移到服务器上之后,在上传大文件时,浏览器端的FlashPlayer总是弹出如下警告:

A script in this movie is causing Adobe Flash Player to run slowly. If it continues to run, your computer may become unresponsive. Do you want to abort the script?

大致意思是:“该Flash中有一段单帧脚本导致Flash播放器运行缓慢,如果继续,很可能会引发‘死机’现象”。其中,单帧脚本是指在Flash的一个关键帧中所处理的脚本。

Flash程序,也就是ActionScript,和C++、Java不同,ActionScript在2.0之前的入门门槛非常低,几乎小学生学几天都可以写一个上来溜溜(这并不是一件坏事)。这样一来,产生了不少效率低下的作品,甚至不少Flash动画含有潜在的死循环体(例如点击某个按钮后执行死循环)。虽然我们应该给初学者鼓励,但对于while(true)类似的死循环,则无疑严重破坏了用户体验,甚至会给用户造成不必要的损失。因此,对于编写不规范的ActionScript代码,采取这种措施是非常有必要的。

Adobe官方的解释是“几乎没有一个用户愿意为一个操作等待15秒以上的时间,他们(用户)会认为应用程序出了问题”。因此,Adobe非常“人性化地”在这个“由众多专家调查而得出的15秒”的时间段后给用户一个提示。同时,也给出了一些方法,例如,可以将循环“分摊”到不同的关键帧上。对于载入服务器端数据,如XML文件的案例,当被载入数据超过64k的时候,应将数据分开载入,并以不同的关键帧建立HTTP请求。这么做,比较类似我们在JavaScript中通过setInterval、setTimeout来解决。例如曾经写过一段JavaScript代码来改变整个页面链接的href属性,提供增加alexa排名的可能性

很遗憾,Adobe忽略了一件事:文件上传

FileReference和FileReferenceList两个类在Flash8的引入,无疑是Flash在Browser端应用极大的突破之一,曾经困扰Web开发者的Ajax文件上传批量上传,尤其是对文件类型、大小的客户端检测,如今都能依靠FlashPlayer实现。而且,借助Flash8的External API,可以使ActionScript与JavaScript方便地通信,这样就可以让FlashPlayer在“幕后”完成一切的文件操作,而让DOM(HTML)来展现内容。

然而,恰恰是如此好的功能,却几乎每次都会受到上面提到的“脚本超时保护”的困扰。显然,Adobe官方的解决方案在这里就行不通了。

利用Google搜索,发现无数的人也在询问同样的问题。后来在这篇介绍用Flex实现的批量上传的文章后的评论里面,找到了一个叫做“Timothee Groleau”的哥们的“自问自答”,终于解开了迷团:FlashPlayer在触发并执行用户定义的脚本(就是你编写的ActionScript)时,会重置“脚本超时值”(上文提到的15秒)。这样,我们可在某一个“马甲MovieClip”上绑定一个onEnterFrame事件,让它不断地(逐帧)执行。最简单的做法就是:

_root.onEnterFrame=function(){return false}

ECMAScript4概要初现端倪

October 24th, 2007

原文地址请保留:
http://as3blog.com/resources/ecmascript4-overview-available/

ECMAScript的官方网站如此诠释EMCAScript脚本:“the language of the web” - 中文说,就是“互联网语言”。我们熟悉的JavaScriptActionScript都是基于ECMAScript体系的脚本语言。

Adobe最新产品线(Flash CS3、Flex Builder、AIR)中也广泛地应用了基于ECMAScript第三版的ActionScript3作为基础语言。

如今,ECMAScript第4版已经初现端倪,在Moock处找到了这篇最新的《Overview PDF》(概要),其中“Features at a Glance”(显著特色功能)一下就吸引了我。关于语法校正(Verification)、性能优化(Speed Optimization)、新的迭代方式(for in和for each in)、自我定义(Soft-hosting)等等。

感兴趣的一定要去看看。

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

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/

22 AS3 API

August 16th, 2007

From: Danger

Orginal post: List of 22 ActionScript 3.0 API’s

Adobe APIs
corelib, mappr, flickr, youtube and more.
http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries

APE (Actionscript Physics Engine)
http://www.cove.org/ape/

as3awss3lib
ActionScript 3.0 library for interacting with Amazon S3
http://code.google.com/p/as3awss3lib/

as3soundeditorlib
Actionscript 3.0 library for sound editing
http://code.google.com/p/as3soundeditorlib/

as3ds
AS3 Data Structures For Game Developers
http://code.google.com/p/as3ds/

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

As3Crypto
ActionScript 3 Cryptography Library
http://crypto.hurlant.com/

asinmotion
Animation Library for AS3
http://code.google.com/p/asinmotion/

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

ebay API
http://code.google.com/p/as3ebaylib/

facebook-as3
AS3 API to access Facebook’s Platform API
http://code.google.com/p/facebook-as3/

flest
Flest Framework for Adobe Flex and ActionScript3 Applications
http://code.google.com/p/flest/

FZip
Actionscript 3 class library to load standard ZIP archives and extract/decompress contained files.
http://codeazur.com.br/lab/fzip/

lastfm-as3
Actionscript 3.0 library to access the Last.fm web services
http://code.google.com/p/lastfm-as3/

MapQuest
http://company.mapquest.com/mqbs/4a.html

mecheye-as3-libraries
A set of ActionScript 3 Libraries, primarily for Flash game development.
http://code.google.com/p/mecheye-as3-libraries/

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

Salesforce Flex Toolkit
http://wiki.apexdevnet.com/index.php/Flex_Toolkit

Tweener
Full featured animation library
http://code.google.com/p/tweener/

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

uicomponents-as3
Lightweight AS3 UI component library
http://code.google.com/p/uicomponents-as3/

XIFF
XMPP client library
http://svn.igniterealtime.org/svn/repos/xiff/branches/xiff_as3_flexlib_beta1/

Yahoo AS3 APIs
http://developer.yahoo.com/flash/as3_api_libraries.html

Got any to add? Have you worked with any of these? Share your experience with others. Especially if you have run into any issues….

轻量的AS3 Tween类 - TweenLite

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) - 启动时的延迟接口