Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3类下的计算_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 as3类下的计算

Actionscript 3 as3类下的计算,actionscript-3,flash,Actionscript 3,Flash,我绝对是as3的初学者;我真的很想了解as3是如何工作的。我写了一个简单的函数,它将乘以一个数字(请参阅下面的代码)。我想把9和5相乘,然后跟踪它,但它不相乘。有人能帮我吗 package { import flash.display.MovieClip; public class main extends MovieClip { var xyz:int=9; public function main() { // co

我绝对是as3的初学者;我真的很想了解as3是如何工作的。我写了一个简单的函数,它将乘以一个数字(请参阅下面的代码)。我想把9和5相乘,然后跟踪它,但它不相乘。有人能帮我吗

package  {
    import flash.display.MovieClip;
    public class main extends MovieClip {
        var xyz:int=9;

        public function main() {
            // constructor code
            mAth(xyz);
            trace(xyz);
        }
        protected function mAth(xyz:int):int{
            return(xyz*5);
        }
    }
}
您调用函数“mAth”,但不使用结果。试一试

trace(mAth(xyz));
查看函数调用的结果


将内部变量传递给函数是否有特定的原因?您可以访问xyz,而无需将值传递给数学函数。

总体而言,这是一个正确的答案,但这不是跟踪未显示预期结果的主要原因,而且由于用户希望了解给定的答案,因此没有为完全有效的操作提供原因

这里有一个更好的:

AS3中的基元对象是通过值传递的,而不是通过引用传递的。这些是数字和字符串。当您将变量xyz传递给函数时,您希望它像在其他语言中一样被修改,但由于只传递了它所表示的值,所以您的变量不会被修改,并保持在9。这是AS3的默认行为,无法重写。因此,您只需记住,AS3中的基本体对象在方法/函数中作为参数传递时,只按值传递,因此看不到它们的值发生变化

就你而言:

var xyz:int=9;
var result:int = mAth(xyz);
//xyz is still 9 since only its value is passed to the method
//result is 45 since it computes and return the value passed as parameter