Flash CS3 Components Revealed

FitC Toronto 2007 is just a couple weeks away, and I’m working hard to finish off my talk on the Flash CS3 component set.

I was really excited when my team (gskinner.com) was chosen to develop the component set for Flash CS3 (except FLVPlayback), with Adobe and Metaliq. I had the pleasure (and stress!) of leading the architecture and development of this new set of components.

At FitC Toronto, I will be giving a full tour of the v3 components. I’ll be talking about the goals and philosophy behind the new architecture, skinning, styling, and extensibility (extending or creating new components). I’ll also take a shallow dive (I only have an hour) into the inner workings of the new component architecture. I’m hoping to provide content for both designers working with components, and developers that are interested in building new components or extending existing ones.

FitC looks like it’s going to be one of the best conferences in 2007, with a really stellar speaker roster. If you’re going to be there, and want to learn about the latest set of components in Flash, check out my session “Components and AS3” right after lunch on the second day. Also, feel free to pop in on my panel with some really smart dudes (Mike Downey, Aral Balkan, Keith Peters, and Chris Allen) on “AS3, Flex & Apollo: What They Mean For You” on the first day of the conference right before lunch.

Grant Skinner

The "g" in gskinner. Also the "skinner".

@gskinner

44 Comments

  1. Can’t wait to see ’em Grant! I’ll definitely be checking out your session (except the panel discussion….that’s when I’m presenting on Design Patterns)

    -tim.

  2. Whimper! Awww, I really wanna go! But I just had my first baby boy!

    I’m very happy for you guys! Canadian Flash Developers rock!

    DJ

  3. By looking at screenshot of shipped with Flash CS3 component palette (http://dev.etcs.ru/flash/cs3_review/screen7.png), I do not see Tree component included.

    May be there is an scheduled update from Adobe to include Tree component into the set of Adobe components shipped with Flash CS3?

  4. I was excited about the idea of you guys working on the CS3 component set when you originally announced it a while back. I was wondering if the file sizes have been reduced size? I found that most of the “Factory” components were great in features but were bloated due to built in focus/depth and other managers.

  5. Hey man — really looking forward to seeing you at FITC — it’s been too long! 🙂

  6. Flash CS3 components set without tree, menuBar, Alert,… why? when?

  7. What’s the story on the Tree component? You can’t just strip out one of the most useful components there were.

    And what happen to Web Services?

  8. The complete list of UI-components which hasn’t made it into AS3 is: Accordian, Alert, DateChooser, DateField, Menu, MenuBar, Tree, Window.

    AS2 components can’t work in AS3, so forget that. Adobe has so far been silent on the issue.

    It makes migrating existing apps a real pain.

  9. Don’t forget the lack of Data Components altogether, such as the RDBMSResolver, DataSet, DataHolder, XMLConnector, etc.

    I never used the components anyways, just the classes, but haven’t bothered to search if there are any AS3 DataSet Component Classes. I really miss the RDBMSResolver for deserializing NetConnection results to be pumped into a DataSet.

  10. My company was going to buy 10 licenses of Flash CS3. But after learning that the new UI compnents don’t have date chooser, date field, tree, accordian etc. I have requested my manager to put a halt on the purchase. What is adobe charging the big bucks for? It is like going down to a lower version with CS3 for us, especially when we use especially the UI components a lot.

    This sucks…

    Manoj

  11. Does anyone know if Adobe will eventually upgrade the “missing” components to AS3? This is not cool!

  12. How do we find out from someone other than standard Adobe customer support who “doesn’t know a thing about it”, whether Adobe will be updated Flash CS3 with the missing data component classes?

    Specifically the DataSet, and RDBMSResolver classes?

  13. I’ll recommend venting frustration in the Adobe Flash Forum. I’ve included a link.

  14. Flash cs3 is a screw-up DO NOT BUY THE UPGRADE!!!

    I am getting a refund from Adobe, the refund process takes 2-3 months; bad, bad, bad.

  15. The best way to let Adobe what you want is to send an email to the wish-flash mailing address, which I believe is currently:

    wish-flash@adobe.com

    though it may still be:

    wish-flash@macromedia.com

    Luc, I’d be interested in hearing your specific reasons for disliking Flash CS3. Unlike say, Flash MX 2004, which I think was a screw-up, I think there is a lot of value in the CS3 upgrade. There are certainly additions I would have liked to see that aren’t there, but I definitely wouldn’t consider it a screw up.

  16. I’m loving the CS3 components but have a found a strange issue with the UIScrollBar – it doesn’t seem to update correctly when contained in a sprite with visibility set to false?

  17. Grant,

    The only issue with the components is that they REMOVED components that were in the previous version. It’s like a MAJOR MAJOR MAJOR heartbreak to developers. I personally love the new components and the ease of skinning. But the fact that they removed components is seriously crappy. I cant believe adobe did this.

    They want all flash developers to move over to flex to use the missing components. Yet they dont realize that 130K to download the flex framework sucks! Adobe needs to come to the plate on this. Its a major oversight.

  18. Re: The issue with UIScrollBar and invisible textfields. After testing I have found several issues with AS3 and TextField.maxScrollV which is why the UIScrollBar wont update correctly.

    * When updating the height of the textfield maxScrollV does not immediately reflect the correct value.

    * When the textfield has a visibility of false and a new textfield height is set the new maxScrollV is not correct before visibility is set to true AND some time has passed…

  19. Wow! Bad news went to use the Menu Bar component in Flash 9 it’s missing. What happened are we going backwards???

  20. I can’t believe that Adobe would leave out components as popular as menu Bar, now I have to waste time to make my own menu Bar component. Smooth move exlax.

  21. People, remember, all the old components are still there, you just have to use an ActionScript 2.0 document.

    That said, I was also very disappointed that many of the AS2.0 components didn’t get rebuilt in AS3.0, particularly the Tree component.

  22. andres Garcia June 23, 2007 at 6:52pm

    Actually those components are already developed for ActionScript 3: Flex have most of them, and Flex only works with ActionScript 3.

    It seems that Adobe just like to make us move over Flex!!!!!!

  23. Has anyone managed to set these up to work in a runtime shared library?

    It wants the classes importing, but obviously this kind of defeats the point.

    Grant any ideas?

  24. I was excited to check out the new Flash CS3 components and have to say now that I have I am very disappointed.

    Not only are key components missing but the ones that are there are less than ideal. Someone posted they felt that Flash CS3 was a step back and I have to agree. ActionScript 3 is a big deal but it is as if you want to use it you have to give up a lot.

    It looks as though Adobe is trying to force us all to move to Flex and only do drawings and animation in Flash. That strategy is sure to make MS win…

  25. i searched a lot but no where i found about the cs3 component architecture. perhaps you people are trying to migrate me from flash to flex by not providing migration f v2 components to v3 components. so much frustrating.

  26. Hi Grant,

    I really like the V3 Components. The skinning possibilities are sooo welcome, and I loved to see that some of the old issues were solved (like the ComboBox and other subpanels opening in the wider direction they find) 🙂

    I been working with them since some time now though, and I found a quite annoying bug. The open() command generates a load of errors (like dropdown lists and palettes positioning wrongly). I tried it extensively with the ComboBox and ColorPicker V3 Components, and i found that:

    – if the Combo is opened towards the top (or the ColorPicker is opened towards the right), the dropdown list and palette positioning are most of the time totally wrong (and things like the ComboBox.rowCount property return incorrect results)

    – the ColorPicker editable textField can’t be correctly edited, and pressing ENTER doesn’t do anything

    You can easily generate this error by creating an empty FLA, dragging a ColorPicker instance, and calling “pickerInstanceName.open()”: you’ll see that you’ll not be capable to correctly write in the ColorPicker color textField (only 6 chars accepted, instead of the required 7), and the ENTER key wont work. If instead you open it manually, by clicking over the swatch, everything works alright.

    I don’t know if I’m a terrible botherer to write to you about this, but I saw no news about it anywhere, and I’d really need to be able to call open() commands. So, any news about this bug solution? 🙂

    Kind regards & a nice day (& thanks for all the stuff you release 🙂 )

    Daniele

  27. Like many here, I also miss the menubar component and accordian component. I can’t move to Actionscript 3 until I find a solution for that, and likely won’t be upgrading to Flash CS 3.

    What is flex? I guess I’ll check this out since many have mentioned that as a solution. Besides the size overhead, what are the other drawbacks?

  28. The list component is missing a fundamental method that every list should have.

    a way to change the direction of it’s index (“ascending or descending”), so that index 0 is not mandatory the top of list. As well that would allow to predepict the direction in which the items in the list populate(“ascending or descending”).

  29. I welcome AS3 but a lot of faith has been lost in Adobe when they decided to remove several components from Flash 9 AS3 without prior warning. Furthermore, their lack of response/explanation/solution warrants further doubt about any future products. It seems to me the very LEAST they could do is offer a discount towards Flex 3 for current owners of Flash 9.

  30. As a flash developer I consider myself cutting edge. Which is why I can’t believe that when certain projects come up that need a good component set mixed with a lot of Flash interactivity, I have to tell me clients to go back to AS2!

    My clients are 95% advertising agencies who have used Flash for years, asking them to move to Flex is not really an option.

    Please is there someone (Adobe) who can explain the rationale of leaving out components we have used for years?

  31. Quote:The list component is missing a fundamental method that every list should have.

    a way to change the direction of it’s index (“ascending or descending”), so that index 0 is not mandatory the top of list. As well that would allow to predepict the direction in which the items in the list populate(“ascending or descending”).

    Posted by: Josh Chernoff at September 7, 2007 01:38 PM

    endquote

    Did you redo the math? index -1

  32. first adobe did not provide us (flash dev) with official documentation about building v3 components. /*10x Jeff Kamerer, for his post.*/ Now did not give us standard components. Maybe in 1 year will be no longer TimeLine or Library.. or maybe whole Flash ??!@#

  33. More power to Adobe for the fine work they’ve done with Flex; but us long-time Flash supporters can’t help but feel slighted. I get the feeling that the discussion just prior to CS3’s release went something like this:

    “Well Bob, do you think we put enough new bells and whistles on Flex to intice Flash users?”

    “Hmmm, I don’t know Ted, they’re both pretty slick. Flex has datagrid components, Flash has datagrid components, Flex has an accordion menu, Flash has an..accor..heyyyyy,..wait a minute,….are you thinking what I’m thinking? muahahahaHAHAHAHAHAHAHAHA!!!!! Hand me my deletin’ shoes!”

    Where’s the love? I haven’t seen the likes of that shiestyness since ol’ Mr Haney on Green Acres. “Yeeeeppp,…you’ll prolly be needin’ a steerin’ wheel furr that carrr I just solld yuh”

    Ahhh,…sorry Grant. I couldn’t resist throwing in my two cents. For what it’s worth; CS3 really is a nice upgrade. Anybody who’s knocking it probably hasn’t spent enough time under the hood. I miss the old components but the trade-offs are well worth it.

  34. No worries Kyle and all. I’d like to think we did a great job with the components we built, but I’d also love to see a more complete component set. Unfortunately, I’m not the guy that makes those decisions.

    As I mentioned before, the Adobe guys really do read the feedback sent to them by the community. You can send them these kind of comments on the Adobe feature request page.

    http://www.adobe.com/cfusion/mmform/index.cfm?name=wishform

    If they see enough demand, maybe there will be an update with more components, or at least CS4 won’t have the same issues.

    Cheers.

  35. Grant,

    Any chance of an up-to-date distribution of the components being released on the Adobe exchange?

    Any plans to make them work inside a security boundary? I’ve got a patch that is pretty close to acceptable. Interested?

  36. can we use other flex components with flash

  37. Hi Grant,

    Can you help me to discover how to embed fonts into a DataGrid Header?

    On my website http://www.strangeloopstudios.com/player i have several components all that happily use an embedded font. I have DataGrids that work as expected with the embedded font but i just can’t get the same result for the headers…

    Any advice would be great Cheers

    Sls

  38. Grant,

    same problem, how to embed fonts into a DataGrid Header?

    Thanks

  39. I have the same UIScrollBar Lucas mentioned, and I have found no solution (other than using a timer or Event.ENTER_FRAME to constantly check and see if the maxScroll value has changed). Has anyone discovered a solution?

    Thanks!

  40. Hello! I am working on an AIR project, so I have to use AS3. I also want to use Flash, not Flex, because I need the UI capabilities. I am very sad that some components have been moved. I am working on a brand new app, but I feel for those who “banked” on Adobe technology!

  41. Hi Grant,

    You are a legend in the Flash community and rightfully so. However, there is an annoying bug in the radio button component which is really frustrating.

    In my app I am dynamically creating slide classes with radio button components within and modifying the radio buttons’ group names based on the slide name.

    For some odd reason, an occasional radio button group won’t work like its supposed to (selecting/deselecting based on other radiobuttons in with the same groupname). I know this is not my fault because this bug seems to hit in a very weird and random fashion – hitting different radio buttons like nothing I have ever seen before. Also, someone else on the web complained about this same problem.

    Please help,

    Evan

  42. Hi Grant,

    I love the handling of the CS3 Components!

    But unfortunatly I’m meeting the same problem as Daniele Giardini posted at August 2007 about the ColorPicker.

    How can I solve this? Please help!

    Kind regards, Carolina

  43. Carolina and Daniele,

    The bugs you refer to are related to invalidation of the components. In the sample that Daniele provided, the comboBox.open() command fires immediately, while everything else waits until the component invalidation renders the component. This means that the list opens with the default (5) rows, and then draws with the updated number, without changing its position. A simple fix for this is to call “drawNow()” on the component before calling open().

    comboBoxInstance.drawNow();

    comboBoxInstance.open();

    I wasn’t able to reproduce the positioning issue with the ColorPicker. I did find however that if the ColorPicker is opened via code, stage focus is not given to the component. I suppose it _should_ steal focus when it is opened this way, but there is another easy workaround. Simply call setFocus() before opening it.

    colorPickerInstance.setFocus();

    colorPickerInstance.open();

    Hope this helps.

  44. I really like the V3 Components. The skinning possibilities are great

Leave a Reply

Your email address will not be published. Required fields are marked *