PDA

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.