Actionscript 2 wasn't that bad after all, but a few things drove some developers crazy. For example if you initialized a member variable with an Object, this member magically behaved like a static classmember, due to the storage of the member in the prototype. In ActionScript 3 this works just like expected, as you can see here.
//////////
在AS2中的老问题,在AS3中得到解决了。以内联方式初始化数组和对象,属性可能变成静态成员。(可以参看LUAR的书《ACTIONSCRIPT 2.0与RIA应用程序开发》80页)
在AS2里面
Test1.as
Test2.as
数组变成静态成员,与预想的结果不一致
0
0,1
在AS3中
输出正常的结果
0
0
//////////
在AS2中的老问题,在AS3中得到解决了。以内联方式初始化数组和对象,属性可能变成静态成员。(可以参看LUAR的书《ACTIONSCRIPT 2.0与RIA应用程序开发》80页)
在AS2里面
Test1.as
import Test2; class Test1 extends MovieClip { public function Test1 () { var t1:Test2 = new Test2 (); var t2:Test2 = new Test2 (); } }
Test2.as
class Test2 { private var a:Array = new Array (); function Test2 () { a.push (a.length); trace (a); } }
数组变成静态成员,与预想的结果不一致
0
0,1
在AS3中
package { import flash.util.trace; import flash.display.MovieClip; public class Test1 extends MovieClip { public function Test1() { var t1:Test2 = new Test2(); var t2:Test2 = new Test2(); } } private class Test2 { private var a:Array = new Array(); public function Test2() { a.push( a.length); trace(a); } } }
输出正常的结果
0
0
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}