Top JSFL bugs to fix

Categories:Blog

I'm lucky enough to be Beta testing the new CS7 version of Flash, and even luckier to get a very small amount of say regarding the JSFL implementation for the final release. I'm under NDA, so that's pretty much all I can say here :)

One of my main aims is to get Adobe to fix some of the show-stopping bugs in JSFL, so here’s my list, in order of importance:

  1. Fix all empty JSFL error messages, especially inside of fl.runScript() (link)
  2. Make sure Timeline and Frame events fire in the correct order (link)
  3. Ensure library item selection updates properly for library.setSelected()(link)
  4. Fix frame and timeline setSelection bug, which seems to toggle, not set, selections (link)
  5. Fix matrix bug in setCustomFill()(link)
  6. Have all XUL elements dispatch change events
  7. Have all XUL element values be settable via JSFL
  8. Ensure running scripts do not timeout after 20 seconds or so when getting values from a XUL dialog (link)
  9. Fix E4X pre-declarate filtering, so you don’t need to do this to use E4X filters: var b =  a.*.(function::attribute("id") == ’b’); (link)
  10. Would be great if relative file paths worked! Relative to the JSFL file, ideally. (link)

And while we're at it, some feature requests:

  1. Access values in the middle of a tween
  2. Unlimited workspace area
  3. Add JSFL access to undo / redo or history states
  4. Add "begin undo" and "end undo" commands, with support for try/catch
  5. Make JSFL access on shapes less twitchy and crash-prone
  6. Access to stage pan as well as zoom (so we could zoom to object)
  7. Ability get the currently-edited-in-place timeline's path to top-most-parent timeline
  8. JSFL "PropertyChanged" event
  9. JSFL right-click menu item and registerable commands

What do you think?

I’m sure there’s some real gotchas I’ve forgotten, so please add to this list, along with the number in the list you think the fix should go at, and I'll see what I can do about raising them.

Cheers,
Dave

11 Responses to Top JSFL bugs to fix

  1. David Hernston says:

    Erp! Fwip! I’ve been trying to get in on the Flash beta program for years, both in relation to animation an JSFL! I’ve run into so many bugs and annoyances that I’d LOVE to see fixed, though at the moment the only one that’s coming to mind is how in CS5 something changed with the screen update code which makes it so that the screen doesn’t update until a second or two after a JSFL command ends, unless a new one is started. It makes my persistent-selection frame forward and back commands much less useful, since you can’t see the animation as you go — you have to pause in your frame flipping to see what the frame looks like. That’s probably the biggest reasons I’m still using CS4.

    Anyway, if you haven’t already you should check out my web site. I have a bunch of Flash commands up there, including some real game-changers. Also, if you have any sway with the dev team I would LOVE to get in on the beta program.

  2. Dave Stewart says:

    I’ll send you a mail!

  3. Pierre Chamberlain says:

    It’s a little bit funny to see the similarities of what I’ve experienced with JSFL so far, coming up in that list you’ve made!

    I definitely would love to see CS7 address issues:
    1 – JSFL blank error messages
    6 – XUL Dispatch Change Events, and also have the XUL element dispatch oncreate Event for all elements. AND… give access to XUL elements so that other declared JSFL methods and objects can be called from the XUL dialog box).
    7 – Definitly provide a way to set XUL ahead of time. Creating dynamic XUL scripts is not fun!
    8 – Timeouts should be configurable (and disabled, optionally).
    9 – Fix for E4X, and so that we don’t need to use a find-and-replace method to strip out the declaration line before Casting the string content to an XML object. (Might be a separate issue…)
    10 – Relative paths would be a godsend indeed!

    Some other ones I’d like to add:
    11 – Make all Flash functionality available in JSFL. No Exceptions! for example, there is currently no (documented) way to apply “Convert to Frame by Frame animation” on Motion Objects like you can by right-clicking the framespan that is affected.
    12 – If not all elements are to be made available, at least provide a contextMenu property (or class) that can access the options on a given object, or the main File menu (File, Edit, View, Insert, Modify, etc.). Sending Key-strokes too could be helpful to navigate through the options, basically like a Macro script engine (compatible for both Mac and PC though).

  4. Dave Stewart says:

    Good news on some of these items: 1, 6 and 7 have been fixed! I’ve added some requests that have been deferred, but these have all made it in, which is great.

    We may get the ability to grab animation values between keyframes well – not sure what the status is on that one at the moment.

    Right-click menus (another request) have also been deferred, which is a shame, as have a more advanced event model. The Event bug with Timeline and Layer events HAS also been fixed though, so that’s a blessing at least.

    Adobe are definitely listening regarding extensibility. Hooray!

  5. Maor says:

    Debugging swf panel!!! if it was possible to connect flash builder or some other debugger to the swf panel it would be awesome!!.

    only one ive manged to connect is monster debugger which doesn’t support stepping and watch expressions.

    this should be relatively easy as the panel does run in debug mode and could connect to remote debugging quit easily…

  6. Dave Stewart says:

    How funny! I emailed Adobe last week about this, asking if it was possible for panels to run the debug player, and the answer I got was “Good question, but I don’t have an answer now. I’ll get back to you on this after talking to the relevant folks”.

    I mainly use the FlashDevelop debugger for testing panel SWFs in development, then MonsterDebugger when panels are live. It sure would be nice to catch breakpoints live though :)

  7. Maor says:

    iv’e been dabbling with it for a week now, tracing capabilities.isDebugger from a loaded swf outputs true, also the System.pause/resume which are only for debugger version work and sockets work to…

    So by theory it should work…

    I would love to hear the answer to this when you receive it!

  8. Michael says:

    Please look at sorting an array of numbers.

  9. CuriousCoder says:

    Hey guys,

    Thanks for all the effforts here with fixing up flash.

    Has adobe fixed the setSelectedLayers bug? Some of my commands stopped working after CS6. Are there any workarounds?

    Cheers
    CC

    PS
    Anyone else notice there are alot of Dave’s in this jsfl game?

  10. Dave Stewart says:

    Hey CC,

    Hmmm… I wish I knew!

    I haven’t looked at this project or used JSFL for a good few years now.

    If you want to make a list of things that don’t work and send them my way, that could be useful. I can at least log them even if I don’t get round to providing workarounds!

    PS. Who are the other Daves :) ?

  11. Ismael says:

    FLA-based components need a live preview SWF embedded in the FLA to have the component appear properly on stage when the user drags it there. As I mentioned, I can easily create that SWF with JSFL, but making my component use (or later update) that SWF is another story.