Mixing Strings and Numbers
When working with strings and numbers it's important to prevent Flash from automatically converting data so you'll not be automatically confused. To keep things simple it's best for you to manage your conversions on your own. Let's learn why and how.
We have seen how to add two strings together using Flash, after viewing the previous video. As programmers, we need to learn all the possible operations that take place in our domain (Flash.) So we have to be careful while dealing with numbers and strings together. There are occasions where we need to add a number to a string or vice versa, so now we'll learn all the possible ways to mix stings and numbers together.
As usual, this type of addition is performed using the '+' operator. We can type the string and then add a number to it, for example
trace('Flash' + 1);
This will make the compiler assume 'Flash' is a String and 1 is a Character. Addition is therefore performed: the output is the String "Flash1". The process is the same even if the values are interchanged: for instance, trace(1 + 'Flash'.) Here the output will be "1Flash" (also considered as a string.) We can add any number to a string without putting the number in double quotes.
There is a sneaky problem here! When we add a string and a number, the application assumes the number is a character and then adds (concatenates) it to the String. This might lead to problems when we don't really want the application to take the number as a character. It becomes more complicated when two numbers are added together and one of them is in double quotes: trace("20"+10.) Flash assumes both the numbers as strings and combines them instead of adding the two: here, you get "2010" as your string result.
Moreover, when part of the equation has several numbers and part of it has a string, then addition is performed for some parts and the string part is combined to that result. For example, if we take trace(1 + 1 + 3 +'2'), we expect the result as 7. But we now know the result is altered due to those double quotes: we expect the result to be the combination of all the numbers, 1+1+3 added to the string "2". Sure enough, Flash adds the first three numbers (not in double quotes) resulting in the sum equal to 5. Now, this integer is combined to the string "2'' which yields "52" as output (also considered as string.)
It's very difficult to understand whether the number is considered as integer or string. However, effort, concentration and practice will make any task easier. The good news is that a few exams added to all that will do the trick – plus perhaps an email or two to us if you get lost!