我建議你在未來格式化你的代碼。另外,最好不要將代碼寫入一行,因爲它不會帶來額外的好處。您的代碼將被編譯爲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' –