Problems with left side eval in Flash MX
I am still seeing a lot of confusion over this issue, so i thought i would try to clarify. You can no longer use eval() on the left side of a statement. However, this only applies when publishing as a Flash 6 or greater SWF. This change was made in to be more consistent with ECMA-262.
Couple of points:
- As long as you are publishing as a Flash 5 movie, you can still use eval() on the left side, even if using Flash MX.
- The Flash 6 player will correctly play Flash 5 files with eval() on the left side of a statement.
- The only time this should be a problem, is if you have a Flash 5 movie with eval() on the left side, and try to publish it as a Flash 6 movie. You cannot do this.
Here are links to technotes that describe the issue:
As a general rule, you should use this["foo"]
instead of eval("foo")
, even when authoring for Flash 5.
Update [5/14/02] : The technote has been updated. You can read a summary of the changes in the post.