mtasc一个月使用经验小结
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
对mtasc的测试: 2.1对v2component 不支持. 2.2对跨了两个文件夹域的类好像得不到~~~ 2.3对内部类的成员对象的测试情况一点也不好,看来这个还是只适用于测试之用。 2.4 不需要再针对嵌套函数使用thisP(private static var thisP:Object)指针了,但也支持的.好像只能在setInterval里使用. 可以直接访问到 class B { public function B() { var p:Number=1; _root.onEnterFrame=function():Void { p++; _root.txtA.text=p; } } } txt文本框里跳动着我们想要的累加的数字。 这其实并不合理,局部变量竟然可以访问,但权且这样凑合着用哈~~~ 2.5 txt1.text=clearInterval(thisP.ID); //这个被认为是error clearInterval(thisP.ID);//OK. 2.6尽管setInterval及_root.onEnterFrame把当前的作用域给改变了,但用thisP+privateMvalue依旧可以访问到类中的 私有类型成员. 2.7好像不太支持函数对象的样子的说.只支持传统的匿名函数. 3Interval是否可以删除自己?答,可以。 class SetInterTest { public var p:Number; static private var thisP:Object; private var ID:Number=0; public function main():Void { thisP=this; this.p=1; for(var i=0;i<11;i++) { _root.createTextField("txt"+i,i,0,(i-1)*25,500,25); } ID=setInterval(testF,1000); } public function testF():Void { thisP.p++; _root.txt3.text=thisP.p; if(thisP.p>10) clearInterval(thisP.ID); } } //最后的output停在了11处。 但是_root.onEnterFrame中用 delete _root.onEnterFrame就出错了,而Flash中是可以的. 2.8对于类内部成员对象,直接初始化无效。 如private var t:Number=1;//Wrong!!! 2.9 static private var thisP:Object; static private var Num:Number; 在setInterval中用thisP.Num将失效. 3内部类成员对象的使用:OK class Test { public function Test() { main(); } private function main():Void { var a=new Invoke(); a.main(); } } class Invoke { private var mP:P; public function main():Void { for(var i=0;i<11;i++) { _root.createTextField("txt"+i,i,0,(i-1)*25,500,25); } mP=new P(); mP.show(); } } class P { public function show():Void { _root.txt1.text="HelloWorld!"; } } //测试结果:成功! 4import 4.1 *号不支持. import Archive.*; Test.as:1: characters 0-6 : type error import .* is not currently supported 4.2保持包的完整性,做完全面向对象的开发: 不要麻烦了,经测试,把类定义在子路径(1级-2级)里都没问题, 因为我们使用的是 mtasc Test.as -swf subC.swf 让Test.as去找好了. 所以,用mtasc做dev的思考方式可以和Flash中保持一致了. flash swf CMain.as +---- myPackage +---- SubPackage1 myC1.as myC2.as SubPackage2 myC3.as myC4.as Flash中:#include "Script.as" Script.as中: ....//其它代码,如fscommad("allowscale",false); new CMain();//经测试,这种模式可行的. CMain中: import myPackage.SubPackage1.myC1; import myPackage.SubPackage2.myC3; ... class CMain { public function CMain() { main(); } private function main():Void { /*Your Real Code ,like var myIns:myC1=new myC1(); myIns.method(); |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 头发飘逸的制作下一篇: 两个FLASH间的控制(通信)
关于mtasc一个月使用经验小结的所有评论