我知道功能它用于节省重复任务的时间。我们可以将一个参数传递给函数来指定一个这样的值:
var myStar:Star;
function makeStar(myX:Number, myY:Number):void {
myStar = new Star();
myStar.x = myX;
myStar.y = myY;
addChild(myStar);
}
makeStar(50,50);
makeStar(150,150);
但是我的问题为什么我想用函数返回一个数字或字符串......这个用途的重要性是什么?
答案 0 :(得分:1)
让我问你一个问题:在你的示例代码中,你如何操纵你创建的第一颗星移动,例如,向右移动100像素?
答案是你不能(至少不是一个简单的方法)。您第二次拨打myStar
时会覆盖makeStar(..)
。
现在,如果makeStar(..)
返回Star
的实例而不是什么,会发生什么?
考虑以下示例:
var firstStar:Star;
var secondStar:Star;
function makeStar(_x:Number, _y:Number):Star
{
var s = new Star();
s.x = _x;
s.y = _y;
return s;
}
firstStar = makeStar(50, 150);
addChild(firstStar);
secondStar = makeStar(150, 150);
addChild(secondStar);
firstStar.x += 100;
secondStar.y += 100;
正如您所看到的,现在我们可以操纵两个星星,而不仅仅是您创建的最后一个星星。
回答你的问题:你通过函数返回值,这样你就可以继续使用这些值了。
答案 1 :(得分:0)
出于好奇,这种方法的缺点是什么?
var myStar:Star;
function makeStar(myX:Number, myY:Number, Name:String):void {
myStar = new Star();
myStar.x = myX;
myStar.y = myY;
myStar.name = Name;
addChild(myStar);
}
makeStar(50,50, "firstStar");
makeStar(150,150, "secondStar");
getChildByName("firstStar").x = 200;