How can Adobe make learning ActionScript 3 easier?
As you may have noticed from some of my recent posts (here and here), I have been spending some time lately thinking about the ActionScript 2 to ActionScript 3 transition. I am working on some stuff to make this transition easier (especially for non-developers), but I wanted to make a quick post and get the community’s input.
How can we make the transition from ActionScript 2 to ActionScript 3 easier? I am specifically interested in input from anyone who does not consider themselves hardcore developers.
Post your input in the comments.






I had to show someone an AS2 application, then a rewrite as AS3 to show how the DisplayObject worked, and how I changed my listeners around, etc. … and then they got it. They were scared @ first, but once they saw specifics and how it related, they dove right in.
Perhaps simple, fairly typical and quick examples in AS2 migrated to AS3 and what had to change, and why.
eric dolecki
5 Jan 09 at 1:18 pm
I think the issue is the developer. If he/she is an AS2 developer and has no OO background they will be very hesitant to make the switch as they are entering a whole new way of programming. If they are someone who had OO experience but was handcuffed by AS2 in the past they are already using AS3.
Rich Tretola
5 Jan 09 at 1:19 pm
I know some AS2 folks who won’t go to AS3 because they don’t understand the Object-Oriented paradigm. Perhaps a crash course in OO would be good as it relates to ActionScript and using it with Flash or Flex.
Kyle Hayes
5 Jan 09 at 1:21 pm
I like to rename it to AwesomeScript. That usually fixes a lot of it.
Actually, I like to put ‘em in FlexBuilder, right away. Focus on MXML and events and then the new AS stuff just flows in after that.
chad udell
5 Jan 09 at 1:25 pm
I think that a great opportunity was to see Colin Moock in actions during AS3 tour, but for devs that work for the first time with AS3 could be very difficult how to work with AS3 in few time.
So a proposal could be create little classes and coordinate this event with Adobe offices of each country, to teach in a mini-course 20 (max 30) people for 3 days.
It could be very interesting to show also AIR and Flex ( a little bit ) but I think in 3 days you can show a lots of samples to switch from AS2 to AS3 and also start with a little approach of OOP.
I think in Italy, lots of devs could be very interesting about this event.
luca mezzalira
5 Jan 09 at 1:26 pm
I am a fairly hardcore developer but sub out work to many who are not.
Based on my experience many are too casual to ever jump on AS 3. So they keyframe my designs and I code.
That said, I would love to see a “one-trick-pony” implementation of ever member of the AS3 Class Library.
David J McClelland
5 Jan 09 at 1:27 pm
I wonder if it needs to be made easier. I found AS3 extremely easy to transition to and found the new features of the language wonderful. To leverage any of that there needs to be some understanding of the way it works: we’re trading off ease for power. I don’t see anything about the language that makes it any less “learnable” than its predecessors its just that there is, perhaps, more to learn.
There’s a quality of Flash development that is both awesome and messy at the same time: there are many ways to accomplish something. The main methods being: Purely IDE and timeline code, a mix of IDE timeline code and external code then finally completely external code using the IDE only for compiling.
I’d venture to guess that the majority of people having problems with the transition are heavy users of the IDE/timeline and aren’t quite getting the reasons behind the more rigid structure in AS3 and how it can fit in to their workflow (or how the timeline may translate into code and vice-versa). I guess that this isn’t really giving an idea of *how* to make things easier but perhaps *where* the difficulty may lie.
Paul Coyle
5 Jan 09 at 1:30 pm
I agre with eric dolecki…
I teach Flash to Foundation Degree Multimedia students in a college here in Old Blighty (UK) and i teach both AS2.0 and AS3.0.
I teach AS2.0 to my first years students (usually covered in 8-10 weeks out of a 30 week programme) then in the second year I cover AS3.0 (again 8-10 weeks) where i will revisit their old AS2.0 project and port it to AS3.0.
Second year doing this and its worked a charm.
This year I’m hoping to find time to add AIR development in Flash to the package. :-)
DOB
Derek O'Brien
5 Jan 09 at 1:33 pm
Perhaps send some cash to every author to encourage them to write more lucent books? Seriously, my following suggestion will actually go farther than you might suspect:
improve the Flash IDE and its AS panel. Seriously, it’s so sad. Realize that the folks I think you’re targeting really DO use Flash to program. How painful is that? Here are just a few “easy” gimme fixes for Adobe:
–get rid of the annoying blinking AS window in CS4!
–make code hints work!
–support introspection
–change the rules for “no import statement needed…sometimes but not always”… it’s so random.
I realize this isn’t EXACTLY what you asked–but I do think it’s a valid point that will help folks use AS.
I don’t know if I agree about OOP. AS3 doesn’t REQUIRE any OOP.
Perhaps you could centralize and consistent-ize some of the more popular libraries. It’s sort of a huge task, but if all those third party libraries had consistent interfaces via a .swc then maybe you wouldn’t so much have to teach AS3 but rather the “standard” way to use libraries. I know this is a big vague. But, for pros, learning how to integrate these outside libraries is a chore worth investing in (though, when there’s bugs all heck breaks loose).
Finally, maybe there’s a way to hide some of the sharp edges to the event model. On the one hand, it’s a thing of beauty. But then if you don’t remove listeners it can bite you. The Casa lib has an interesting approach: http://casalib.org/blog/
Finally, here’s a huge easy one: give us (everyone) a way to globally catch or hide all runtime exceptions. I love errors as much as anyone else, but when my “finished” project displays an exception that I failed to cover it’s just embarrassing. When I ship a project I need a switch to say “fail silently like AS2 did”. For me, this was a definite turn off to migrating to AS3. Thanks!
Phillip Kerman
5 Jan 09 at 1:35 pm
Mike, thanks for keeping up with this topic. I think that it is really important. There are a TON of developers (or design-developers) here in Atlanta who don’t care to learn it, but are fascinated by thinks like AS3 animation frameworks and PixelBender.
I think that one of the best ways that Adobe can get migration moving is to create something like a “AS2 to AS3 Migration in a Box” training package together for user groups to present. Make it a bunch of “How to” presentations and have conversion activities as Eric is suggesting above. User group managers could have someone present them at a series of UG meetings or in one really long meeting.
Leverage the community to help the community.
Leif Wells
5 Jan 09 at 1:36 pm
If you are looking at helping non-developers small examples may be a good solution. People look for small samples of code that will help them to do what they need. If you look at the AS3 docs some of the samples can be quite complex and intimidating to a person not comfortable with code.
An idea might be to start with really simple examples like a basic navigation – buttons that take you to different frames on the timeline. These might help lower the point of entry and once they get used to doing basic things they can extend and learn more.
I would disagree with Flex comments and say the last thing a true Flash designer needs is to be given Flex.
Niqui
5 Jan 09 at 1:45 pm
Examples examples examples.
Most people like to find something that works and then copy it. Tutorials are great for getting the idea across, but often its hard to see where to go from there.
Have you guys used the iphone sdk documentation? One of the best parts of their docs is that a lot of the class methods link to completed and functional applications where they can see the method in-situ.
It’s awfully hard to explain to an as2 guy why getURL needs to be replaced with 4 lines of code, but show them an example and they’ll start copying-and-pasting it until they get comfortable.
Daniel Too
5 Jan 09 at 1:51 pm
At my last job – SmileBox – I worked with some amazing designers who were just getting their feet wet with Actionscript. We had an incredibly experienced lead developer who was trying to teach the designers the principles of OOP/Actionscript. He used some example of making a clock, or something lame like that.
Then I went to each one of the designers and asked them to walk me through how bits of their code worked, or I’d help them write some code without using OOP.
So we had something that worked and they understood it. The had a mental map of what did what and why.
Then I said, “Lets redo this using OOP.” Then I’d walk them through the conversion step by step and they would invariably get it.
One of them even told me, “We spent hours on that stupid clock example and I didn’t get it at all. But this totally makes since.”
I believe that people learn by doing. So I’d take some fun code like Keith Peter’s ‘Making Thinks Move’ book which can all be done in AS2 without OOP and then convert it to AS2 with OOP. Then maybe convert that to AS3.
Basically I think it works like this: most of the time when learning something new we get dropped into some example and walk through it. If it’s a new topic – like learning OOP and/or AS3, we might ‘get it’ but we don’t really know where we are in the whole scheme of things. It’s like being dropped into the middle of downtown San Fran with a map. We can get around in the downtown area but we might not even realize we’re in California.
polyGeek
5 Jan 09 at 1:59 pm
My biggest issue with any form of AS has been that I only get to use Flash once or twice a year for a week or a day at a time – literally! Obviously that means I’ve never become ‘expert’ with Flash since I don’t use it much, but also because (it seems) every time I pick it up, there are new ‘best practices’, revised language, new deprications etc.
All of this is fairly easy to keep up with if you use Flash on a daily basis, but it really makes Flash unapproachable to occasional users like me.
OK not that I’ve been whiney for a moment, how will this help you make learning AS 3 easier? I guess the main thing for me would be if I could easily find clear examples of AS 2 vs AS 3 – I wouldn’t be silly enough to expect Flash 4 vs Flash 10 ;-). Flash Kit etc. are normallypretty worthless to me given that I find most of the examples I find don’t use best practices (hidden code anyone? Var1, Var2, Var3 etc).
If there *are* already good AS 2 vs AS 3 examples I am not aware of them, so a giant signpost that gets past my myopia would be ever so helpful :-)
Steve Howard
5 Jan 09 at 2:01 pm
User groups are a strong support here in Costa Rica, I agree Leif Well’s idea of creating a “Migration in a Box” package with hands-on and conversion activities as Eric suggested.
When you feel supported by a group, make questions and get them answered are on the tip of the finger, solutions come faster and the learning curve is distribuited between the members thru discussions.
Yëco
5 Jan 09 at 2:01 pm
As a designer/developer who develops in AS2 but wants to develop in AS3, I am exactly who you are trying to reach. I am not trained in OOP, but I understand the basic idea. I’ve been going through Lynda.com’s AS3 Essentials, and I don’t think you need to replicate that. But I could see a combination of the Design Center Video Workshop videos with the Develper Connection’s Cookbook approach being useful. Short, visual walk-throughs of things I might want to make (or convert from AS2) would be fantastic—not just blocks of code with a written description. But make these videos with thumbnails I can quickly scan through visually after I’ve done a search. And think topical like this volume slider video on YouTube (http://www.youtube.com/watch?v=b6FmgrhLp3s). It’s had 56,700+ hits!
One other thing—there appears to be a huge gap in training that targets designers. It generally ends at the basics, but more advanced training makes assumptions about the developer having additional coding background where correlations are made with other languages. I’m a senior designer who is also an intermediate developer. I’ve made a lot of procedurally-based projects with ActionScript, but no other scripting language. Hope that helps!
Myra Ferguson
5 Jan 09 at 2:04 pm
Going from AS2 to AS3 was definitely quite the jump for me. I had been working with AS2 since highschool and the main reason I think I got into it, was because it was so easy to pick up. Not to mention flash allowed you to keep some of those design dreams alive until you realised that you had no talent :)
What helped me grasp the concept was like people have mentioned, getting to know OOP. I’d like to add though, an OOP book with AS2 or basic AS3 examples.
I’m working as a Adobe RIA student rep and work with students who have absolutely zero coding experience. The school is teaching them AS2, but I’m teaching them AS3. The learning curve isn’t that much steeper with AS3 than it is with AS2. I usually take the code that their teacher has written in class and show them how much “easier” (sometimes they don’t think so) it is to write in AS3.
Code hinting, code colouring and ctrl click in Flex Builder is a huge help. I recommend that they use Flash Develop for Flash projects due to the lack of developing environment in flash.
Real world examples also help out a lot when explaining inheritance, encapsulation, etc.
The biggest thing I try to get through to them is that they do not need to reinvent the wheel, they just need to learn how to drive.
thenewkid
5 Jan 09 at 2:05 pm
Philip has some interesting points, from my perspective. I do think you are targeting people who use the Flash IDE to code – and therefore it requires some improvement.I am about to start teaching this winter semester – same as every other semester, and no matter how HARD I try to convince people, I am teaching AS2. Not even an AS3 primer.
Part of the reason – I suspect, is that when someone comes to Flash – they still get super motivated and inspired by creating that super cool effect – whether it be a nav, mouse trailer, whatever, simple or hard. Fact is, most of the reference for that kinda stuff is really outdated – but there is still more of it for AS2 than AS3. Cool effects in AS3 tended to showcase the new features.
But for peeps coming straight to Flash, results often are determined by the wow factor. And simply – if you look at the things people are asking me to learn how to do – the code/examples etc is out there but its mostly AS2. There is no stepping stone stuff in AS3, in my opinion, or at least there is a huge lack.
For peeps who are well versed in AS2 and not using AS3 I am sure there must be a variety of reasons – maybe its one of a git er done mentality – it needs to be done, now and they know they can get it done quickly in AS2. Learning AS3 does require a time investment – and more so if you are someone who is somewhat versed in AS2 – because its more than just migration that you need.
I really don’t think it has much to do with an OOP mindset as much as other detractors. You can still open the timeline, write a couple lines of code and be off to the races without knowing how to encapsulate or what polymorphism is. If anything, learning ActionScript 3.0 without prior knowledge – would probably make more sense to people because of its consistency if nothing else. OOP is one of those things for peeps who don’t have a programming background – there is a time and place when it clicks in for you – and its not always at the beginning. But I don’t think its a huge detractor – if you are taught from the beginning a certain structure, that structure becomes self evident.
I also don’t completely buy the argument that people are “too casual” to learn AS3. I am not sure why people would not want to learn it, when in doing so, you potentially add one or more things to your toolset with AIR and Flex. I can see why to a degree however, if its not broken, why fix it?
Eric’s approach is how I have convinced peeps to move over – that and showing performance improvements. But at one point I did a list of 10 common and basic things a developer had to do – and what the code looked like in as2 and as3. Being able to compare seemed to help most people.
Ideas – dependent on your target audience
- create more material aimed towards the lower end developer – man I miss the days of Layer51 or whatever that site was for my protos
- have migration workshops at the user groups
- get involved with the educational institutes and offer instruction there to both the students, and the teachers
- offer daycamps maybe along the same line
- start doing the above at conferences – run sessions that are more hands on and instruction based the day before, an hour at the end of each day, or hour at the beggining. Short, sweet and repetitive.
stacey
5 Jan 09 at 2:06 pm
AS3 has gotten to the point where it needs to be taught (and learned) as a serious OO programming language. I think it may be a mistake to think you can really make learning it that much easier. However, you might be able to make teaching it easier by providing focused support to those who are educating the next generation of flash devs.
The world is getting more complicated, and the Flash platform (and AS3) needs to keep up. Yes that makes it harder to learn, but it also makes it that much more rewarding once you get there!
Josh Kopel
5 Jan 09 at 2:19 pm
Teach them the skills to debug one’s code. So often I find is that people try to write something, it fails and they don’t know why. For the developer/designer trying to make that transition to AS3, this skill set is worth more than any design pattern.
Chris Griffith
5 Jan 09 at 2:23 pm
from an non developper perspective I’ve learned a lot from Colin Moock books (As1 > AS2 > AS3), so I think the question must be asked to Colin Moock.
He can do the job! Yes he can…
laurent
5 Jan 09 at 2:25 pm
Dammit — Firefox crashed after I had a lengthy response, so this is the quicky version.
1. its not only about people moving AS2 to AS3. I teach Flash for an EDU outreach program and we have a lot students new to programming. Most books seem to either provide super-simplistic examples or syntax reference or jump into OOP concepts. Programming can be scary for new learners and Flash attracts a LOT of people who have never programmed before. We need to teach them the “why”, not just the “how”.
2. I second every one of Phillips comments about the AS editor in Flash. It blows. This is the first view into ActionScript for many students and giving them a sucky editor is a sure way for them not to want to do it after they leave class. Flash NEEDS an editor that can do auto import classes, and class introspection. It would help TONS when it comes to students writing their first document class and when the timeline didn’t require an import statement for MouseEvent but the document class now does. Of course, I can show them FlexBuilder but that is a bad hack solution as well because it is not integrated together. Lee’s new Eclipse plugins are a step in the right direction.
3. Better error descriptions and maybe a smarter compiler. I had a student a few weeks ago who managed to delete the class definition line from her document class while we were in class doing examples. The error provided was “1013: The private attribute may be used only on class property definitions.
John
5 Jan 09 at 2:28 pm
Adobe needs to make sure that the AS3 MovieClip implementation works just as AS2 users expect. :)
Many AS2 designer-developers use frames of MovieClips and lots of timeline logic to change application state. However, there are still lots of bugs and non-obvious behaviors when using this kind of workflow.
Phillip’s suggestion for ’silent failure’ option is also very helpful. Exception dialog boxes confuse and annoy users. :(
Another possibility: Why not allow “onClipEvent” style code blocks in AS3? Many developers would write this off as a step backwards, but designers migrating from AS2 can find the event model confusing. There’s no reason why the AS3 compiler can’t be smart enough to automagically generate the appropriate event listener code from on( mouseOver ). After all, Flash generates a lot of magic code just to make MovieClips work, I’m sure it could handle managing some events behind the scenes.
Mike Welsh
5 Jan 09 at 2:33 pm
Mike, it’s normal, learning (all bugs too ;)) takes some time, if Adobe wants help, please don’t release an additional million classes or AS4 in 2009 ;) … just give people some time to get to used to AS3 (as they got to used to AS2) + show useful things which can’t be done using AS2 … an additional problem for many designers(pseudo developers) is, that you can’t stick code everywhere using AS3 (in Flash CS4) – designers don’t want to have clean and efficient code, they don’t think about OOP, they want to develop “jumping/flying” effects in easiest way … Adobe should offer a better development IDE in CS4 for them, now even advanced users are frustrated seeing errors during compilation which have no sense, which couldn’t be localized, etc…
Pawel
5 Jan 09 at 2:39 pm
Show people the API – half the questions on the forums could be answered by looking up a method or function signature in the docs.
Explain the idea behind grouping all the display objects and building everything through the new operator – it makes a ton of sense when you understand it but most AS2 devs get furious that attachMovie is gone.
Explain the event model – the example for addEventListener in the livedocs is purely theoretical. It gets the point across if you understand custom events and dispatching but 99% of new users want to make a button and are left in the cold.
Explain the reason for using OOP – every day someone on the forums posts “how can I call a function in the parent” – there is a huge segment that is trying to use classes just because that’s what everyone else is doing.
Rob
5 Jan 09 at 2:43 pm
Also – FIX LIVEDOCS!!!!
There’s no reason a text-only page should take so ridiculously long to load!
Rob
5 Jan 09 at 2:47 pm
An interesting way to transition from AS2 to AS3 might be to start off by disabling Strict Mode in the compiler settings. This makes it possible to mess with prototypes and all that fun stuff again, and a bit more of AS1/AS2-style coding is possible. Use it to learn some of the required changes (events and the display list being the most obvious), and then once you get comfortable, try making things strict again and focus on the next level of changes.
Josh Tynjala
5 Jan 09 at 2:50 pm
quoting Daniel Too
“Have you guys used the iphone sdk documentation? One of the best parts of their docs is that a lot of the class methods link to completed and functional applications where they can see the method in-situ.”
Years ago I did some InstallShield programming (1998!!!) and their docs were similar. I found it really easy to get up and unning and *understanding* because of this method of documentation.
Speaking of documentation … I don’t know what Adobe was thinking with the new Help, but it seems to have been carefully designed to make it impossible to find anything….
Steve Howard
5 Jan 09 at 2:50 pm
Something happened to the rest of my post..
4. Garage collection. With all that added power of AS3, came the added responsibility of managing memory. Fine for developers, but difficult for AS2 converts and new users. In AS2, a typical thing for a student to do was add a FLVplayback component on the frame they wanted to use it and delete it on other frames. Now if I want to teach this simple example, I have to get into a discussion on garbage collection (although a short one) because in AS3, if you delete a FLVplayback component, the audio from the FLV still plays. Another issue is the reason for certain defaults in AS3. Example – why is weak references not “true” by default? Maybe there needs to be a checkbox in Flash CS4 (on by default) where Flash uses a super aggressive garbage collection technique that emulates AS2.
Run time errors – failing silently is not always a bad thing. AS3 represents a lot of extra work compared to AS2 for the new learner. Being able to turn off run-time error checking when publishing would be huge for new students. And… I wouldn’t mind it sometimes too. :)
John
5 Jan 09 at 2:54 pm
I think the biggest hurdle people have is them saying they can’t do it or it’s too hard before they even look at it. You can write really bad AS3 code to learn it just like you could write really bad AS1 and AS2 code so you could understand things. As phillip kerman said you don’t have to do oop to write as3. I have seen some really bad code where all the code for a site is in one huge document class. That’s not ideal at all, but it’s at least a starting point.
A good editor helps very much as well because of code hinting, code completion, finding errors before you compile. Flex is great for that kind of thing but eclipse is a different monster. Really I don’t understand why adobe hasn’t made the flash ide a better code editor. I probably still wouldn’t code in it, but i am sure most new people start in there especially since flash is the default .as editor. I started in there when i was learning flash mostly because it was the only option.
I would say at the end of the day it really comes down to the person. I think first they have to want to learn it. I have tried teaching people that really have no desire to learn so as soon as it is hard they quit and talk about how stupid as3. Once they have a desire they just have to be willing to put up with it being difficult and new to start with.
jacob
5 Jan 09 at 3:01 pm
@Steve Howard
True, additionally search in CS4 Help doesn’t work as it should work, especially if you got to used to CS3 Help … this should be fixed.
Pawel
5 Jan 09 at 3:01 pm
I am a designer/animator by training and have picked up AS over the years starting with AS1. I now consider myself hardcore even in AS3.
I started a blog about a year ago to show some AS3 code and translations from a “designers” point of view, lets face it, we think a lot differently than programmers. When I showed some posts to a fellow designer he said he was now able to understand it because of all the programming he had done recently. It was a big blow, I didn’t realize I had overshot my intended audience.
I went back to the drawing board and remembered the very first bit of code I had ever learned. It happened a lot like in Eric Dolecki’s comment. It was one-on-one and it was a simple application. I really didn’t understand all of it, but it gave me a a real world foundation to go back and look at the next time I had to program something.
Learning AS3 really was difficult and time consuming at first, but after a few apps I started getting it down. AS3 is great and has pushed me to be a much better programmer.
*Tour-de-Flex is a great for Flex development and learning how to use Flex components. I think a Tour-de-Flash or Tour-de-AS3 would really help. Showing really simple uses of fundamental elements of programming and **best practices. Arrays, loops, events, event-Listeners, conditionals. It was sites/blogs that showed real-world code that helped me learn AS3 and with much trial and error. A lot of errors.
Many designer/developers fall into two groups: Copy, Paste & tweak or Over-Coders. Most really do not know how to program, they copy and paste code and tweak everything until it works or over code and hardcode everything based on what worked for them last time. I had a few bad practices that made my transition to AS3 difficult. So you have to be careful about dumbing things down too much, I think teaching good foundations and making those foundations visually accessible is key.
*Full Disclosure: I helped develop Tour-de-Flex, but it really is a good idea.
**Bad practices are half the problem.
Todd Williams
5 Jan 09 at 3:03 pm
Rebuild AS3 into Java.
Oh, and rebuild FlexBuilder and Flash CS3/4 to have a lot better code completion! I learned more about AS3 in FlashDevelop than I ever did or could in the Adobe products. Code completion, live ASDoc display… the list goes on, but they’re all essential to learning a language.
TK
5 Jan 09 at 3:05 pm
Primarily, you need better error messages that match the IDE’s own descriptive language in Flash, when using loosely typed syntax on the timeline. Often the error messages are hard to understand (even if you are very familiar with both the IDE and the language). The error messages make more sense in the class files (and you actually get more messages too – another problem for timeline based as3 “learners”).
Also, make the Flash IDE match the language again – some features just aren’t exposed any more – the IDE and the language features used to match up better (for example, why are there only three symbol types – the symbol-type dropdown should contain DisplayList, Sprite, SimpleButton, MovieClip, etc – what is a “Graphic” symbol anyway, and why can’t I give it a name?).
The problem with learning AS3 for me was in the tool – Flash IDE just doesn’t match the language as well as it used to, and the error messages it generates are extremely cryptic at times – FireFox with Firebug yields better error message from Javascript as an example – I don’t see why we can get similar style error messages from timeline scripts.
Also, you don’t get line numbers on most errors unless you use the debugger – and that’s just wrong, and took forever to figure out that you could get line numbers from that (in fact, I didn’t figure it out until I got into using FlashDevelop – I should not need a third party tool to figure out Adobe’s scripting language).
This may be a bit off topic, but there are other annoying mismatches too – like why can’t I specify which fonts to embed in the library and also subset them, instead of having to create a set of text fields, and then have them each embed the subsetted fonts, and then set the embed tag on other text fields to true in as3 (where’s the button that let’s me specify the use embedded fonts flag to true, but doesn’t cause Flash to embed the font – you can do it in AS3, but not the IDE) – and why do I have to set htmlText with “” or “” tags to access some fonts (grrr) – with no indication at all from the IDE about why that might be.
I love AS3, but your (traditional) tools need work.
Kevin Newman
5 Jan 09 at 3:08 pm
Kevin is right on — the Flash IDE is still stuck in AS2-land, and lots of the AS3 workflow was shoehorned in. It needs to be rebuilt from an AS3 paradigm to really help people transition.
Mike Welsh
5 Jan 09 at 3:22 pm
I have been teaching ActionScript to designers, illustrators and artists for 10+ years, i have witnessed the drop-off first hand. I am a member of Adobe’s learning advisory group, and i myself am growing weary of what we perceive to be Adobe’s resistance to change on subjects similar to this.
1. Return less results when a user looks for help, return the right results (precision is not accuracy). When a flash users searches for a word that happens to be a valid method/function/property, they should not see a listing of 100+ help/reference pages, they should see the top 3 most logical reference pages.
2. Build context sensitive help into the application itself, not just by action or outcome but tool by tool. Go back and look at how the Illustrator team integrated knowhow into CS3. Tutorials and help per tool. Teaching Illustrator was remarkably simple with this… it was like autopilot for learning.
3. Invest time and money building more example files. Some developers can create excellent ActionScript example files, other developers can make great projects but the files themselves don’t help others learn. The ActionScript reference pages should have 3 times the amount of code examples that they currently have. Installing flash should install a sample directory of source files that each feature tiny parts of more complex concepts.
4. Make it pleasurable to actually write ActionScript within flash? I cant believe that with everything else that Adobe has accomplished in the last two decades, they cant make a wonderful text editor. TextMate (once set up) completely trumps the user experience of writing ActionScript in flash. The snippet implementation in flash is sluggish and powerless, implement snippets in a similar fashion as TextMate, hook them into the Flash UI and Adobe could enable beginner script kids to create all their basic event code using code snippets. You could even build out a set of cute UI buttons to trigger them.
Matthew Richmond
5 Jan 09 at 3:28 pm
I agree with both Rich and Philip. I know that the OOP part is what scares people away, but if done right, an intro to OOP can be very straight-forward and get people over the fear of it. (As for Philip’s comment on OOP not being required – that’s true, but I think that people read and hear enough about AS3 being OO that it will scare them away, required or not, so it’s important to get them over that fear.)
Back to agreeing with Philip … seriously, the AS panel in Flash doesn’t need to be improved – it needs to be thrown out with last year’s garbage and replaced by something that might make people think that the Flash IDE was actually a place where you could code if you wanted to. I won’t rehash all of Philip’s points for improvement, but they all need to be implemented. Yesterday.
Rob Huddleston
5 Jan 09 at 3:31 pm
In my experience, people who’ve given AS3 a try and have reverted back to AS2 is b/c of error handling. Advanced developers obviously prefer to have things buttoned-down and strict, but for that middle-tier of intermediate ActionScript noodlers the fact that movies flat out refuse to function or compile is enough to send them screaming back to AS2. They don’t have any way of knowing how extensive the error is, and the error codes / cryptic messages in the Output panel don’t help. So they give up and run back to something that’s a bit more lenient and accepting for (what are commonly) simple things they’re trying to accomplish.
Todd Dominey
5 Jan 09 at 3:35 pm
As already mentioned I would also recommend to give the “new” developers an easy and clear to understand introduction in OOP. Some examples, tutorials, animations, sources and so on.
Perhaps in comparison with java or javascript… so they could see that it’s not only an advantage for actionscript.
Bastian
5 Jan 09 at 3:39 pm
I’m an educator in a high school. I’ve taught English and computers for the last 10 years. I became interested in Flash because it wasn’t conventional programming. You could develop most of the project visually and then added simple code to make it work. AS2 was limited code. Clearly, a demand was out there to make AS2 more powerful by making it like other programming languages. The cost is this: the learning curve has increased, few educators have the time to take the time to learn it. I have started to design exclusively in AS3, but it hasn’t felt easier yet (I’m believing it is coming as I persist). I find that I still have to develop many things in AS2 at the same time since many computers in our school and used my students run old versions of Flash Player. My guess is that much of the backlash is many casual users of Flash and AS2 (educators included) find themselves overwhelmed by a much more robust programming language. This is only appealing to the true enthusiasts and developers.
Mike
5 Jan 09 at 3:41 pm
Forgot to mention – in addition to cleaning up the IDE, adding and encouraging even, some dynamic language techniques, would be nice. It’s great to be able to get in and really type everything, and lock it all down, but it’s often quicker to get up and running using object literals, and other very basic freeform data types. It would be great to get some newer features that help transition from that loose typed model to a more strictly typed model, without being required to set up packages, and class files, and properly instantiate everything all over the place. Some structural typing would be nice, or an easier to way to cast an object literal to a specific data type, which can be done more easily after a large data structure has been defined. For example, if I have an array literal with a bunch of object literals in it, I should be able to switch that array to a typed vector and have the object literals cast to the type of the vector, and even have it’s properties checked at compile time.
All of that is to say, make the language hackable again (understandable error messages are really the key there as mentioned above). AS3 really feels like it has become much more like Java or C# than Javascript – and many of us come from the realm of Javascript, and honestly like it that way. It would be easier to pick up AS3 from that angle, if some of the tutorials, and whatnot actually talked in the terms of a dynamic language (and in Javascript specifically).
Some runtime optimizations would be nice too – some of that tamarin tracing magic to just type that stuff for us at runtime, so we don’t have to worry as much about all this typing stuff. ;-)
Kevin Newman
5 Jan 09 at 3:44 pm
I think polyGeek hit it on the nose here:
“Basically I think it works like this: most of the time when learning something new we get dropped into some example and walk through it. If it’s a new topic – like learning OOP and/or AS3, we might ‘get it’ but we don’t really know where we are in the whole scheme of things. It’s like being dropped into the middle of downtown San Fran with a map. We can get around in the downtown area but we might not even realize we’re in California.”
dzedward
5 Jan 09 at 3:48 pm
hi
i think that one mayor obstacle it´s that many of the examples, even the most basic ones, have to use to some degree OOP.
Im happy were AS3 is, as a developer it´s great, but i know the real power it´s in the flash designers that make up 80% of the sites, that help propagate the new players.
If they leave because of the new flash orientation to hardcore developers, we will have great software but not many people using it.
esko
5 Jan 09 at 4:04 pm
because I’m from Germany the point here is, that almost everyone, even our teachers and profs, think that flash is still just an animation platform.
we learned oop on practicing java – is there any chance to get some adjusted slides for students that show how you can get familiar with oop on using actionscript? probably the teachers could fit them to their needs because we already have at least flash cs3 installed at our workstations.
what about the US? is there anyone already teaching oop by actionscript?
Bastian
5 Jan 09 at 4:04 pm
don’t make every example a class. plenty of as3 can be used in/as frame actions, which looks and feels a lot more like as2.
moagrius
5 Jan 09 at 4:05 pm
I don’t think it matters whether or not you’re a hardcore programmer — if you are coming from an environment that is completely different than Flash, the language is the EASIEST part to learn. Learning about the Flash API is what’s hard, starting with nested DisplayObjects.
I think that what a beginner needs is a special “trainer” version of Flex Builder, that is totally naked except for the things that the user CAN change without breaking something so complex that only an advanced programmer can ever recover.
I tried to learn Java in 2001 so I installed Sun ONE. I was an expert programmer at that time, but I couldn’t figure out any of the surroundings in the IDE. It was definitely NOT the language that stumped me; it was just too hard to figure out what to CLICK on in the IDE. So to this day I’m not a Java programmer.
General advice: Make it very easy for the first-time user to understand their surroundings.
Flash Professional is awesome because people can create things with it immediately, and then slowly learn how those things relate to ActionScript. You don’t have to understand everything before you can do anything. Although I’m worried that as more features get added, the more it will look like my first (and only) Java experience. Just keep the tools simple until the user willingly invites the complexity in.
Harry Garland
5 Jan 09 at 4:11 pm
I think that it needs to be easier to move back and forth between Flex and AS. I totally agree that FlexBuilder is the environment one must be in to ‘get’ AS3. So perhaps combining FlexBuilder and Flash in some future product release.
In any case, as a designer / developer who grew with Flash from AS1 > AS2 > OOP > AS3, I would say one of the strengths of Actionscript in the past was that it was forgiving of coding errors. Now, with strong typing and other hard-ish developer affordances, the code is better but more difficult to grok to the novice. Plus it just takes longer to write. There is more setup time, but the power is much greater.
How do you do both? I’m not sure you can. AS3 may have to keep some of the flexibility that Flash has been known for and stay away from being a ‘pure’ coding language. The farther you go down the path of typing and casting, the more a designer’s eyes glaze over. That’s my sense of it, anyway.
Conversely, I think a designer quickly can appreciate things like the code hinting in Flex. Just because it’s a power feature from a developer environment doesn’t mean that a designer / beginning developer can’t use and appreciate it. It’s very natural to get code hints, almost like a word processor. This sort of feature will be the kind of GUI improvement that will help a beginner better understand AS3.
Ben Honda Rottler
5 Jan 09 at 4:54 pm
Firstly teaching people core OOP concepts. Personally I found this a huge challenge back in the AS 2.0 days, but its a major step forward.
Secondly supply a ‘good’ code editor when people buy Flash. Most starters are going to buy the Flash IDE (people going straight to FB are probably coders anyway and will pick up AS 3.0 syntax pretty quick), and the code editor supplied with the Flash IDE really doesn’t ‘help’ someone learn, write, manage and maintain ActionScript.
I think giving FB away with Flash IDE, recommending coding in FB, with extensive tutorials on how to code in FB but compile in Flash would really help newbies.
Also the ability to create a ‘Flash’ project in FB, that includes an FLA, and having FB able to access the classes inside the FLA when coding. When compiling FB, could then switch to Flash to compile, on projects marked with the ‘Flash’ nature.
Could be a crazy idea ;)
Tink
5 Jan 09 at 5:46 pm
The biggest hurdle for me was the display list. I’ve been using Flash for 10 years and AS3 threw me for a bit of a loop even having a total understanding of OOP and AS1/2. It’s just that you get to loading a certain way or parsing XML a certain way etc and then all of sudden it’s all different you know?
Benjamin Mace
5 Jan 09 at 6:48 pm
[...] this is an impediment to users learning AS3, as it seems to pop up as a topic on blogs a lot. Case in point (read the comments on Mike Chamber’s [...]
2008 In Review - Flash Platform Shortcomings | Visualrinse | Design and Development by Chad Udell
5 Jan 09 at 8:46 pm
Hi
wish if this below links details gives you some idea.
http://jasmeetsingh.wordpress.com/2008/10/30/is-as3-is-better/
regards
Jassy
Jasmeet Singh
5 Jan 09 at 11:38 pm
Is AS3 is better?…
Hi all well I am not very sure about this for now as I have a year experience with AS3, however would like sketch some points over it pros and cons as per my observation.
Number of lines code is much more then the existing coding for some basic featur…
Techy
5 Jan 09 at 11:40 pm
The thing that helped me most is to get over AS2 and versions before was to pretend it never existed. The resulting clearing of mind helped with acceptance of the different but much cleaner concepts behind AS3.
It’s the Stockholm syndrom: AS1/2 and it’s hackish tie-in to the IDE and Library was so painful that I learned to love the ‘captors’ and couldn’t let go, even when shown a clearly superior language and framework. Licensed therapists are standing by.
German Bauer
6 Jan 09 at 12:43 am
AS3 is not hard for programmers. In fact, it’s not powerful enough for many.
But that’s not the point now is it.
The crux of the problem is this: how does Adobe maintain its base of designers/artists?
I’m talking about the people who – with light scripting – have done wonderful works of art using the flash platform.
Adobe risks isolation of these people who don’t want to be hardcore devs – nor should they be.
The solution? How about something like “ASLite”? A subset of AS3 with simplified syntax and just enough functionality to be dangerous.
ash
6 Jan 09 at 12:45 am
Drop AS3 support from Flash IDE. Seriously, those two do no mix, they come from completely different worlds and they need completely different mindset. You just create confusion and alienate users by offering too much. Flash IDE with its movie clips and frame based code makes perfect sense with AS1, leave it there, most people do not need the power of AS3 anyway, they simply want button to be clickable and for that purpose AS3 is pointless. People who dream to be programmers will use Flex anyway.
tonypa
6 Jan 09 at 3:35 am
The number one way you can make AS3 easier to learn is making it easier to use. Add some wrapper classes for some of the more complicated native classes so non-coders can use a simplified API, and hard-core developers can get into the nitty gritty.
Many people have told me the Gaia Framework made the transition between AS2 and AS3 much easier. One of the biggest reasons is because Gaia provides simple and smart APIs to some of the more complicated native classes, and also smoothly introduces the concept of classes and OOP to those unfamiliar.
Because a lot of the code is written for them, they aren’t so overwhelmed figuring out how to write all that extra code while learning all the new gotchas in AS3.
Based on what I’ve seen, the stage null pointer exception is probably the most common mistake made by people learning AS3, regardless of skill, and the error has absolutely no information about what’s gone wrong. Fix this (or make the error more clear) andy you will make serious headway. Remember that a lot of designers do not use the debugger, and just use liberal tracing. If they don’t know where to trace, they’ll have a very hard time tracking down that stage null pointer since it worked fine in AS2, they don’t even think that’s the issue.
Steven Sacks
6 Jan 09 at 4:02 am
Making the ActionScript oriented Flex/Flash community stronger and active. I have seen that the more user visits a community, the more he/she learns and matures. He seldom finds direct links to an appropriate example or an article until he discuss the topic with the group and got some nice suggestions.
Making communities stronger with active and inspiring leaders we can write a new page of success.
Anand Vardhan
6 Jan 09 at 4:12 am
I got halfway through the comments before skipping down here to post, so I apologize if I am repeating someone.
Here are a couple of my ideas for making the AS3 transition easier. For some background, I am moderately strong AS2 devigner, with no formal OOP training. I work 100% procedural when I work in AS2, and am trying to work mostly OOP in AS3, but I am teaching it to myself, so I still have a lot of procedural stuff in my programs.
1. Behaviors in Flash. The basic user does not want to have to learn the event model, and a bunch of lines of code to make a simple website (simple = click a button to change scenes, or frames). So, why not automatically write the code for them? Once the code is there, the user can look at it, if it is well commented, learn from it, and then begin to do it themselves.
2. An AS panel in Flash that WORKS LIKE FLEX. That means, proper code hinting, even for custom classes that are imported. That also means setting down a strict rule about importing – either way (no import necessary, or always import regardless). (Honestly, I don’t understand why Flex is 1. not a part of the Creative Suite and 2. exists and isn’t integrated into Flash but that is a topic for another rant)
I also agree that a “Transition in a Box” class/seminar series would be a very good thing.
Ross
6 Jan 09 at 6:23 am
Why this question now? The right time for this question went past while you were busy architecting AS3. I think everyone on the board at the time was very excited about taking AS mainstream, but they forgot about the Flashers who in the first place made the AS this big.
So should Adobe say sorry to the designers?
Jokes apart, create some wizards in Flash to do some regular stuffs like attaching button behaviour etc.
Also create some videos of how to create simple workable solutions in AS3. I think in this regard Lee Brimelow is doing great in his The Flash blog, but one man is not enough.If plenty of examples and tutorials can be made available, that’s better.
Caution: Do not ignore the beginners who may be interested to take the jump into the coding world for the first time. These people are very important to AS as they may not return for the third time after failing twice.
ashwinee
6 Jan 09 at 6:55 am
i think id really love to see as3, and flex REALLY take on Coldfusion like ease. all or most of the things we do in cf could be in flex/as3 as tags, just like we use them in cf… i picked up cf in no time, and have been reading/looking at using javascript for many many years, and to this day, AS3 and flex’s mxml are still a bit cumbersome. if the two could merge somehow with cf-like ease, i think you’d hit a LARGER developer base.
tony weeg
6 Jan 09 at 7:23 am
I think by providing reworld exapamles that help developers accomplish tasks they encounter daily. From building navagations to web banners and other things. But starting out small the best I have seem besides Lee Brimelows blog is http://flashgameu.com from Gary Rosenzweig.
He starts by teaching basic concepts in video format which is great. If Adobe had something similar with more focus over several lessons it would be great. Another good example is http://css-tricks.com/video-screencasts. These are not for flash development but they are done very well. You can subscribe to both of these via iTunes and sync on you iPhone which is a huge benefit in my mind also.
Cheers! Glad to see you guys looking for more ideas to reach the community.
corbanb
6 Jan 09 at 7:43 am
One more comment – “instance names” are screwing new users. Not once is it spelled out that setting an instance name in the IDE creates a variable – every single new user has to be told that just assigning .name to a new object won’t generate the corresponding variable pointer, which later leads to dependence on getChilByName().
Rob
6 Jan 09 at 8:31 am
i m with tink. release fb with flash & provide a way to use fb for fla files without having to create a project (‘create new project’ is a sentence that used to scare me).
eme
6 Jan 09 at 10:34 am
Actually AS3 is easier to apply than AS2, just think about event handling. However, it does not reach the audience. Create a help file with a few simple examples in AS2 and then the same in AS3 to show the difference.
Here is one example: In AS2 loading a movie or image and then changing anything in the movie required to apply a separate EventDispatcher. However, in AS3 all one needs is a line of code and then the listener function where the changes are made.
I disagree with tonypa to get rid of AS3 from Flash. I prefer Flash much more than for example Flex, although I occasionally develop something in Flex. The reason is that sooner or later all movies will be developed using AS3, since the adding on an AS3 feature to a movie at a later time will then be difficult and employers are already asking for AS3 capabilities.
This separate help file should be for beginners and should not contain all the properties and methods, which are possible for a certain object. It should show for example how to create a button and add AS or how to make changes in MovieClips located inside another MovieClip or how to communicate with the timeline. In fact the former help files in Flash 8 or earlier versions were better in this connection. The examples in the language references are too complex and for advanced users. However, they are the only place to send anybody to learn a certain topic.
Joachim Schnier
6 Jan 09 at 11:57 am
@Ross The Flex editor is only marginally better than the Flash IDE’s Actions panel. The only good editor out there for Actionscript is FlashDevelop, which is based on what is lauded as the best Code Editor ever made for any language, Visual Studio.
Flex code hinting can’t ever be good, though, because it’s Eclipse-based and Eclipse has limitations for code hinting. FDT suffers the same problem.
Steven Sacks
6 Jan 09 at 12:25 pm
I’ll add my vote to improving the Flash AS editor. When I transitioned from classic ASP to ASP.NET with C#, learning basic OOP in the process, the biggest help was the Visual Studio IDE.
Besides all the autocomplete and code hinting and a decent enough help system, I found the fact that it defaulted to using code-behinds (separating .cs files from .aspx files) forced a major paradigm shift in the way I thought about code, and how it interacted with the visual elements on the page. Encouraging people to get off the timeline in flash, except for the occasional stop() or dispatchEvent, might go a long way towards thinking about their code from a more AS3 compatible perspective.
Besides encouraging the transition to a ’separation of code from content’, I wonder if it would be possible to build in some auto-generated code capability? Basically, default “Automatically declare stage instances” to false, and when a user wants to add ‘non-timeline safe code’ to an element on the stage, autogenerate (immediately, not bytecode at runtime) an external .as file that extends movieclip, and autogenerates declarations for child objects. Allowing them to right-click (or edit a property panel) in the design view of the IDE to then add code to a particular event of the parent or child clips, could then autogenerate the basic event code back in the external .as (add the listener code, create an appropriate empty event handler function, add any required import statements, etc).
I learned a tonne about .NET from the code that was autogenerated by Visual Studio according to the work I did in Design mode. Dragging elements onto the page, adding code to events, and then being able to look at the autogenerated code in the hidden/folded section of the codebehind was extremely helpful.
Eh, buy FlashDevelop, release it as a free ‘Express Edition’ (like the visual studio express editions) with some Flash IDE ‘design view’ integration, and use it to allow people to edit their autogenerated Flash .as codebehinds (or Flex without MXML support?).
John Thomas
6 Jan 09 at 4:33 pm
Hire Rich Shupe to do a beginner AS3 tour a la Colin Moock’s tour. There’s no doubt that Colin Moock knows his stuff but his book and tour were not for beginners. Shupe’s book (Learning ActionScript 3) lit every light bulb in my house, all of them over my head. I finally understood this stuff when nothing helped before. Maybe give away copies of the book somehow. Get him on board and you can figure something out together.
Beyond that, restore in-Flash Help and do an Adobe Update to provide many more, much simpler, examples with the documentation of each class. It’s a real pain to have to turn to third party resources to understand AS3.
Deborah
6 Jan 09 at 5:16 pm
And I REALLY agree about .name not being the same as manually creating an instance in the Properties Inspector. That seems like an unnecessary pain.
Deborah
6 Jan 09 at 5:23 pm
The number one issue working in Flash is data services; remoting, web services. It seems somewhere along the upgrade path these basic necessities were either forgotten or simply removed from Flash since the release of AS3/CS3.
Craig Taylor
6 Jan 09 at 5:34 pm
I agree with ‘Daniel Too’ – examples are the way most people learn how to move from one programming language to another. It would be great if you could do a whole section on the Adobe site dedicated to AS2 to AS3 migration. Not just the ‘this method is replaced with this method’ that you have now but categorised examples of common tasks.
Lots of ‘how to … in AS3′ examples.
For example I was migrating a project and found myself wondering how to iterate through child movie clips in AS3, the solution was getChildAt but I could have saved some time and energy if there had been a single place to look up this kind of thing.
David Doull
7 Jan 09 at 12:18 am
I think it comes down to learning/thinking styles. Designiers (that’s me) are VISUAL PROBLEM SOLVERS. When the language went abstract you lost a lot of happy designers. onClick makes sense to a visual thinker, addEventListener doesn’t. Oh, and don’t forget to import all the required classes (classes? eh?). And be sure to type your variables (wha?)
What did designers lose when we went to AS3?
A concise natural language syntax. It IS a language right? A visual designer will expect it to sound like one.
Why do you think designers LOVE JQUERY? Because even a novice understantds $(‘div.main).fade(‘fast”);
They may never understand javascript but at least they can get their divs to fade. And that’s cool. All hail Resig! There’s a geek who deserves MAD PROPS!
The same applies to actionscript. Example:
Drag and Drop AS2:
Click the thing you just designed VISUALLY on THE STAGE and add this to it:
on (press) {
startDrag ();
}
on (release) {
stopDrag ();
}
Drag and Drop AS3:
COUGH, I know this looks confusing at first but trust me, it’s WAY BETTER than the old way…
MovieClipName.addEventListener(MouseEvent.MOUSE_DOWN,DragStart);
MovieClipName.addEventListener(MouseEvent.MOUSE_UP,DragStop);
function DragStart(event:Event){
event.target.startDrag(false);
}
function DragStop(event:Event){
event.target.stopDrag();
}
Ecapsulation? Inheritance? Scope? WTF!??
I admit, I’m a convert, I love AS3 but I learned it out of spite. I can’t imagine doing anything without FB though – god help the poor soul who try’s to get anything done without serious code hinting. Code hinting has been the best teacher for me.
Also, more book’s like “Learning Actionscript 3.0″ when I saw it was printed in color with examples of stuff I actually wanted to do, I kissed the cover. Not was never really interested in creating a VIRTUAL ZOO (all due respect to the great moock)
Ah, the good old days. It was all about the STAGE, and the MOVIECLIP and mixing frame animation with clicks and shit. Eventually you stopped playing around and started learning but it was never hard to start PLAYING AROUND.
my two cents…
Josh
7 Jan 09 at 1:15 am
Why I’ve been coding AS3 on an off since it’s release I do work with a lot of designers, jr devs and creative developers and can remember some of the pain I went through that almost made me turn back:
1) Complexity: There is just a lot more classes in AS3 for better or worse. The cost of entry is just too high to some that only care about hacking and don’t understand or care why getURL doesn’t work.
2) Automatically add stage instance option causing null exceptions was painful and the error message was vague and confusing. The newly added feature was automatically enabled instantly breaking many developers code for no apparent reason with the option fairly hidden.
3) The IDE’s AS3 editor is a bit slim on productivity features and alternative editors add additional expense to an already expensive package, are often not easily installed and isn’t an integrated solution requiring users to have another program, window, etc open. So when a AS2er wants to make the move it’s not as simple of just upgrading to CS3/4. Case in point: I picked up C# .NET (and LOVED it) having no prior .NET experience in about a week thanks in part to the editor’s ease of use and feedback .
4) vague or confusing errors when making the jump
5) AS1 / AS3 AVMs are not compatible so you either get frustrated and confused designer / hacker types forced to use AS3 or irritated AS3 devs forced to used a deprecating language. Common ground: AS2.
To summarize: provide more training, examples, support etc to help As2 devs migrate, provide better migration tools / ide feedback, make errors more descriptive, introduce new features more gently, provide more productivity features / better code editor to make code editing easier.
-erik
erikbianchi
7 Jan 09 at 1:35 am
I am an animator/developer with a Design background migrating from AS2 to AS3.
First, I tend to think many opinions here come from developers and not from designers as you want.
Second, problems in migration:
- There are not examples, I find help in http://www.kirupa.com/forum/ or in http://theflashblog.com/ but we need more. And from a designer´s point of view, it must be CLEAR and SIMPLE.
Little examples are good, but I haven´t found yet all the code of a website as an example, and of course nothing about frameworks or so.
- Display List: I think this is bad done. As well as other methods (see http://www.insideria.com/2008/07/the-charges-against-actionscri.html). There´s no point if you try to explain a designer that what he used to do coding in timeline now must be done with Classes. No point at all. Probably he will move to Flash Catalyst or will stay in AS2. This is a question of profiles, you cannot place a designer to program in OOP. If you want them to use Flash you should think in other alternatives. I don´t see they moving.
- A Designer doesn´t need much code, imagine. He just has to do animations, banners, microsites, maintennance work, some website. For that you don´t need too complicated code.
- Some books are good, for example “OReilly.Learning.ActionScript.3.0.A.Beginners.Guide”. I cannot say the same from Adobe books’
Comet!
7 Jan 09 at 6:31 am
The funny thing is, it was much more fun to use Flash 4, “because” it was very limited.
I’m not sure, if this effect can leveraged somehow? Maybe you can introduce different levels like in a game, and a developer has to gain experience before she can enter the next level?
bokel
7 Jan 09 at 6:33 am
I agree with everyone here saying the code editor in the IDE needs to be vastly improved.
I’m not sure however there should be the requirement to use AS3 for a lot of things. Banners, tiny projects, quick sketches and animations etc still need a quick and easy way of adding simple interactions without the overhead of ‘formal’ coding. This ease of use and low barrier to entry is what got Flash to where it is today.
I’ve been doing some work with the Crysis game engine and it has whats called the ‘flowgraph’, where you hook objects together visually to create logic flow. e.g. http://img236.imageshack.us/img236/4767/aivehiclejx4.jpg
Radical idea, but how about removing the code editor from the IDE altogether and replacing it with a visual flowgraph type environment? This could actually be writing and exporting valid AS3 code in the background for later use.
Adam
7 Jan 09 at 9:17 am
I work for an ad agency, so most of the flash being done here is of the simplest variety. Most of our “Interactive Designers” are called upon to complete minor tasks in flash now and then, and they are the ones that have resisted the transition to AS3 most staunchly.
The fact of the matter is, though, that most of these guys aren’t using much more than “gotoAndStop”, “getURL”, and some very simple mouse event handlers in AS2. The first two are easy to deal with. A single example should suffice. The last item (event handlers) becomes difficult for a couple reasons.
First of all, these people have no real background as programmers, and therefore no experience with OOP. They may be able to duplicate the syntax for adding event listeners, but they don’t really understand the idea of passing arguments or receiving them.
Second of all, many of them are held even further back by bad habits they developed in AS2 and were apparently never corrected on. I’m thinking primarily of event listeners attached directly to objects on stage rather than on the timeline. A lot of these people have never even figured out what instance names are for.
Ian
7 Jan 09 at 11:33 am
I found that once I overcame the first few hurdles in getting started in AS3, the data typing and compile-time errors became huge assets. I love the enhanced feedback through errors in AS3 and I think many OO newbies will be sold on this. Add to that the generally more logical and predictive nature of AS3 and I think anyone would be happy to change.
Working in AS2, I hacked my way around, but now I do things the right way, more intuitively, because the language requires it and guides you towards it.
Scott
7 Jan 09 at 11:44 am
I think the bottom line is that many Flash developers will never move to AS3. What if there was a simpler script-friendly API that could be pre-compiled down to AS3 by the IDE? It doesn’t need to match AS2 syntax, in fact, it should be a cleaner, simpler (strictly procedural code) API for common functionality like dealing with images, navigation, url’s, and events. (see Steven Sacks’ comment about the Gaia API’s above.) I’m also imagining some function hooks that can be used in movie clips for common events.
For reference, take a look at Processing API…
http://processing.org/reference/index.html
Underneath the hood, it’s all java. If I want, I can create processing applets in Eclipse and write in straight java. However, I also have the option of opening up their script editor, and there I don’t have to worry about public, private, static, etc. I can even define multiple classes in one window. And, the API for common tasks is mostly a collection of straight functions and/or function hooks.
The best part about this is that multiple developers with different preferences can still play nice together.
And, speaking of preferences, can we do something about the automatically declare stage instances issue? How about this, make the compiler only automatically declare stage instances when they are actually missing.
David Knape
7 Jan 09 at 11:55 am
It’s designers that need the extra help or a developer that has been coding on timelines since day one (buy any AS2 file from FlashDen, you’ll see what I mean… looks pretty much functionality is crapola).
If a developer has OO exp, there shouldn’t be much of a problem. AS3 is a sexy beast, just gotta learn how to tame it. I picked up one of Colin Moock’s books and never looked back. Love that guy.
lamone
7 Jan 09 at 8:07 pm
More easier? How can it be easier?! I think AS is easy enought to learn in ’bout 1 month maximum.
But stil nice that adobe thinks of people ^_^
Jloa
8 Jan 09 at 2:49 am
I thinnk that a lot of the people who are having a hard time going from AS2 to AS3 are the same people who use the Flash IDE as their primary code editor.
And, lets face it, Flash is a terrible place to code AS3, because it provides almost no help, no code-hinting, no nothing, which means that you have to know exactly what you want to type and how to type.
To me, that was actually the biggest obstacle.
Once I started coding in FlashDevelop, then AS3 suddenly became a lot easier to grasp.
Mads Buch Stage
8 Jan 09 at 6:33 am
Flexexamples.com is the best site. Adobe you shouldn’t have documentation that doesn’t have example included. You need to include illustrations and less words. You need to know your audience. Flash/Flex/Actionscript appeals to those developers that are more right-brained, thus more creatives than hardcore analytical Java or C++ developers. Knowing this we are more visual than text based learners so you need more illustrations, videos and examples and less words in your documentation.
Mike, see me if you need an example.
jason
8 Jan 09 at 8:18 am
The two things that come to mind are
1. Improve LiveDocs by adding more concrete examples.
2. More specific error messages to help with debugging.
And for designers or developers just making the transition to AS3 I usually recommend the 3 following books (all published by O’Reilly).
-Essential AS3
-Learning Actionscript 3.0
-Actionscript 3.0 Quick Reference Guide
jim bachalo
8 Jan 09 at 8:59 pm
[...] > How can Adobe make learning ActionScript 3 easier? at Mike Chambers [...]
localToGlobal » Blog Archive » news review -> 2nd week of 2009
9 Jan 09 at 6:29 am
How about in the next version of Flash include the following for designers to adapt to AS3 easier. Make several behaviors that are in AS 3 with many more user parameters then the previous AS behaviors, also show the code on the bottom of the behaviors panel as things change, that’s a good way to get an idea of how things work.
If the behaviors can be sophisticated enough and easy for a non programmer to use, it will start to bride the gap. Right now there are no AS 3 behaviors, only for AS 2. Making them for AS 3 and doing what I described will help, if you want to discuss this more I have more ideas with this you can email me.
Daniel
9 Jan 09 at 1:01 pm
I think that a more centralized component library and delivery system would make the lives of many developers much easier.
Take RubyGems for example. It’s extremely easy for developers to benefit from the work of others. This has increased the value of Ruby in my eyes tenfold.
As a developer, there isn’t a uniform place that I can go check to see if someone has done this before. So I have to scour the net for a while trying to find a solution by looking through blogs, articles, googlecode, etc…
I know there are a few places out there that make this easier. RIAForge, Adobe Developer Connection, Project Sprouts, Adobe TV, flexcoders.
Most of these sites (blogs especially), have a way to externally interact with them. I think that an Adobe sponsored site or program that would allow a developer to quickly see what’s out there would be an amazing asset to brand new ActionScript developer and veterans alike.
Nate Beck
9 Jan 09 at 3:13 pm
I’ve tried to solve this problem with an easy tutorial explaining OOP in ActionScript 1, 2 and 3. Every example is built in every ActionScript version. This should allow you to upgrade to a higher version by comparing the different versions of the same example. Check out the tutorial here:
http://www.novio.be/blog/?p=621
Hans Van de Velde
10 Jan 09 at 1:41 pm
I don’t think this is an issue of how easy it is to migrate from AS2 to AS3, any worthwhile programmer will be able to do that without any real problem. The issue seems to stem from designers who want to be programmers, or hackers who spend all day making banners and throw a fit because they are unable to grasp the basic principles of OOP. ActionScript has matured to the point where the line between designers and programmers is now becoming extremely visible, and that is in no way a bad thing, that is what needs to happen for ActionScript and Flash to continue evolving.
Adobe have two groups of people they need to target, and target individually, designers and programmers. Trying to blur the line between those two groups will never work… Flash CS4 is a good example of that. The Flash IDE should, in my opinion, be targeted solely at designers so they can create all of the nice fancy buttons and key-framed animations required for a project. Flex Builder should be targeted solely at programmers so they can bring designers creations to life. Both applications need to work seamlessly with each other – that seems to be a big problem at the moment and does nothing but hinder development.
Designers are unlikely to ever feel comfortable with AS3, and why should they, that is what programmers are for. The separation of responsibility applies to development in the same way it applies to OOP, putting designers and programmers into the same box is like putting all of the code for an application into a single class.
In a nutshell – Adobe simply need to realise they can no longer target a single audience like they were able to do with AS1 and to a lesser extent AS2, that audience no longer exists because it has been split into two distinct groups by the evolution of the Flash Player. Don’t confuse designers with code, and don’t hinder programmers with design. Just gives them dedicated tools to work with and make sure those tools play nicely with each other.
Si ++
10 Jan 09 at 11:42 pm
I don’t think ActionScript itself should be the focus. When I first started out, it was the programming concepts (OOP, reusability, loops, functions, variables, typing, etc.) that make up almost every language that I lacked. Once those are taught and made to be a solid foundation, then one can start to worry about syntax and features later.
jim bachalo, jason, and others: RIGHT ON. Documentation without real-world, non-OOP examples is helping to deter a lot of new AS developers.
I also agree that the Flash code editor is a scary thing to put in front of people. Even for a seasoned developer, the error codes are so vague and cryptic, and half the time they don’t even tell you what you need to fix. Also, don’t let me type out AS2 code if I am working in an AS3 file, and vice-versa. That was really confusing to me when I migrated.
I am curious, however, as to how relevant all this will be when Flash Catalyst is released. Designers want to design, and that includes interactions. If she can used canned behaviors, or use a simple GUI to click through and create interaction, she will be satisfied, I think. It’s not that designers necessarily WANT to code, they want to be in control of the user experience. And they should be.
I think the designer/developer divide in Flash is much higher than people want to admit. The issue is that developers have pushed and pushed the technology and now users demand a much more engaging experience. Well, that experience can only be so canned for designers to implement without it coming off as cheese. I think Flash Catalyst will help out a lot, but there are some key issues that need to be resolved before designers are making the jump. Which only Adobe can do.
Kevin Suttle
12 Jan 09 at 7:49 am
I was on the forums today, and a person asked:
“I created my video in After Effects, exported it as a MOV, imported it into Flash CS3 as a progressive download, exported the SWF, used GoLive to create the HTML page, and at every step checked the ‘loop’ checkbox, so that the video would loop.”
Obviously this person did not know that they were telling the SWF to loop, and not the FLV. Were they using an AS2 or AS3 project? Shouldn’t matter. A looping video is one of the most basic things that an unknowing user could want to create with Flash.
You should not need to learn code to make it happen.
Sure that event model makes the entire process faster, easier, and more efficient; but why do I need to know about events to make a simple flash video that loops?
This concept goes for many other things. Why do I need to know about OOP and Event Models, etc, to make a button that moves me to a different frame on the timeline? There are a great many absolutely basic fundamental things that a lot of people are doing with the Flash Platform that one should not need to learn a coding language to do.
Though, Kevin may be accurate, Flash Catalyst may make this whole question moot. Of course, if Flash Catalyst worked with the Flash IDE, as well as Flex, it would be a whole lot better.
Ross
12 Jan 09 at 11:17 am
For those of u who are having difficulties with going from as2.0 to as3.0, i’d recommend this web @ http://www.gotoandlearn.com/ there’r lots of nice examples, so… Check it out. ^_^
Jloa
12 Jan 09 at 5:00 pm
[...] Chambers has a blog post asking, “How can adobe make the as3 learning curve [...]
It’s no rubygems, but it’s a start. « Nate Beck - Adobeholic
13 Jan 09 at 12:07 pm
It’s really not that much of a jump from Action Script 2 to 3. A few key words and methods, You maybe are having a harder time going full OOP. I suggest find a framework you like and use it.
acplus3
13 Jan 09 at 6:41 pm
I certainly wouldn’t consider myself a hardcore programmer, and started making the switch to as3 last year. Im very glad i did as now im using it regularly, and becoming more confident in it, its a much nicer language than as2.
But what would make it easier? i know the thing i found hard to get my head round initially is class files. I hadnt used them before as3. Some basic tutorials, talking through step by step guides to create a class which adds an object to the stage and interacts with it.
Once i got my head round the basics of classes i was able to develop alot more quickly. Another thing i found/find hard to learn was, how to talk between class. Again a simple tutorial to do this would be nice.
Once those two things are grasped the user is well on the way. I also think theirs nothing wrong with over simplifying these tutorials. Assume the reader knows nothing, those that no bits can skip, those that dont can absorb everything from the ground up
Roamer
14 Jan 09 at 9:48 am
Hi,
one simple practical way would be to create an actionscript shell or command line along the lines of irb for ruby. I use irb all the time just to try things out and I think something similar would greatly speed up investigation of and experimentation with as3 code.
Joc
Joc
16 Jan 09 at 3:06 am
I totally disagree with most of the comments.
Trying to teach people OOP concepts and introduction to Flex blah blah blah who are migrating to AS3 is just going to confuse them.
People want to know how to do what they are currently doing in AS2, ported for AS3. All the basics, navigation, movement of multiple of objects on screen for things like simple games / apps / banners.
When people realize that there isn’t really that much difference between AS2 and 3 except a few concepts and some new syntax they wont be as frightened and will be able to delve deeper.
The problem I had when I was migrating was that all the info on sites and in books was being written very abstractly by hardcore programmers who weren’t teaching what I wanted to know. They didn’t use Flash in the same way as I do. Designers want to know different things than programmers, they can learn OOP later.
when I was migrating I wanted to know specifics. things like what’s the AS3 equivalent of this:
_root["myMC"+i]._x +=10;
in a for loop. It took me so long to work out how to cycle through objects on the screen, and it shouldn’t have.
I think people need specific, functional info on how to transfer there current AS2 to AS3. It could be done in ten easy steps.
I only use AS3 now and OOP and I can’t go back.
Sam keene
17 Jan 09 at 4:34 am
[...] this is an impediment to users learning AS3, as it seems to pop up as a topic on blogs a lot. Case in point (read the comments on Mike Chamber’s [...]
2008 In Review - Flash Platform Shortcomings | Padub
17 Jan 09 at 4:09 pm
Mike,
I second Joc’s suggestion for an interactive ActionScript shell very much like Python.
Cheers,
Daniel
Daniel
17 Jan 09 at 6:28 pm
pls kill it and make announcements for as4 release,
i could even say as3 is buggy, or not too well designed for datatyping, etc…
visiting adobe.com, and seeing the error messsages everywhere :), :O by the flash debugger, it just insane.
even java in my opinion feels easier than as3, lol….
making apps, is becoming easier in java now, how we got to this point XD…
acidguy
18 Jan 09 at 1:38 pm
Well this has been very interesting… Let me take you all on a little journey.
Languages set aside writers are writers, actors are actors and artist are artist. Yes we all have to cross over in this new world to some degree BUT I am not a Screenplay writer nor Novelist. I aspire to make visual things visually interesting and to create order in a small world. Not having to deal with ALGEBRAIC formulae that have blind alleys and rules which do no less than confuse someone trying to learn.
What is the best method for learning a foreign language? ROSETTA Stone and guess what it is visual with verbal cues and a dictionary. Not only that it give simple examples that do NOT confuse the student. So why is it successful because people learn by VISUAL experiences. Small simple chunks that are building blocks to more complex patterns…
I am an illustrator/designer. I worked in an animation studio in the early 90’s. One day the lead supervisor brought in something called DIRECTOR. I was so blown away. I bought a copy and started doing simple script coding. Make a picture visible. Roll overs. Moving something. It was easy to build upon and learn because every small project I did, was an example leading to something I needed to know. I learned what I did right and what I did wrong in baby steps. Even the more complex items were relatively easy to pull together because when there was a fork in the road it would stop you and there was a dictionary/library that acted as a map or diagram. Easy to learn? yes and no.
Then I was introduced to FLASH and thought man this is very cool. Then while teaching a photoshop class I suddenly was blown away by LiveMotion. WOW ultra cool no coding. Simple rules, not complex, no crazy Algebraic SYNTAX issues.
So I used LiveMotion. Why move from all that power to something that was clunky and slow? Basically to get me to a specific point safely, because when you are being creative you can’t afford to think through and analyze.
LiveMotion was FAST to get to a basic idea and less likely that I would introduce hours of debugging. Once my vision was close, if I wanted something more I would pull out DIRECTOR and FLASH then Import LiveMotion into them… Indirectly getting to coding but my point is, at least I did not have to spend hours debugging the SYNTAX.
Well I was blessed for about 2 years, then cursed again. I found in making things easy for me to learn and do suddenly I could no longer get LiveMotion to work with Flash. So I had to learn Flash yet again and spend hours debugging for SYNTAX and other errors —
OKay here I am again in Flash 3 trying to understand the NEW SYNTAX and OOP suddenly it strikes me. Why is it that an animation tool, requires me a visual person, to be a word person? If I wanted to be a writer (CODER) I would have the gift of writing, not the gift of organizing and making things visually pleasing. Why do I have to learn grammar and syntax rules approaching “mathmagica” to do something rather simple in my mind? I can do it visually on paper but I need interactivity.
Oh wait here we go… another rule that has an exception to a rule that was another exception to the rule… So why is it a rule again?
i before E except after C and sometimes Y and W
Why does this need to become algebra?
Somebody please turn the freaking lights on in the room. Designers ONLY want to code when there is NO other way to get from point A to point B.
LiveMotion – while limited – allowed both visual referencing and tools for adding coding. Getting from point A to point B and if you wanted an extra effect you could look at the code to see how things worked. I love this. I hate the stupid Algebraic BS that has become FLASH. It is only fun to WORDSMITHs with a passion for algebra…
PLEASE can we just use simple baby steps to get from point A to point B? if I want something magical let me turn on the lights myself.
Provide me with a library and dictionary reference and tools that keep me from creating SYNTAX errors. Show me examples of how the pieces work and can work together. For those who want to learn to speak a foreign language give them a ROSETTA STONE and those that want to learn the intricacies give them the freedoms and what they need and let’s move along.
NoPixies
19 Jan 09 at 6:11 am
“DisplayObject” “DisplayObject” is probably the major stone, sucks, why if is a new language, dont give so much flexibility in many aspects like as2 handling the Depths, inserting movieClip dinamically, etc….
A Ton of tutorials defining every aspect of these classes vs Real World Uses would be great,
AS3 has excellent XML Support but…
Trashy remoting support in flash as3, Why dont add ArrayCollection for flash AS3???,
the way flash AS3 does remoting definig in few words, just… “Sucks!, really sucks,
AS2 in every way was better in this aspect…..
flash AS3 Remoting even cant parse the column names, what a waste….
Flex 3 = Good AS3 Data Handling Implementation
VS
Flash CS4, Poor AS3 Data Handling Implementation…
AS3 better in may ways but… the complexity at 3…. or more VS AS2 for making simple things… not fair having to learn OOP for designers!.
acidguy
24 Jan 09 at 11:57 am
[...] part of some of my recent work and research into ActionScript 2 to ActionScript 3 migration, I am working on an AS2 to AS3 migration reference cookbook. The core of the reference is the [...]
Suggestions for ActionScript 3 Migration Cookbook at Mike Chambers
4 Feb 09 at 10:00 am
Philip Kerman made an excellent point about catching errors – this is a great quick fix for newcomers to the language (and sometimes the only way of discovering which line number your code failed on)
For me, the biggest problems with AS3 have come from mixing AS3 code with existing flash assets and timeline objects, or even symbols that haven’t been given instance names. There are workarounds, but you have to dig really deep to find them.
Oh one last final point – how do you send raw xml to a URL without using the flex-only HTTPService class? I would appreciate an answer to that one myself, and I’ve looked everywhere.
John Cotterell
4 Feb 09 at 10:33 am
Hi Mike,
I think if you prepare a cheat sheet for migration as2 to as3, this is very useful. by comparing changes and new added functions.
Ahmad Azimi
4 Feb 09 at 10:41 pm
Flash IDE needs code hints not just for classes, but also all the way down to hinting the names of children DisplayObject instances.
kris
5 Feb 09 at 11:28 pm
Hi, I think as3 is good language but the to me their are two main problems :
1- The as3 editor of Flash IDE and its debugger are not too much supportive for a initial level programmer of as3.
2- Some of as2 functions donot have equivalent in as3 like duplicateMovieClip etc.
but I hope in the future version steadly these problems will be fixed.
awais
7 Feb 09 at 3:29 am
Acid Guy
I dont understand what you mean about displayObject
For my the Displaylist and AddChild or AddChild at is second nature. if you ever tried to build something in AS3 Flash7.2 that used depth manager you would realise what a blessing the new structure is
I used to teach an ActionScript course for Designers and recently did a major piece of consultancy for a Large UK government E-Learning provider on how to migrate from AS2 to AS3
Please no return to on clip code, finding a misbehaving piece of on an empty Movieclip or button 20 layers down and 200 frames along the timeline is a nightmare.
One of the difficulties novice coders have is the code editor in CS3 / CS4, it is so hard for new programmers to get positive reinforcement from this editor.
But to be honest 80% of all programing task goes on in 3-4 Classes DisplayObjects (MovieClip Sprite
Textfield) XML classes, Loaders and Events.
SimpleButton is a nice class and great for most of what designers want to do, yet most of them don’t know it exists, the Event model is great TellTarget on steroids.
AS3 is far cleaner and easier to implement than AS2 ever was.
The bigger disappointment in CS4 no flex like code editor, no FXG import, so the work flow for design to development still is a struggle, and somewhat unintuitive.
Components and setstyle in a pain trying to remember all the styles for each component without code hinting has been the bain of my life on this last project.
There is no getting away from the fact that as projects get bigger some element of Code design has to take place, and you have think about MVC type structures even if you don’t formally impliemnet them
Flash Platform has now become so powerful that even a bright guy with a masters degree in Physics and a masters degree in Computer science was struggling to get to grips with the range and scope of what do as multimedia programmers, so it hardly surprising that the rest of up mere mortals struggle sometimes
Ahmad there are some good cheat sheets already and the information is also in the livedocs
Kris if there was a command line compiler I could call from FDT or Flashdevelop like the old MTASC compiler I would hardly use the CS4 IDE at all
Stephen Buckley
8 Feb 09 at 3:54 pm
Ahmed : try these
http://actionscriptcheatsheet.com/blog/
Although I think that its the wrong approach for a beginner in that you get to wrapped up in the details.
At the beginning you want an overview, the broad strokes, then the most common class you will use day in and day out. MovieClip. and how movieclips talk to one another. For designers maybe we should make it whimsical “Micky MovieClip learns about the Actionscipt world” take the big words and the fear out of it. Show designers something they can do code that would take them hours by hand, Show them the simple tasks of preparing graphics in such a way that the developers does not have to spend pulling stuff apart to redo it in code.
Stephen Buckley
8 Feb 09 at 4:07 pm
[...] this is an impediment to users learning AS3, as it seems to pop up as a topic on blogs a lot. Case in point (read the comments on Mike Chamber’s [...]
2008 In Review - Flash Platform Shortcomings | Iona.LABS
11 Feb 09 at 10:34 am
AS3 is the easiest thing ever.
anybody that complains is nohting but a lazy donkey.
kixass
18 Feb 09 at 6:45 am
All of us at FlashForward Boston were given copies of Colin Moock’s ActionScript book. I took the book and started going through it. It took me about 6 months to get through and there are still little hidden things about AS3 that I don’t get.
The biggest obstacle for me, having no prior programming experience – other than AS2, was classes and class structure/communication as opposed to procedural coding on the timeline.
Rich Shupe’s book “Learning ActionScript 3.0″ was the most helpful. Being in his FlashForward conference talk on migrating from AS2 to AS3 was hugely helpful. I wished I had gone through Shupe’s book before Moock’s. Although Moock’s approach is technical and appropriate for the subject matter, he’s coming at such a high level of programming that it’s difficult to adapt to.
I recently took another AS3 course to see if I could wrap my head around classes and now they finally make sense. That’s not really the hurdle any longer. What is though is the lack of resources. The Help files are great, but they only take you so far.
I really wish someone would put together an AS3 best practices or even Common practices guide that would comprehensively spell out “do it this way, don’t do it like that, and here’s why.” I think the language has gotten so sophisticated that there’s almost too much to take in. There has to be a clear methodology of approaching problems.
The other hurdle is the platform itself. Flex can do this, but Flash can’t and Flash can do this but Flex can’t. All of that stuff impedes what I’m trying to accomplish with just Flash itself. It’s great that there’s a Flash platform and I understand that there’s a separation between the Flash IDE and Flex for developers. I get it. AS3 crosses borders on both apps, but is Flash diminishing because of Flex or is it the other way around? Should they be one app?
That’s my thoughts on this.
Al Lemieux
18 Feb 09 at 10:30 am
Flash has been hijacked by the small but vocal “hardcore” coders. The silent majority out there don’t go to these blogs or conferences. They hate AS3 and will probably just stick with AS2. I think adobe shot themselves in the foot with this move.
This is coming from someone who is very familiar with AS3 and OOP… The casual designers out there made flash what it is and they are being abandoned.
Mike D
18 Feb 09 at 5:29 pm
My problem of Flash AS3.0 it is that it scares me because i find it overwhelming.
Im Confused (yet) about wich classes do i need to import to work. I even tought at first that i needed some explicit import statements (of who knows ehat classes) to work with gotoAndPlay(). All the comunity uses examples with lots of imports and scrambled comments.
Solutions from my perspective:
1.- A day or week of: Comunity bloggers making 2 kinds of aplications basic and intermediate. (how to make a navigation menu, how to make a popUp submenu etc. things the non-developers usually need in projects) make Adobe or some site concentrate the links.
2.- Tour de Flex and Flex in a week, more publicity of it. im more and less learning with these great tools
3.- a simple website simple tutorial (how tos: preloaders, navigation, contact forms and image animations)
beWell
bao!
Isaac
20 Feb 09 at 7:35 pm
What’s ironic about the AS2 to AS3 discussion is that, AS2 was meant to be a transitional language intended to encourage users of the platform to make the shift to OOP. OOP is the standard programming paradigm in the world of software development and people coming from that background made that jump with AS2. Most designers, on the other hand, opted to stick with procedural methods rarely if ever venturing outside that comfort zone to write class-based code. With the advent of AS3 we have even stricter adherence to OOP. AS3 purposely targets people coming from an engineering background b/c Adobe as well as many other companies are gearing up for the Next Big Thing in IT media. Software As A Service (SaaS) applications (aka RIAs) where users will run their applications from the web instead of locally from their machines. Given the high penetration figures of Flash (installed on 98% of the world’s machines) it is the perfect platform for deployment of such applications. These apps require a more robust language, hence AS3. I think as a result we will find a demarcation between the disciplines of visual design and software architecture begin to establish itself. But companies watching the bottom line will always try to get two for the price of one and seek out designer/developers, even when the scope of a project demands a combination of people that are singularly focused on Design or Development. So what to do…Bit the bullet and invest some time learn about the other craft, nothing worth doing is easy.
Damiion Murray
24 Feb 09 at 12:52 pm
I wasn’t ever hardcore with AS2, but I recently had to dive into AS3 after the designer on one of our projects flaked out. Frankly, I found the Richard Shupe book really helpful. Once I got over the intimidation factor, I was able to realize all the benefits of AS3. Also, using the Gaia Framework as a basis for the project helped me see in concrete form how Class files work in harmony. I think designers would flock to the Gaia Framework as it simplifies things and allows you to focus on solving the “fun” stuff.
Matt
26 Feb 09 at 6:38 pm
well what else can we do, as2 is history
ieaiaio
10 Mar 09 at 4:23 am
I’m a designer/self taught developer, nowdays I hate AS2, it’s too clumsy and inconsistent… I tried to understand OOP with AS2, wrote everything Strict Typed, but never could implement classes n my coding, untill… I finally decided to go for AS3 (mostly I needed the performance)…
Then I read Keith Peter’s ‘Making Thinks Move’, at the end of the second chapter I continued on my own… building classes, subclassing, completely understanding the event model (something that in AS2 still doesn’t make sense).
I think the key is in eliminating any previous knowledge, then setting the right INCENTIVES for migrating or learning AS3, for me it was Speed.
FIND THE INCENTIVES
I find the Flash IDE action panel pretty good I have about a million lines of code written by me, and sofar no problems…
I’ve never used flex thou.
AS2 is history and so is Flash for non coders… Flash is not so simple anymore and not so ubiquous anymore…
Agustin
11 Mar 09 at 10:04 pm
hey mike,
quite a few people were asking for actionscript training videos here. for one option, see “The Lost ActionScript 3.0 Weekend”, an 11-hour training video co-produced by O’Reilly and Adobe. It teaches object-oriented programming with ActionScript 3.0. More info at http://www.oreilly.com/go/law/.
colin
24 Apr 09 at 1:25 pm
I have only 1 request make it easier to use removeChild or at least put in the documentation what to do when removeChild does not work although the code for remove child is correct. I’d explain further but I would have to post code. Hope somebody does something about removeChild
calmchess
16 Jun 09 at 7:20 pm
Ok to say that as3 is somehow cleaner, well still missing many things from ADA, like generic programming, enumerated types and so on, ready since 1986… we are in 2009. Not to speak about vectors, brand new to flash, ready in 1993 on java. As3 is not a language, it’s basically a macro script meta-language ;-)
Well this makes me think that programmers are sometimes as autists as rain man, the world should care about them but they don’t want to adapt themselves. And it’s an insult towards autists, I shouldn’t compare autists to stupid programmers.
I am one, programmer, but I tend to think about the user of my code or programs.
I used to teach flash programming to graphic designers who wanted to do some interactivity… now with as3 they are dead lost. I try not to screw them up with OOP and design patterns, which is absolutely away from their day to day needs.
Now I almost think that I have to give up, and teach only to engineers and scientists.
Plus no converter from Adobe to translate as2 to basic as3, even not optimized means “we don’t care, you should start rebuilding your framework or adopt ours”.
Does Adobe think that we as developpers, teachers and so on are sheeps ?
Why should we have to rebuild everything just to stick with Adobe’s new specifications and without help from Adobe ?
ali
15 Jul 09 at 1:12 am
WTF?! Seriously, I just tried to start learning AS3 today and I’m throwing up my hands in pure frustration. html and css make sense, actionscript is pure misery. I’ve been watching some lynda.com videos on the subject but I can’t wrap my head around the idiotic robot syntax. Why are we as humans supposed to think in code to get things done? Aren’t computers supposed to do the heavy lifting? As a designer, if I’m going to learn another language my time would be better spent learning German — at least I would be able to meet impressionable German girls.
digiboy
1 Sep 09 at 1:38 pm
I think the fundamental issue is the fact that visually creative people try to learn Flash because they see the “WOW” factor that is created when you have a combination of both great design and strong programming.
If you have one and not the other what you end up with is a person.
I don’t think I have met a single person who wholly understands the concepts behind OOP enough to be able to really compose the value in AS3 (or any other language) and ALSO be able to create a design so compelling that it ends up on BestOfFlash.
The inverse is true also…I don’t think I have met a designer who wholly understands how to leverage the power behind true OOP.
I am sure there are some out there…but I am also sure they are few and far between, and I hope they are rolling in dough and having their toes licked.
However…I doubt that is the case.
I am an artist who has learned to think like an engineer…but not a great engineer because I am still an artist. An artist creates just like a programmer ( or engineer ), but ultimately it is for two different purposes. An engineer creates because he knows he can make something better functionally…but an artist creates because he can make something aesthetically better.
That being said, Da Vinci is the first one who comes to mind that would meet the mold.
If you want to be able to teach visually inclined people how to understand such a concept as abstraction…you really need to be a strong visual communicator, a tutorial isn’t gonna cut the mustard.
An artist knows how to break something into smaller tasks…but he doesn’t worry about the technical…he just does it. A programmer is the same but with a different medium.
Use grammar, visuals, real-world examples which are labeled with the concepts of OOP. Because ultimately that is the notion which is being asked in this posting…can a person who has learned how to do something in a non-restrictive environment ( like AS2 ) really understand how to produce content which is dependent upon more than a timeline and stop() and play() functions?
Benjamin
5 Sep 09 at 8:05 pm
v simple really. Treat me like an idiot. Treat me like a designer who loves designing and abhors coding. Let me drag ‘n drop behaviours (I believe this is available in a version of Director) whereby I don’t need to stop and think other than to ask myself “hmm, what behaviour do I want to add to this part of the project?”
I don’t care about code, coding, AS1, AS2, AS3, AS-whatever. However, I do care the code works. I’m not interested in the How or Why, or what an array is, or what a function is; I’m a designer, not a developer. I’m happier in a LiveMotion environment where stupid nonsense like instance names are automatically taken care for me. This is why I use LiveMotion and not the “F” word you acquired from developer-centric Macromedia.
Take care of me. Treat me like a designer who has no desire to be a programmer and who holds little -to-no interest whatsoever regarding the machinations of code.
You want AS to be easy to learn? make it completely transparent. Or, better still, make a new application, call it “Flash Elements” and stuff it full of pre-coded widgets, AS whatsits, AS2 doodads and AS3 what-do-you-call-its. But don’t ask me to code anything. Oh, make sure the canvas is vector based too. Heck, while you’re at it, recompile Livemotion 2.0 and release it under Open Source Flash so we can use it on Haiku OS.
Well, you did ask…
Hrududu
Hrududu
26 Oct 09 at 5:45 am
Out of pure frustration, I typed “ActionScript 3.0 shit” in Google and came up with this blog. Childish, I know!
I’m a typical designer so programming is a real struggle for me. I can just about manage basic PHP and I would absolutely love to be able program using ActionScript 3.0 but – despite trying to learn from a pretty good book – I just get completely lost. Then, I get frustrated, throw my hands in the air and say “life’s too short for this”.
It’s just the way I am… (I also have trouble learning Italian, but that’s another story).
The ‘old’ days of basic ActionScript were, as others here have pointed out, beautiful. It was easy – and logical – enough for impatient designer-types like me to dabble without pulling hair out.
Over the past few days I’ve been reading about OOP from various sources – from Java to Objective-C tutorials. The irony though is that the concept of objects in itself is very visual so should make it a breeze for someone like me with only half a brain. The thing is, even when I’m convinced I’ve finally “got” the theory, I dive into AS 3.0 and get completely lost. I have to import a class, add an object and handler just to do something.
If I had to do all this shit to, well, shit, I’d have to have a ‘bathroom’ class, a ‘toilet’ object, an ‘ass’ handler and ‘crap’ variable (representing the varying sizes and shapes). I want to just goToAndShit().
There just seems to be so many steps to do something that really should be simple.
Having said that, I understand completely why we now have AS 3.0… Flash needed to go this way. It has just alienated people like me though I think.
Someone else here said that JQuery is great for designers – and I would agree completely. It does all the hard work for you and the documentation is easy to understand.
I want a Flash that does things for me. If Apple had control of Flash it’d be like Motion – and that’d be a wonderful thing I think. (Is that what LiveMotion used to be like?)
I want to drag a behaviour to an object to make it hover, fly off the screen, explode or whatever else. I don’t want to learn – and type (and debug) ten lines of code to do something so ’simple’.
I love Flash but given the simple things I want to be able to do, JQuery – and even CSS animation – looks like the future to me and they’re easy enough for me to do without a degree in rocket science.
MrMuppet
31 Oct 09 at 10:11 am
As far as I see, Flash is no longer a tool that designers/animators can use for quick presentations.
I have being using Flash for 14 years, before it was even called Flash.
However the new evolution of the program is the biggest step back I have ever seen with any software.
I don’t understand why Adobe could not integrate even the AS2 code to work within the AS3 code in the environment/architecture. For the cost of the product I would have thought that users should have at least being able to continue with what the know.
Upgrading to Flash CS3 for the price and having to learn the whole thing over, makes no sense.
I do understand some of the basic logic with AS3. However the biggest change that has killed the product for me is being unable to interact directly with the main timeline and stage.
Something as simple as calling a keyframe on the main timeline is impossible.
Mark
8 Dec 09 at 2:23 am
May I suggest this website? http://tutorials.as3.ca it is a compilation of the best AS3 tutorials on the internet, organized by category & difficulty level. It might not be a pretty site but the content is golden! It is a work in progress, still adding tutorials weekly.
Thanks!
Martin
Martin Legris
13 Dec 09 at 6:40 pm