Top 5 Flash Problems Solved.

At FlashForward New York this year I will be running a session titled “Top 5 Flash Problems Solved”. This session will identify, define and provide straightforward real-world solutions for 5 problems faced regularly by Flash Developers.

So here’s where you come in… what would you consider to be the top problems you have faced as a Flash developer/designer? How did you solve them (or are you still looking for a solution)? Please post your ideas in the comments below, or email them to me using the contact button above.

I will be posting the session notes online in the usual place after the conference, so even if you aren’t attending FFNYC, you might get your question answered.

A few ideas to spark your thoughts: streamlining server interactions and pre-loading, avoiding _root, extending components, optimizing your code, making shared runtime libraries work.

Thanks in advance!

Grant Skinner

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

@gskinner

44 Comments

  1. You asked for it! 😉

    These are the the issues that I have found either very difficult or impossible(?) to implement in Flash, but are often very important in providing a familiar and pleasing user experience:

    1) Supporting browser back/next button.

    2) Supporting browser print button (Holy Grail?)

    3) Supporting bookmarking.

    4) Runtime Shared Libraries without using absolute URLs.

    5) Handling preloading, especially when “nested” preloading is required — i.e. need to preload A.swf, but A.swf needs to preload A_1.swf — and when trying to preload files that use Runtime Shared Libraries.

  2. 1) Problem: Application Layout without the initialization problems.

    Solution: Extend mx.core.View

    2) Problem: Spend too much time writing control layout code.

    Solution: Use Flex.

    3) Problem: Shared Libraries are too much of a management nightmare the second something in your app needs to change. The Components do not make this easy without purchasing Ariaware Optimizer (or whatever it was called).

    Solution: Don’t have a need now; a single SWF works fine.

  3. The font rendering in Flash drives me nuts. It’s never as clear as with other applications, but it’s so much more efficient. Is there any way to make the fonts in Flash easier to read?

  4. For browser back/next button visit:

    http://www.pepsimundo.com

    Navigate some sections and use the browser’s history buttons to go back and ford..

    See the /scripts/history.js

    For bookmarking try entering this urls:

    http://www.pepsimundo.com/?node=2

    http://www.pepsimundo.com/?node=3

    http://www.pepsimundo.com/?node=4

    I’ll try to post something else later… I can’t comment much on the code from the site (except for what you can see).

    Regards,

    Pablo

  5. – html links in html textfield limited to 128 cars

    – a MovieClipLoader Class without bug and always fired events step by step ( start then progress then complete also if instant downloading )

  6. For the earlier mentioned font clarity issues a lot of it comes to font selection, some look much better than others. The other trick I use is to set the x, y and font size to fractional values until it looks the best, you can get some excellent results, you just have to tweak tweak tweak.

  7. Here is the list that annoys me the most, and would love to hear about workarounds for these real issues with flash:

    1. Limited stage dimensions

    2. Inability to run any flash file at full FPS in Internet Explorer (even empty flash files with just a FPS meter)

    3. Debugger is very limited

    4. Inability to protect flash AS

    5. Inability to import .png and .gif files on the fly

    Cheers,

    Niclas

  8. it’s not so important, but I would like a commad to delete automatically all symbols in the library not used in the scene. This cos often u work in file a lot of times and when u have the final product u also have a very large file that u don’t need.

    Best

    MayaM

  9. I’d like to know how to have “right-click” browser features work in flash. For example, if an html website has flash buttons, it would be great to be able to right-click >> open in new window or tab. Instead of the useless flash right-click features. Is there a way to do this?

  10. I second the closer integration with the browser. Ever since I’ve become a firefox junky, flash really annoys me. If there was a way to get all my right clickness in flash, with the flash stuff added in somehow, that would be ideal. Also keyboard shortcuts should seemlessly integrate with Flash. Whether that is really possible would be hard to say – it sounds like it would be hard to do cross-browser.

  11. Not in any particular order.

    – Need to be able to truely protect our SWFs.

    – v2 Component Skinning

    – html/css rendering support is very limited

    These last few are gripes..and don’t really fit,but are worth mentioning.

    – XML.ignoreWhite should be default = true or at least give me a preference option to set it to true.

    – Flash UI freaks out while I am working and loses various and random panes. reselecting my panel layout once or twice usually fixes it.

    – Too many undocumented or poorly documented methods/properties throughout Flash. LiveDocs is a good start, but its not updated often enough and gets clogged with people complaining.

  12. Code protection, code protection, code protection!!!

    Also, someone should address Flash’s lack of GLIC. 😉

  13. Using the “img” tag in textfields messes up the scrollbar behaviour.

  14. Wow. Varied responses. I gather we are supposed to suggest things that you *can* fix?

    I guess things i come across all the time that I’d like to know how others approach are:

    – Architecture approaches- even if you skimmed this would it be great- since most WTF coding is a result of bad architecture ( I’d like to think)

    – Complex preloading in terms of nested items and so forth

    – Optimization of code

    – Flash for team development – process for team development working together on a project

    – How to handle processor intensive scripting

  15. Thanks for the responses everyone!

    Yes, I am looking more for specific goal-oriented problems – not player / IDE / documentation bugs or feature requests. I’m not going to be solving those sorts of problems in a 1 hour session [grin]. More like “how do I deal with preloading” or “what is the best practice for X”, than “Flash doesn’t render 3d natively”.

    Stacey’s items above are really great, and more along the lines of what I hope to address.

  16. Niclas,

    > 5. Inability to import .png and .gif files on the fly

    Check out mario klingemann’s swfimgproxy:

    http://www.quasimondo.com/archives/000407.php

  17. yes, i second the flash development in a team environment…or doesnt even have to be team, just structuring your AS/fla so taht other people can easily understand exactly whats going on.

  18. (1) Lack of BIDI text support.

    (2) Embedded fonts in shared libraries.

  19. A good common problem I see many people run up against is proper font embedding.

    There are always the projects that pop up that need special characters in all their text fields – like trademark symbols and em dashes and registered trademark symbols.

    Then how to load the text (with special chars) from external text/xml files as well.

  20. The documentation really needs attention, and the MM knnowledgebase is shoddy at best.

    Adding CSS styles to a textarea makes it readonly – that’s laughable.

    Dubugging is a nightmare.

  21. I agree with Jesse.

    Proper way(s) / methodolgies to control the layout of UI elements. I am personally struggling with getting a good system happening using AS2 to get various different layouts rendered in larger apps without resorting to use of frames etc.

    I feel I have a good grasp of how to individaully create UI classes, but the master controller is needed !

    I guess this comes down to FLASH SPECIFIC DESIGN PATTERNS.

  22. This seems to be a bit of an odd premise for your session lessons as most “specific goal-oriented problems” which are “faced regularly by Flash Developers” have already been thoroughly answered elsewhere such as the Flash community forums. So my suggestion would be to teach whatever you think would be most beneficial without rehashing too many old concepts.

    Often times people don’t know they have a problem until they see a solution. Your experience should tell you what most Flash users usually overlook.

    If you’re not too concerned with covering old territory then I’d suggest Preloading, Printing, Fonts, Scope, and Debugging as suitable topics.

  23. Here is what I came up with.

    1: Impossible to lock the textarea component. Had to use the old dynamic text field and the scrollbar component instead. Which means no mouse-wheel support.

    2: Inability to measure textformat matrics when using (x)html/xml with css.

    3: Font handling regarding animation of fonts – it is not that straight forward to embed font outlines.

    4: Code samples and documentation has become better. Still I experience wrong documentation. E.g. It’s documented that the window component has to be loaded before you can assign values to textfFields. So I make a listener listen for the load event. who wouldn’t. Ohh I as wrong I should have used the complete event instead. Just tell me to use a listener and listen for the complete event. Another issue is with the mediaplayback component’s eventobject of the cuepoint event. Typically one uses eventobject.target.name but oh no instead try eventobject.cuepointName.

    5: It can be very hard to get the eventdispatcher class work using inheritance it should be as easy as using composition.

  24. – html links in html textfield limited to 128 cars

    ans: use asfunction to call up a function and run getURL with your long link 🙂

  25. While Flash applications are fun, I believe there is a lot of gray area about how to use basic AS2 principles to effectively setup a “traditional Flash web site”. Best practices or a framework for dynamic navigation, preloading sections, animating sections in and out, and managing states within simple Flash sites would be very helpful for a lot of interactive designers out there trying to apply AS2 to their projects.

  26. Do you guys think Macromedia can benefit from a website like http://maya.digication.com? This is a site set up by Digication for collecting feature suggestions from Maya (the 3D software used for almost all current films) users. The cool part is that users can vote on the features… This has been up for a few years and Alias has been responding to user requests according to their votes.

    Jeff

  27. – How to set up and use Subversion successfully on your local system using a local repository ?

    and then I “second” Stacys suggestions for

    – code optimization

    – how to handle processor intensive code

  28. chris daubney May 5, 2005 at 1:35pm

    best practice for organising and managing flash development files during/after project:-

    – how to organise project files/folders on hard drive/server to avoid unnecessary duplication

    – how to organise custom component development files and apply updates throughout flash project

    – best use of Common Libraries

    – version tracking and maintaining components

    – project archiving, organising files for reuse

    – project documentation

  29. Accessibility issues:

    – Tab order loses its focus (and restarts) when users switch to a different application and switch back

    – screen reader will not read text when being deleted from an input textfield

  30. Mike Fosker May 6, 2005 at 6:42am

    I’d like to know how to automate a nightly build process.

    I tried using AutoIt to automatically publish a project, with some success, but it’s not very reliable.

    I think that I may be able to get a JSFL script to load the project file as XML and then iterate through the entire project, publishing each file as it goes. But I’m buggered if I can figure out all the code to do it.

    Debugging of projectors. How?

    Local Connection objects, and communicating with C++ apps. Apparently some clever chap has got C# speaking to flash through LCO. How?

    A general overview of best practise in team environments with OOP would be very useful.

    Thanks

    M

  31. 1) how making a 100% flash site somehow visible to search engines?

  32. I would really like a good way to be able to add event functions in oop, and to be able to call classfunctions from a eventfunction within a classfunction…

  33. Kristopher Schultz at May 4, 2005 09:57 AM wrote

    > 3) Supporting bookmarking.

    This is a problem which I addressed when developing Move. Move is a tool I created for creating content-rich Flash websites. Each page of a Move website gets assigned a unique identifier when creating it. This ID can be specified in the URL in order to jump directly to that page within your all-Flash website.

    For example to go directly to the About Move page of my website, you would enter “http://runtimelogic.com/loader.html?page=About%20Move” as the URL. The page variable is the URL encoded ID which you assigned the page. This way you are free to reorganize the heirarchy of your content on the site but the link will always work, as long as the page exists.

    Someone else mentions Flash integration with search engines. This is an interesting topic as well. No solution as of yet for this one, so probably not the best topic for your session, but I have a feeling there will be a solution for this one soon.

    Good luck with your session.

  34. Bookmarking/Deep Linking would be a good one as it’s a small but important part of the Flash RIA dream, really needs to be implemented on more Flash sites.

    No need for another tool though as a good solution already exists with Kevin Lynch’s BrowserStateManager, and Geoff Stearns Flashobject.

    I’ve posted some notes re combining the two scripts to enable bookmarking/deep linking at:

    http://www.magicpixel.com.au/tutorials/flash/deeplinking.cfm

  35. PROBLEM: After making the trasition to AS animation versus timeline (in order to be able to make quicker animation edits, smaller file sizes, and have different / more external control) one problem I always faced was the disorganized mess of MCs all placed in their “starting positions” off the stage in the authoring environment; if I was to have an intro enviroment.

    SOLUTION: I created a MC protoype extension for gathering each movieclip’s “landing position” (now I use an AS2 class, and run through all the MCs on the stage). That way, I could layout the design in flash, with all objects in their correct, landing positions and during initialization, I could use script to run through and and store all the “landing position” properties of the objects, then use script to shove everyting off stage, and then animate in.

    Lex

  36. Grant,

    As they say a for most projects 60% of the work is planning. one thing i like to see is how diffrent developers approach the planning stage of a complex project be it in flash or whatever. I think that would be a great start to what sounds like a good session.

    James

  37. What about Flash disabling browser shortcuts? like Ctrl+t fo new tab, F6 for URL, etc.. many people use them :/

  38. Good topics so far but I have a few new ones:

    Dynamic data binding at run time (XMLCon to DS etc…)

    Preloading of AS2 Classes & Components so that the hangup on frame 1 can be avoided in RIA’s of medium to large size.

    Scenarios for using AS2 databinding on frames other than frame one. Currently I’ve been loadin all AS2 components in one swf and then exporting them for runtime sharing to another swf that actually uses them. This is sortive working:)

  39. -making the scrollpane work as good with actionscript as it does in designtime (constructor problem -had this problem a while ago, needed to install other scrollpane class to be able to attach swf dynamically-)

    -browser compliance! it !seems! that firefox and opera are not able to use the flash object properly –>i have no mousescroll activity, cursor in inputtextfields,character restriction is different (e.g. i cant type ? in firefox but i can in IE)

    -ability to encapsulate swf’s (when you try to show swf for instance flash cartoons that sometimes use actionscript code for the cartoon, this cartoon actionscript can mess up your interface..)

  40. The way that Flash treats html-text in textfields is lousy. Especially when handling multiple images in ONE textfield (just wanted to slam my head through the screen after 6 weeks of building on a big CMS driven Flash-site). Images overlap.

    I think this is one of the MAIN items that need a lot of attention by MM.

  41. I’m currently using Flash 5 on a PC. I have a total of 39 scenes with audio. For some reason when I test the movie it stops at scene 10 and the audio continues. I tested the scene and it works fine but when I debugg the movie it stops at frame 1601 in scene 10. What is the solution please?

  42. hello, i am a doing a project for media arts and i made a really long animation (over 2000 frames) and i am ready to export it. the problem is i matched how big i wanted the movie when i pressed “Control”-Test Movie. The movie is bigger than it is supposed to be. Since it is over 2,000 frames, i do not have a lot of time to reformat all the frames, but is there any way i can make the stage bigger. When i try to do this it always goes to the downright position. can i make the stage bigger the same way i do Edit-Transform-Scale. I really want to publish this movie as a GIF, but i want it to look nice and formatted. please respond may address is Zakdawak2001@aol.com. Thanks!

  43. Z.A.S:

    This is really a question for something like Flashcoders.

    http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

  44. a simple frame rate tracker in AS2 perhaps in class form would be helpful and appreciated 🙂

Comments are closed.