3 ms·
> Actionscript 1 was a horrible thing you could only enter by selecting keywords from a dropdown menu my memory of those times is a bit fuzzy, but according to
by 5- 5y ago
> Actionscript 1 was a horrible thing you could only enter by selecting keywords from a dropdown menu
my memory of those times is a bit fuzzy, but according to https://en.wikipedia.org/wiki/ActionScript#Timeline_by_ActionScript_version https://en.wikipedia.org/wiki/ActionScript#Timeline_by_Actio...
what you describe was 'actions' prior to flash 5, which introduced actionscript1 which was a normal text-based scripting language.
edit: i just had to check (thanks -- i now got to enjoy flash 5 on my windows 2000 install). the 'object actions' editor in flash 5 has a 'normal/expert mode' toggle, where 'normal' (the default) is the menu-based interface as you describe and 'expert' is the normal text editor.
- kmeisthax 5y agoYou are correct. In fact, pre-AS1, Flash Actions were a dramatically different VM. If you wanted to store a property on an object you had to use slash paths. "../hero:gun/bullet" would go up one clip, look for something called hero, look for a gun on the hero, and then a bullet in the gun. Macromedia beat Actions into something that could vaguely-resemble an ECMA-262 3ed language runtime if you squinted hard enough. However, all of the old warts still remain, probably because otherwise you couldn't upgrade from Flash 4 and compile to newer SWF versions. Thus, Actions, ActionScript, and ActionScript 2.0 all compile to the same VM. The only difference in semantics come if you compile to a newer or older Flash Player version. AS3 is an entirely different VM that actually was designed to serve as the runtime for the 4th edition of ECMAScript, which never actually came out because web developers thought it was way too complicated. However, the only features that never actually made it into modern JS are namespaces, interfaces, and prototype-free classes. Everything else did eventually make it back into ES5 or ES6, albeit in dramatically different ways[0] sometimes. [0] For example, when you declare a `class` in modern JavaScript, you are actually invoking syntactic sugar (mostly) for declaring a constructor function, setting the prototype to an instance of the parent, and then populating methods on the prototype. This is also how AS2 did it, too. In ES4, they instead decided to completely junk prototypes in favor of Java-style inheritance. When you declare a class, you're creating an actual Class with a vtable and everything. It's instances actually get copies of their methods with `this` properly bound, which you can shove directly into `addEventListener` and `removeEventListener` and expect to work.
- egypturnash 5y agoMy memory is a bit fuzzy too, it’s been a while. I kludged up an entire game in Flash 4 with that dropdown. It was not at all pleasant. :)