错误1170:函数未返回av值

时间:2013-01-20 15:02:13

标签: php actionscript-3

我是闪光灯的新手,我正在制作一款用鼠标控制的游戏。但是我收到了这个错误:

错误1170:函数未返回值。

我正在尝试编写一个getter来将bulletType返回到main.as

public function get(_bulletT:String):String
{ 
    for (var i = 0; i < _bulletT.length; i++) 
    {
        if (_bulletT.charAt(i) == "star")
        {
            return "star";
            "star";
        }
        else 
        {
            return "circle";
            "circle";
        }
    }

它要求什么价值?

2 个答案:

答案 0 :(得分:1)

我建议您以后格式化代码。此外,最好不要将代码写在一行中,因为它不会带来额外的好处。您的代码将被编译为Flash播放器将执行的目标代码。

无论如何,你的功能有些问题。第一个错误来源是您将返回值括在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”。返回值后,循环将终止,函数将退出。另一种情况是,如果循环中不满足条件,则函数应返回圆。但是,这个功能没有意义。我相信你正在测试一个字符串是否包含“star”这个词吧?如果是这种情况,那么你可以这样做:

        public function get(_bulletT:String):String {
            if (_bulletT.indexOf("star") != -1) {
                return "star";
            } 
            return "circle";
        }

然而,我不认为那是你真正想要的。您可能想确定 _bulletT 是否包含值星号。如果是这种情况,那么你可以这样做:

    public function get(_bulletT:String):String {
        if (_bulletT == "star") {
            return "star";
        } 
        return "circle";
    }

您正在命名函数 get ,这是在使用类并为类创建getter / setter属性时Actionscript中的保留字。无论如何,我希望这有用。

答案 1 :(得分:0)

在你的场景中,当_bulletT的长度为零时,该函数可能确实根本不返回任何内容 - 它根本不会进入for块,并且(根据你的代码)已提供)是唯一有return陈述的地方。

也许尝试在return阻止后添加另一个for语句?如果长度为零,或者在for之前抛出错误?