快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号