View Full Version : how do you return more than one value...
geestring
October 2nd, 2009, 03:54 PM
in a function
function randomness(){
var randX:Number = Math.random();
var randY:Number = Math.random();
var max1:Number = 650;
var max2:Number = 450;
var Xoutput:Number = Math.round(randX * max1);
var Youtput:Number = Math.round(randY * max2);
return Xoutput;
return Youtput;
}
only gives me one value.
regbolD
October 2nd, 2009, 04:03 PM
i think you can only return one value.
so call the function as many times as you need.
function randomness( z:int ):Number{
var output:Number = Math.round(Math.random() * z);
return output;
}
var a:Number = randomness(650);
var b:Number = randomness(450);
doublemazaa
October 2nd, 2009, 04:10 PM
You can only return one value, but it can be an array with multiple values.
function randomness():Array{
var randX:Number = Math.random();
var randY:Number = Math.random();
var max1:Number = 650;
var max2:Number = 450;
var Xoutput:Number = Math.round(randX * max1);
var Youtput:Number = Math.round(randY * max2);
return [Xoutput, Youtput];
}
Scythe
October 2nd, 2009, 05:20 PM
Or another object.
function randomness():Point{
var randX:Number = Math.random();
var randY:Number = Math.random();
var max1:Number = 650;
var max2:Number = 450;
var Xoutput:Number = Math.round(randX * max1);
var Youtput:Number = Math.round(randY * max2);
return new Point(Xoutput, Youtput);
}
IQAndreas
October 2nd, 2009, 05:33 PM
The Array works, or you can create a new object which you return.
function randomness():Object
{
var randX:Number = Math.random();
var randY:Number = Math.random();
var max1:Number = 650;
var max2:Number = 450;
var Xoutput:Number = Math.round(randX * max1);
var Youtput:Number = Math.round(randY * max2);
var returnObject:Object = new Object();
returnObject.x = Xoutput;
returnObject.y = Youtput;
return returnObject;
}
//Now, to access the values
var randNums:Object = randomness();
trace(randNums.x, randNums.y);
If you want to have code specifically with the values "x" and "y", the Point object does exactly so. :)
The Array works, or you can create a new object which you return.
function randomness():Point
{
//...
var returnObject:Point = new Point(Xoutput, Youtput);
return returnObject;
}
//Now, to access the values
var randNums:Point = randomness();
trace(randNums.x, randNums.y);
geestring
October 4th, 2009, 10:07 PM
thanks for all the great solutions.
Powered by vBulletin® Version 4.1.10 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.