I’m kidding really – there is no way you could find and replace your AS2 code into AS3
Actionscript 3 is hugely different from Actionscript 2, but that doesn’t meant that you can’t do a lot of the grunt work using a simple find and replace on these like for like items:
| Find this in AS2 code | Replace it with this AS3 syntax | Notes |
|---|---|---|
| undefined | null | undefined is dead, long live null |
| .attributes. | .@ | All XML attributes that are specified by attribute name |
| .attributes[ | .@[ | All XML attributes that are dynamically referenced |
| :XMLNode | :XML | keep the : in this replace so that any variables named somethingXMLNode don’t get changed |
| ._parent | .parent | Simple drop of the underscore from the property |
| “._x “ | “.x “ | I recommend including a space after this one so as not to mess up any vars starting with _x |
| “._y “ | “.y “ | I recommend including a space after this one so as not to mess up any vars starting with _y |
| ._x; | .x; | Where the property is the last item in a statement |
| ._y; | .y; | Where the property is the last item in a statement |
| ._width | .width | Simple drop of the underscore from the property |
| ._height | .width | Simple drop of the underscore from the property |
| ._xscale | .scaleX | Convert values – e.g. 100 is equivalent to 1 |
| ._yscale | .scaelY | Convert values – e.g. 100 is equivalent to 1 |
When you’re updating an old project with 100s of classes, this will make things a little bit easier. Of course, be careful with this – backup, and if unsure do a find all first to see what code is going to change.
Other things to think about – these are the things that I most commonly had to change
- What variables typed Number in AS2 can be changed to int or uint?
- Anything using ASBroadcaster now needs to dispatchEvent()
I had to sideline the AS2-AS3 project for now but there should be more tips when I get back to it.