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