有没有办法让闪存as3编译器需要静态类型?我有一个不这样做的坏习惯,它会很好地让它抛出编译器错误。在as3的发布设置中,我打开了“严格”,但这并没有改变任何东西。有没有办法让Flash强制静态打字?
2
A
回答
4
我有点困惑。这不会给你任何编译时间错误:
function enforceType(var_a:int, var_b:String) {
trace("passed");
}
enforceType(1, 'test');
enforceType(1, 1);
enforceType('test', 1);
它确实对我来说。
编辑
由于您编辑了您的问题,我将编辑我的答案。
AS3 IS静态类型IF您明确地键入您的变量。
例子:
var a:int = 0;
a = "TEST";
// a is typed as an int, therefor when you attempt to compile the above,
// you will get a compile time error
// 1067: Implicit coercion of a value of type String to an unrelated type int.
var a = 0;
a = "TEST";
// Here, a is not typed explicitly, so you can assign whatever type you want, and
// the compiler will not complain.
因此,简而言之,AS3是静态,如果你希望它是类型化。编译期间无法让编译器知道您实际需要分配哪种类型,因为它是静态类型。
想象一下,例如,您可以在Foo类中定义一个非类型化的静态变量条。
package
class Foo {
public static var bar;
}
}
现在,在你的程序中两个不同的地方,你访问美孚。这两个不同的接入点基于由于用户交互而触发的事件,如鼠标点击。在你的两个事件处理您具备以下条件:
// In one handler you have
Foo.bar = 1;
// and in another handler
Foo.bar = "test";
编译器就没有办法知道将首先运行,因为它们都是基于用户交互。所有的编译器都可以这样说:如果发生这种情况,它可以吗?在这种情况下,因为酒吧没有输入,所以没关系。
如果Foo类改为:
package
class Foo {
public static var bar:String;
}
}
编译器会知道,上面列出的第一个事件处理程序是不行的,因为门槛已经静态类型是一个字符串。
长话短说(和要学的教训):摆脱你的坏习惯并开始输入你的变量。你会很高兴你做到了。
1
我使用FlexBuilder编写我的动作脚本。在强类型违规时,您会看到警告。除了警告在范围内使用相同的变量名称,未使用的导入等等。这当然与标准的AS3错误结合在一起。
如果没有强大的IDE,我无法继续。
FlexBuilder的替代方法,其中FDT和FlashDevlop的帮助方式相同。虽然他们可能没有所有这些功能
相关问题
- 1. 有没有办法让@ModelAttribute动态?
- 2. 有没有办法让Calendar Extender限制?
- 3. 有没有办法*真的*强制pydev使用强制内建?
- 4. 有没有办法让Google Classroom API让学生静音?
- 5. 有没有办法强制NHibernate的最小字符串长度?
- 6. 有没有办法找出方法是静态的还是非静态的?
- 7. 有没有办法让[增强Tcl]类的朋友?
- 8. 有没有办法让Intellij能够强调Groovy错误?
- 9. 有没有办法让flash [:notice]出现在flash [:error]之上或之前?
- 10. 有没有办法让MsBuild运行代码合同的静态合同分析?
- 11. 有没有办法让PHP的子类继承属性(静态和实例)?
- 12. 有没有办法为静态类方法定义别名?
- 13. 有没有办法在Ruby中强制实现接口方法?
- 14. 有没有办法强制调用重写的方法?
- 15. Node/Express - 有没有办法从控制器方法访问静态文件?
- 16. 有没有什么办法可以使强制实现的派生类中实现静态方法?
- 17. 有没有办法强制一些方法的类没有指定参数?
- 18. 有没有办法强制在标签中打开“onclick”新窗口?
- 19. 有没有办法强制HTML在操作系统中打开mp3?
- 20. 有没有办法强制打印!/ println!使用Windows新行(CR LF)
- 21. 有没有办法强制所有的字符串在PHP中是UTF-8
- 22. 有没有办法让元素在GTM
- 23. 有没有办法让这项工作?
- 24. viewflow.io:有没有办法让'子流'?
- 25. 有没有办法让相机胶卷
- 26. 有没有办法让Browserify更快?
- 27. 有没有办法让Vis.js Network居中?
- 28. 有没有办法让@PersistenceContext更灵活?
- 29. 有没有办法让Boost.Assign一个ptr_vector?
- 30. 有没有办法让YQL返回HTML?
我认为你的意思是静态类型,而不是强类型。 AS3是强类型的,但静态类型不是必需的。 – Allan 2010-12-10 01:14:12