我建议你在未来格式化你的代码。另外,最好不要将代码写入一行,因为它不会带来额外的好处。您的代码将被编译为Flash Player将执行的对象代码。
无论如何,你的函数有一些错误。错误的第一个来源是你将返回值放在if/else块中。函数体本身不指定返回。这里是你的代码应该看起来如何:
public function get(_bulletT:String):String {
for (var i:int = 0; i < _bulletT.length; i++) {
if (_bulletT.charAt(i) == "star") {
return "star";
}
}
return "circle";
}
注意,如果条件满足,你只想返回“星号”。一旦你返回一个值,循环将会终止,函数将退出。另一种情况是,如果在循环中不满足条件,则函数应该返回圆。但是,这个功能没有意义。我相信你正在测试一个字符串是否包含单词“star”,对吗?如果是这样,那么你可以这样做:
public function get(_bulletT:String):String {
if (_bulletT.indexOf("star") != -1) {
return "star";
}
return "circle";
}
但是,我不认为这是你真正想要的。您可能要确定是否保留价值星。所以,如果是这样的话,那么你可以做:
public function get(_bulletT:String):String {
if (_bulletT == "star") {
return "star";
}
return "circle";
}
你正在使用类和创建类的getter/setter属性命名时功能得到,这是ActionScript中的保留字。无论如何,我希望这是有帮助的。
请尝试正确解释您要达到的目标,使用标签突出显示代码并正确格式化。我对这个错误的猜测是,如果_bulleT.length <= 0,那么你的返回语句可能无法访问。命名一个函数get(...)是一个不好的习惯,除非你想要它成为一个getter,在这种情况下,它应该是'get bulletType():String' –