Flash、Flex、RIA、web、Linux和我的生活
TipsAndTricks
ActionScript3移除匿名函数的侦听
Jun 9th
使用URLLoader载入文本和XML-ActionScript3 Tips and Tricks
Dec 30th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一Loading Text and XML with URLLoader,查看所有的笔记。
在AS3以前的版本中,要载入外部文本,可以使用LoadVars类和XML类。但是在AS3中,这些功能被移到了一个类中,这就是URLLoader(flash.net.URLLoader)类,这个类与LoadVars很相似。而AS3的XML类中,已经没有了载入外部XML文件的功能。我们可以使用URLLoader类获取外部的文本,并将其解析成普通文本或者XML对象。
就像LoadVars类一样,URLLoader类也有一个load()方法载入外部源的数据。这个方法允许一个URLRequest类的实例(而不是一个字符串)作为它的为一个参数。你可以使用URLLoader的事件决定载入完成之后该做什么。载入成功之后,URLLoader中的data属性将包含载入的文本值。
var loader:URLLoader; // ... loader = new URLLoader(); loader.addEventListener(Event.COMPLETE, xmlLoaded); var request:URLRequest = new URLRequest("file.xml"); loader.load(request); //... function xmlLoaded(event:Event):void { var myXML:XML = new XML(loader.data); //... } |
trace的多参数支持-ActionScript3 Tips and Tricks
Dec 30th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一Multiple Arguments in trace(),查看所有的笔记。
trace函数可以在Flash的输出面板(Flex Builder的Console面板)中显示信息。在ActionScript1和ActionScript2中,trace函数只能接收一个参数,而在ActionScript3中,trace函数可以接收多个参数:
trace(value1, value2, value3); |
实际上,在ActionScript1/2中也可以做到。只需要使用数组:
trace([value1, value2, value3]); |
ZRong注:实际上,以上的两段代码的显示结果是不同的,ActionScript3 的trace,会将每隔参数的值以空格分开,而ActionScript1/2使用数组作为参数,显示的结果是以逗号分隔的。
获取实例的类或超类名-ActionScript3 Tips and Tricks
Sep 15th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一Determine Instance Class or Superclass,这里是原文地址。
在ActionScript3中,可以使用getQualifiedClassName函数 (flash.utils.getQualifiedClassName)获取实例的类名:
var sprite:Sprite = new Sprite(); trace(getQualifiedClassName(sprite)); // 输出"flash.display::Sprite" |
还可以使用getQualifiedSuperclassName函数 (flash.utils.getQualifiedSuperclassName)获取超类的名称:
trace(getQualifiedSuperclassName(sprite)); // 输出"flash.display::DisplayObjectContainer" |
使用ByteArray进行对象深度拷贝-ActionScript3 Tips and Tricks
Sep 13th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一“Deep Object Copies with ByteArray”,这里是原文地址。
使用ActionScript3中新提供的 ByteArray类 (flash.utils.ByteArray) 可以创建一个对象的深度拷贝。“深度”的意思是可以拷贝一个对象(object)的所有引用, 这意味着如果你拷贝一个包含对象的数组,那么数组中的对象也被拷贝(而不是引用)。下面是一个clone方法:
ActionScript 代码:
function clone(source:Object):* { var copier:ByteArray = new ByteArray(); copier.writeObject(source); copier.position = 0; return(copier.readObject()); } |
注意:你需要先导入 flash.utils.ByteArray;
要使用这个方法,可以使用下面的代码:
ActionScript 代码:
newObjectCopy = clone(originalObject); |
虽然这个方法可以深度拷贝你的对象,但是它不会一同拷贝类的类型定义。所以,如果查需要拷贝一个 MyClass 实例,拷贝出的对象将不在是MyClass类型。这个方法最好在普通对象上使用。 更多 >
抽象类-ActionScript3 Tips and Tricks
Sep 13th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一,这里是原文地址。
很不幸,ActionScript3不支持抽象类(abstract classes),抽象类不能被实例化,并且只能扩展一次。所以,你不能在Flash中创建自己的抽象类。让我们先来了解一下Flash Player中内置的抽象类:
对于抽象类来说,你不能使用new关键字来建立它们的实例。
ActionScript 代码:
var myObj:InteractiveObject = new InteractiveObject(); // 错误 |
当然,你也不可以继承它们并试图建立子类的代码。
ActionScript 代码:
不过,你可以继承内部抽象类的子类。例如,如果需要继承DisplayObject,你可以继承Shape类。Shape就是DisplayObject的子类。
新的变量类型-ActionScript3 Tips and Tricks
Jan 11th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一New Variable Types,这里是原文地址。
新的变量类型
ActionScript3支持更多的变量类型,基本的类型包括:
简单类型:
* Boolean
* int
* null
* Number
* String
* uint
* undefined
合成类型:
* Object
* Array
* Date
* Error
* Function
* RegExp
* XML
* XMLList
其他的类型涉及它们的类,例如:Matrix (flash.geom.Matrix), Shape (flash.display.Shape), URLRequest (flash.net.URLRequest)等等。
一些提示: 更多 >
图形对象和绘图API-ActionScript3 Tips and Tricks
Jan 10th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一Graphics Object and the Drawing API,这里是原文地址。
图形对象和绘图API
就像ActionScript1和2一样,ActionScript3也有绘图API,你可以使用它们在影片剪辑和sprite对象中绘制矢量线条或图形。使用ActionScript3,绘图API总是在显示对象(例如影片剪辑、sprite等等)的graphics属性(flash.display.Graphics)中使用。graphics属性表现为绘图API绘制出的一个动态层。就像以前一样,这个动态层位于绘图目标对象的所有的子对象之下。在ActionScript3中,提供了一些新的方法让你绘制矩形、圆形以及圆角矩形变得更加容易。它们包括: 更多 >
类的活动范围已经绑定到类方法-ActionScript3 Tips and Tricks
Jan 9th
本文是ActionScript3 Tips and Tricks系列阅读笔记之一Class scope is now bound to class methods,这里是原文地址。
类的活动范围已经绑定到类方法(Class scope is now bound to class methods)
(也不知标题这么翻译是否正确,应该大致是这个意思把,简单的说,这个技巧就是讲解this的引用的问题。ActionScript2中,如果位于某个对象的事件处理函数中,this就指向发出这个事件的对象,而在ActionScript3中,this始终都指向类)
ActionScript3是完全基于类的。当你创建类时,你创建的变量和函数(方法)对这个类以及实例起作用。与ActionScript2不同,方法在被调用的时候保留它所属的类的活动范围,即使这个方法被指派给另一个对象并从另一个对象调用,或者使用Function.call和Function.apply也是如此。范例如下: 更多 >
实时改变影片帧频-ActionScript 3 Tips and Tricks
Jan 9th
由于ActionScript 3 Tip of the Day(ActionScript3 Tips and Tricks)一文原帖地址实在太慢,准备从今天起,慢慢将原帖转到Blog上,以免以后哪天原帖不能访问了,我还可以拿来参考。
====================================================
本文是ActionScript3 Tips and Tricks系列阅读笔记之一Change the frame rate of your movie,这里是原文地址。
实时改变影片帧频(Change the frame rate of your movie)
使用ActionScript3中的Stage类,可以动态改变影片的帧频。
Stage类可以通过主影片中sprite或影片剪辑的stage属性访问(也可以通过位于同一安全沙箱其他影片中的相关属性访问)。stage对象有一个frameRate属性,可以包含0.1至1000之间的任何值。改变这个属性的值,可以让Flash Player实时改变被播放的影片的帧频。 更多 >
Use OpenOffice.org
最新评论