AS3文档

在还没有熟悉基本的Flash空间和组件时,还是阅读官方文档比较好,有助于透彻理解这些类。

一些英文文档:

http://www.adobe.ca/livedocs/flash/9.0/ActionScriptLangRefV3/flash/text/TextField.html

http://www.adobe.ca/livedocs/flash/9.0/ActionScriptLangRefV3/flash/text/StyleSheet.html

http://www.adobe.ca/livedocs/flash/9.0/ActionScriptLangRefV3/fl/controls/Button.html

http://www.adobe.ca/livedocs/flash/9.0/ActionScriptLangRefV3/fl/controls/Label.html

中文文档:

http://livedocs.adobe.com/flex/3_cn/langref/flash/text/TextField.html

历遍XML:http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e6b.html

在搜索时,加上以上部分地址,可以直接搜出官方文档,例如:"TextField Site:http://www.adobe.ca/livedocs/flash/9.0/ActionScriptLangRefV3"

使用flash做跨域调用

使用Flash做了一个跨域调用新闻列表的小程序。还没有美化,也没有加入加载进度条。

flash中的html:选用TextField还是TextArea(组件)?

TextField:flash内置对象,完整类名:flash.text.TextField,官方文档:

http://www.adobe.ca/livedocs/flash/9.0/ActionScriptLangRefV3/flash/text/TextField.html

TextArea:flash内置组建,完整类名:flash.controls.TextArea,官方文档:

http://wwwmacr-sjc0.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/controls/TextArea.html

我的目的是想通过flash来做跨域调用,显示新闻列表。如果效果好的话,还可以考虑同新闻内容一齐显示出来。

这个问题成功解决,将是潮汕风情网API调用较好的解决方案。因为用户只需要插入一段html代码即可,无需理会服务器是使用asp、php或者asp.net。一切数据都由用户端直接载入。

在ActionScript3中拖动MovieClip

ActionScript3中的MovieCilp不再直接使用onPress和onRelease作为监听器了,而是使用面向对象方式的做法:addEventLisener(string,listener)

下面代码加载动态加载两个logo图片,并设置为可拖动。

var ct:MovieClip = new MovieClip();
var pc:MovieClip = new MovieClip();

var ld:Loader = new Loader();
var url:URLRequest = new URLRequest("http://www.vuo.net.cn/themes/VUO/style/images/logo.jpg");
ld.load(url);
pc.addChild(ld);

var ld1:Loader = new Loader();
var url1:URLRequest = new URLRequest("http://www.google.com.hk/images/srpr/nav_logo13.png");
ld1.load(url1);
var pc1:MovieClip = new MovieClip();
pc1.addChild(ld1);
pc1.x = 200;

pc.addEventListener(MouseEvent.MOUSE_DOWN,onpress);
pc.addEventListener(MouseEvent.MOUSE_UP,onrelease);

pc1.addEventListener(MouseEvent.MOUSE_DOWN,onpress);
pc1.addEventListener(MouseEvent.MOUSE_UP,onrelease);

function onpress(evt:MouseEvent):void{
	//使用this的话,将拖动整个舞台!
	//this.startDrag();
	evt.currentTarget.startDrag();
}

function onrelease(evt:MouseEvent):void{
	evt.currentTarget.stopDrag();
}

ct.addChild(pc);
ct.addChild(pc1);
addChild(ct);

 效果:

ActionScript3加载外部文件

在AS3中使用Loader来加载外部SWF和图像文件,Loader对象会提供一个容器来存放外部文.AS3不再充许像以前那样把外部文件加载到MC中,当然,因为as3不再有层级(_level)的概念,以加载外部SWF和图像文件到层级的方法也退役了.
(注:as1/as2中的loadMovie(),loadMovieNum(),MovieClipLoader等加载外部SWF和图像文件的法,在as3中都由Loader代替.)
创建Loader实例的方法与创建其它可视对象(display object)一样(new Loader()),然后使用ddChid()方法把实例添加到可视对象列表(display list)中,加载是通过Loader.load()方法理一个包含外部文件地址的URLRequest对象来实现的.有的DisplayObject实例都包含一个loadInfo属性,这个属性关联到一个LoaderInfo对象,此象提供加载外部文件时的相关信息。Loader实例除了这个属性,还包含另外一个ontentLoaderInfo属性,指向被加载内容的LoaderInfo属性。当把外部元素加载到Loader实时,可以通过侦听contentLoadInfo属性来判断加载进程,例如加载开始或者完成事件.
loadinof.jpg 
可以与LoaderInfo实例关联的事件有:
* complete:Event -当外部文件被加载完成时分派。complete事件通常在init事件后触发。
* httpStatus:HTTPStatusEvent-当通过HTTP协议请求加载外部文件时,且Flash Player可以检到HTTP状态的代码 。
* init:Event – 当被加载SWF文件的属性和方法可以被访问到时候触发,init事件先于omplete事件。
* ioError:Event – 由于输入/输出错误导致加载失败时触发.
* open:Event – 加载操作开始时调用。
* progress:ProgressEvent – 加载操作时接收到数据时调用。
* unload:Event – 加载对象被删除时调用。

简单示例:

var request:URLRequest = new URLRequest("content.swf");
var loader:Loader = new Loader();
loader.load(request);
addChild(loader);

上面的代码会在Loader实例中加载content.swf,当且仅当此影片被成功加载后,它才会在oader实例中显示出来,Loader实例已经被添加到可视列表中,所以这些内容也会被显示到屏上。
加载时检测错误发生:

var request:URLRequest = new URLRequest("content.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);
function ioError(event:IOErrorEvent):void
{
trace(event);
}
 
try
{
loader.load(request);
}
catch (error:SecurityError)
{
trace(error);
}
addChild(loader);

这里的错误检查是用来检测加载过程中是否出现错误.
第一个是给Loader实例的contentLoaderInfo属性(不是Loader实例)关联一个ioError侦听器来获被加载元素的输入/输出错误。
第二个try-catch块,用来加载操作,Loader实例的load()方法会在下列情况下抛出ecurityError错误:
* LoaderContext.securityDomain值必须为null或者等于SecurityDomain.currentDomain。这以来你只有把要加载的文件放在受信任安全沙箱中,或者放在你自己域(需要一个策略文件),才能加载到这些文件..Loading a Cross-domain policy file
* 本地的SWF文件只能将LoaderContext.securityDomain设置为null,不充许在本地加载非本地件.
* 如果applicationDomain 或者 securityDomain 属性是一个不被信任的域。
* 本地SWF文件取不到securityDomain属性值.

建议: 注意检测错误,特别是同步(thrown)错误,因为当一个错误被抛出时, 当前程序块会迅速止执行. 同时,如果影片在debug版的Flash播放时,会抛出无法捕获的异常, 这些异常信息和步错误(那些未处理侦听事件)将出现在一个弹出对话框中.

一个preload示例:

var request:URLRequest = new URLRequest("content.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
function loadProgress(event:ProgressEvent):void
{
var percentLoaded:Number = event.bytesLoaded/event.bytesTotal ;
percentLoaded = Math.round(percentLoaded * 100);
trace("Loading: "+percentLoaded+"%");
}
function loadComplete(event:Event):void
{
trace("Complete");
}
loader.load(request);
addChild(loader);

这里的contentLoaderInfo属性用来附加侦听器.PROGRESS事件用于获得加载过程中的数据信息当加载完成时,调用COMPLETE事件.这里为了表达清晰省去的错误检查的相关代码,在实际工作不能省去的.

英文原版地址:http://www.kirupa.com/forum/showthread.php?p=2112823#post2112823

中文翻译源地址:http://flashcoder.cn/blog/index.php/archives/16

ac3httpclientlib起步教程:调试hello world

刚接触actionscript。最初的想法,是想用flash做用户UI,用ActionScript代替JavaScript。而ac3httpclientlib就代替JavaScript中的jQuery。

于是下载了ac3httpclientlib进行使用。摸索了两天,终于调试成功最简单的例子。

总结一点经验,可以节省很多人的时间。

运行这个ActionScript类库,需要另外两个额外的类库支持:

ac3corelibAs3Crypto。(注意,as3crypto要使用火狐浏览器下载才能下载到swc文件,使用IE会下载到swf文件。)

本来ac3httpclientlib的压缩包里面包含有ac3corelib的发行版,可能我太心急了吧,没有好好阅读说明文档,结果浪费了许多时间。

不过话说回来,目前国内用这个类库的资料不多,至少,在google和百度上很少有它的资料。

或者,另外一种情况,flash根本就是不这样用的?

 

ActionScript类库和框架大全

AS3 库资源 很多非常有用的类库,太浩瀚了,还没来得及考察那个比较适合我:我只想要能够实现Ajax功能的类库,当然,如果能起到相当于JavaScript中的jQuery的作用,就更好!

1、as3ebaylib
http://code.google.com/p/as3ebaylib/

2、as3youtubelib
http://code.google.com/p/as3youtubelib/

3、as3flickrlib
http://code.google.com/p/as3flickrlib/

4、Yahoo ASTRA Flash Components
http://developer.yahoo.com/flash/astra-flash/

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

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

7、Adobe ActionScript. 3:resources:apis:libraries (官方,包括corelib、FlexUnit、Flickr、Mappr、RSS and Atom libraries、Odeo、YouTube)
http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries

8、Tweener   用于过渡与切换的一组动画库
http://code.google.com/p/tweener/

9、uicomponents-as3     一组轻量级的AS3 UI组件库
http://code.google.com/p/uicomponents-as3/

10、as3ds     AS3的数据结构实现
http://code.google.com/p/as3ds/



11、mecheye-as3-libraries     一组主要用于Flash 游戏开发的AS3库
http://code.google.com/p/mecheye-as3-libraries/



12、XIFF   一套XMPP协议的AS3实现
http://svn.igniterealtime.org/svn/repos/xiff/branches/xiff_as3_flexlib_beta1/

13、FZip   一套AS3库,可用作对ZIP压缩文件的载入、修改与创建
http://codeazur.com.br/lab/fzip/

14、FlexLib   一套开源的Flex界面组件库
http://code.google.com/p/flexlib/

15、AnimatedGIfLoader Flex Component     可载入GIF的Flex组件
http://dougmccune.com/blog/animatedgifloader-flex-component/

16、goplayground     一套轻量级的,可用创建属于你自己的AS3 动画工具的库
http://code.google.com/p/goplayground/

17、AlivePDF   开源的用于PDF创建的AS3库
http://www.alivepdf.org/

18、jwopitz-lib   一组开源的Flex用户界面组件
http://code.google.com/p/jwopitz-lib/

19、as3crypto   AS3实现的一套加密库,包括多种加密算法
http://code.google.com/p/as3crypto/

20、flare     一套强大的可视化交互的AS3类库
http://flare.prefuse.org/

21、SWFAddress     一小而强大的库,可以为Flash和Ajax提供深链接的功能
http://www.asual.com/swfaddress/

22、SWFObject     用于嵌入Flash,Adobe官方也认可了
http://code.google.com/p/swfobject/

23、ulse Particle System 一套开源的强大的AS3动态粒子系统
http://code.google.com/p/pulse-particle/
http://www.rogue-development.com/pulseParticles.html

24、SpringGraph Flex Component
http://mark-shepherd.com/blog/springgraph-flex-component/

25、GoASAP     AS3动画库
http://code.google.com/p/goasap/
http://www.goasap.org/index.html

26、asaplibrary   一套开源的Flash Actionscript3.0 RIA库
http://code.google.com/p/asaplibrary/
http://asaplibrary.org/
http://asapframework.org

27、as3mathlib 开源Flex/Actionscript数学库
http://code.google.com/p/as3mathlib/

28、as3corelib 包含一些基础功能AS3库
http://code.google.com/p/as3corelib/

29、minimalcomps 一组AS3 UI组件
http://www.bit-101.com/minimalcomps/

30、as3gif
http://code.google.com/p/as3gif/

31、queueloader-as3     一组AS3库,用来进行资源序列载入及监测
http://code.google.com/p/queueloader-as3/

32、TweenMax (AS3)
http://blog.greensock.com/tweenmaxas3/

33、Atellis Reflection Component             一款Flex反射效果组件
http://labs.atellis.com/2007/07/11/atellis-reflection-component/

34、AS3Eval     简单来说,就是用AS3实现的AS3编译器
http://eval.hurlant.com/

35、ByteArray的组件、库合集,包括liquid components、mousegesture、ASZip、GIF Player、GIF Animation Encoder、AlivePDF、Live JPEG Encoder、ScaleBitmap等
http://www.bytearray.org/?page_id=82

36、AS3C     针对AVM2虚拟机,用C#写的字节码编译器
http://code.google.com/p/as3c/

37、as3httpclientlib   as3实现的http客户端
http://code.google.com/p/as3httpclientlib/

38、as3ui   一组常规的as3 ui界面库
http://code.google.com/p/as3ui/

39、as3xls 让你在flex中可以读写Excel文件
http://code.google.com/p/as3xls/

40、as3flexdb 让你的flex程序可以连接到MySQL服务器,主要是使用AMFPHP来访问PHP服务器
http://code.google.com/p/as3flexdb/
这一是一篇详细使用介绍的教程
http://itutorials.ro/viewtopic.php?f=9&t=7

41、vivisectingmedia-as3  一组AS3/Flex实用库,是作者在实践中总结出来的
http://code.google.com/p/vivisectingmedia-as3/

Actionscript. 3.0 Class

1、fZip   此类可允许你载入标准的zip文件并提取里面包含的文件
http://wahlers.com.br/claus/blog/zip-it-up/

2、AS3: Layout class for Flash CS3     一组用作布局的类
http://www.senocular.com/?id=2.8

3、CSSLoader     该类允许Flex应用程序在运行时载入CSS
http://www.rubenswieringa.com/blog/cssloader

4、AS3: QueryString     一个单例类,用来获取URL地址后所带参数值对
http://evolve.reintroducing.com/2008/07/03/as3/as3-querystring/#more-141

5、ActionScript. 3 Contextual Menu Manager Class         AS3关联菜单管理类
http://www.blog.noponies.com/archives/103


2D & 3D Engine

1、APE (Actionscript. Physics Engine)   物理引擎
APE前身是as2版本的Flade,呼声很高,优点就是清晰简单,一共没有几个类:),目前版本alpha 0.45 ,有API文档和示例,教程有一篇quick start ,在Google Group上有一个论坛可以讨论。svn上一直在更新目前svn上的版本为0.5a

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

2、Away3D
http://code.google.com/p/away3d/

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

4、Sandy     开源3D库
http://www.flashsandy.org/versions/3.0

5、FORM   一套AS3完成的用于2D刚性物体的物理引擎
http://code.google.com/p/foam-as3/


6、Five3D   基于矢量的Flash 3D 交互动画创建
http://five3d.mathieu-badimon.com/

7、Flade (Flash Dynamics Engine)   一套开源的2D物理引擎,AS2实现
http://www.cove.org/flade/

8、Box2DFlashAS3     2D物理引擎,AS3实现,基于强大的Box2D C++物理库
http://box2dflash.sourceforge.net/

9、Paradox   基于Flash的第一称3D引擎
http://animasinteractive.com/propaganda/

10、ND3D AS3 3D Engine  一款简单的AS3开源3D引擎,编译后的引擎大小仅约10K
http://code.google.com/p/nd3d/
http://www.nulldesign.de/nd3d-as3-3d-engine/

11、motor2   基于Box2d的AS3刚体引擎,也是2D的.
作者就是 AS3数据结构的作者,2007年最后一天发布
作者主页:http://lab.polygonal.de/motor_physics/
代码:http://code.google.com/p/motor2/

12、WOW-Engine   法国人写的,基于Sandy library的算法 3D物理引擎
http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/




FrameWorks

1、Cairngorm   Adobe官方出的Flex框架
http://labs.adobe.com/wiki/index.php/Cairngorm

2、PureMVC   纯AS3框架,也有其它语言的实现
http://www.puremvc.org/

3、ASWing AS3   一套开源的AS3 GUI框架
http://www.aswing.org/

4、EasyMVC   由事件驱动的MVC框架
http://projects.simb.net/easyMVC/

5、Mate 基于Tag及事件驱动的Flex框架
http://mate.asfusion.com/

6、ARP     基于模式(Pattern)的RIA框架,Flash平台,支持AS2和AS3
http://osflash.org/projects/arp

7、Gaia   开源的Flash前端框架,支持AS2和AS3,用于快速开发
http://www.gaiaflashframework.com/

8、flest   Actionscript3.0/Flex应用程序框架,用来开发企业级的RIA
http://code.google.com/p/flest/

9、Gugga     Flash Framework     更新至AS3
http://www.gugga.com/flashblog/

10、Prana 另一个提供了IOC反转控制的框架,类似著名的Spring框架
http://www.pranaframework.org/

11、OpenFlux   开源的Flex组件框架,让开发Flex组件更加快速容易
http://code.google.com/p/openflux/

12、Degrafa       声明式的Flex图形框架,允许以MXML标签的方式绘制图形、创建皮肤,还包括对CSS的支持
http://code.google.com/p/degrafa/

13、FlexMVCs   针对AS3和Flex的应用程序框架,基于PureMVC,作了些修正和精简
http://code.google.com/p/flexmvcs/

Flash & Flex Tools、Servers

1、FlexUnit     Flex/Actionscript3.0单元测试框架
http://code.google.com/p/as3flexunitlib/

2、Visual FlexUnit 增强的FlexUnit,支持“可视化断言”
http://code.google.com/p/visualflexunit/

3、RED bug       debug调试控制器,让Flash、Flex、AIR应用程序更加容易
http://www.realeyesmedia.com/redbug/

4、reflexutil 可在运行时对Flex组件进行调试
http://code.google.com/p/reflexutil/

5、FxSpy   当Flex应用程序运行时可以检测和动态的改变可视化组件属性值
http://code.google.com/p/fxspy/

6、ThunderBolt 基于Firefox的Firebug插件的日志扩展,支持AS2及AS3
http://code.google.com/p/flash-thunderbolt/

7、FlashTracer Firefox扩展,可以以侧栏的方式将Flash中trace()的结果显示

8、RIALogger 另一款Flex/AIR的Debug工具
http://renaun.com/blog/flex-components/rialogger/

9、Alcon 一款轻量级的AS2及AS3的Debug工具,AIR方式将Debug信息展示出来
http://blog.hexagonstar.com/alcon/

10、GDS (Granite Data Services) 开源,提供了Adobe LiveCycle Data Services类似功能的服务器
http://www.graniteds.org/

Flex Explorers   (大部分为Flex2版本,但同样适用于Flex3)

1、Flex3 Component Explorer   Flex各类组件示例
http://examples.adobe.com/flex3/componentexplorer/explorer.html

2、Resize ManagerFX Explorer (此为商业作品,要收费的)
http://www.teotigraphix.com/explorers/ResizeManagerFX/ResizeManagerFXExplorer.html

3、Flex3 Style. Explorer
http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html

4、Flex2 Style. Explorer(添加了Kuler功能)Flex UI组件风格定制并可输出为CSS
http://www.maclema.com/content/sek/

5、Flex2 Style. Explorer(Adobe 原始的版本)
http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html

6、Flex2 Filter Explorer   查看各类滤镜效果并可进行设置
http://merhl.com/flex2_samples/filterExplorer/
http://merhl.com/?p=40   (AIR版本)

7、Flex2 Primitive Explorer   在Flex中创建各种简单形状
http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html

5007: ActionScript 文件必须至少有一个外部可见的定义。

一般来说,ActionScript2.0的类放到ActionScript3.0环境经常会报这个错误。

解决方法一:返回ActionScript2.0环境,在fla文件的发布设置中可设置ActionScript的版本。

解决方法二:ActionScript3.0要求每个as类文件,必须包含在包中,而且只能有一个public class声明。这点与Java类似。检查一下你的as类文件,是不是有类似下面的声明:

package{
  public class MyClass{
    ....
  }
}

package后面可带包路径,也可以留空。

更多关于ActionScript3.0的知识请看ActionScript3.0官方文档

公告栏

  • 姓名:林剑锋(不见不散)
  • 来自:中国-广州
  • 简介:技术的信徒。
  • Email/QQ:admin@ljf.cn
  • 点击这里给我发消息

QQ群:设计学院 68075618,网站设计师 9908776

统计

文章:337篇
评论:173条 (2条Spam)
相册:1个 (121张图片)
主题:Nagrand新主题

www.ljf.cn网站PR查询