当前位置:  开发笔记 > 编程语言 > 正文

Actionscript - 是否更好地投射或创建新变量?或者它是否重要?

如何解决《Actionscript-是否更好地投射或创建新变量?或者它是否重要?》经验,为你挑选了1个好方法。

我发现在我的日常Flex/Flash工作中,我做了很多这样的编号:

//Calling a function...
MyCustomObject(container.getChildAt(i)).mySpecialFunction();

问题是 - 这是最好的方法吗?我应该这样做:

//Calling a function
var tempItem:MyCustomObject = container.getChildAt(i) as MyCustomObject;
tempItem.mySpecialFunction();

这可能是偶然的,但我只是想知道是否有"接受"的方式或首选方式来做到这一点.第二个选项似乎更具可读性,但我想知道创建一个新变量是否需要更多的性能影响.或者这一切都取决于风格和偏好?



1> aaaidan..:

重要的是要记住显式转换和使用as关键字之间存在差异.转换失败时会抛出错误,而as关键字则不会(它只返回null).

// a casting error
try {
    var number:int = 666;
    var urlreq:URLRequest = URLRequest( number );
} catch(e:TypeError) {
    // TypeError: Error #1034: Type Coercion failed: cannot 
    //            convert 666 to flash.net.URLRequest.
    trace(e); 
}

尽管as关键字默默地失败:

var number:int = 666;
var urlreq:URLRequest = number as URLRequest;
trace(urlreq); // prints null to the debug pane

就个人而言,在决定使用方法时,我会记住这些行为.一般来说,我建议明确地进行投射,因为你会确切地知道投射失败的方式/时间.但是,通常,您可能希望无声地失败并继续.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有