AS3 Concatenate integers

Hello,

I'm trying to concatenate three different integers to make a string with the code below. However I'm getting the following error.

1067: Implicit coercion of a value of type Number to an unrelated type String.

Can anyone tell me how to do this?

Also I have very little knowledge of AS are the functions correct to produce; Random Number between 0-99 - Seconds since 01/01/1970 - Random Number between 0-99? for example...

If part 1 came back as 45, part two came back as 1234567890 and part 3 came back as 12 I would want the uniqueKey var to be 45123456789012 NOT 1234567947
var now:Date = new Date();
var uniqueKey:String = (Math.random()*99) + now.getTime() + (Math.random()*99);

Open in new window

LVL 3
Mr_SplashAsked:
Who is Participating?
 
Jones911Commented:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
	<mx:Script>
		<![CDATA[
			
			private function init():void{
				var now:Date = new Date();
				var uniqueKey:String = (Math.random()*99).toString() + "--" + now.getTime().toString()  + "--" +  (Math.random()*99).toString();
				textField.text = uniqueKey;
			}
		]]>
	</mx:Script>
	<mx:Text id="textField" x="95" y="253" />
	
</mx:Application>

Open in new window

0
 
DreammonkeyCommented:
try this...

PS: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Date.html 
var now:Date = new Date();
 
// use .toString() to avoid addition
var uniqueKey:String = (Math.round(Math.random()*99)).toString() +" - "+ (now.getTime()).toString() +" - "+ (Math.round(Math.random()*99)).toString();
 
//1) Generate random number : 
var rn:Number = Math.random()*99
 
trace("rn = "+rn);
 
var addition:Number = rn+rn;
var concat:String = rn.toString() + rn.toString();
 
trace("addition = "+addition);
trace("concat = "+concat);
 
// Should both trace the same
trace("rn.toString() = "+ rn.toString());
trace("rn =  "+ rn);
 
 
trace("Math.round(rn) = "+Math.round(rn));
 
trace("Math.floor(rn) = "+Math.floor(rn));
									  
trace("Math.ceil(rn) = "+Math.ceil(rn));
 
trace("uniqueKey = "+uniqueKey);

Open in new window

0
 
Mr_SplashAuthor Commented:
Thanks guys, I've split the points as both solutions were pretty much the same and were posted at the same time.

This is all that was needed in the end.
var uniqueKey:String = (Math.round(Math.random()*99)).toString() + "" +(now.getTime()).toString() + "" + (Math.round(Math.random()*99)).toString();

Please let me know if there is something incorrect with that.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.