Free Update to Flash CS4 Project Panel

As many of you know, the project panel in Flash CS4 is a rebuilt version of the gProject panel that Adobe acquired from us. For a variety of reasons, the project panel shipped with a few rough edges that I was never entirely happy with. So when we had some free time here at the office, we looked to rectify some of those issues. Here are the major changes:


  • Skinned to match the CS4 interface (based on Library panel)
  • Tightened up the actions menu
  • Added a utilities submenu, which you can add your own utilities to
  • Specify whether to open files in Flash or via the OS on a per file type basis in Panel Preferences > Settings
  • Option to import assets to stage or library in Panel Preferences > Settings
  • Shrunk some dialogs, and made them scroll to reduce minimum panel size
  • Added more file type icons
  • Added an API for scripting the panel with JSFL (details below)
  • Minor UI tweaks

Note that this update is unrelated to Adobe (though it is distributed with their blessing), and is provided as a friendly service of gskinner.com. We are not getting paid to make these updates, and are not officially supporting them (though please feel free to provide feedback in the comments, and we’ll see what we can do).

There are a few things I would still like to address, but its unlikely to happen in the near future:


  • Making it so directories don’t collapse when you compile or refresh (requires time)
  • Enhance project portability (requires time)
  • Making all of the panel icons consistent with other panels (requires time or assets from Adobe)
  • Multi-compile without opening FLAs (requires JSAPI support from Adobe)
  • Move dialogs out of panel (requires bug fixes from Adobe)
  • Support scroll wheel on Mac (requires support from Adobe)
  • Remove default items from context menu (requires support from Adobe?)

You can download the updated project panel by clicking here.

** UPDATE: Users of Flash CS5 and above will need to download this update instead, which installs a separate project panel. Read more here.


Project Panel JSAPI
There are a couple of limitations with the swfPanel API in JSFL that have forced us to use some unusual approaches:


  • Due to a bug with the JSFL swfPanel api only one parameter can be sent, and that parameter must be of type string. Therefore multiple parameters are passed as a semi colon separated string.

    createProject("uri;name;asVersion");

    instead of

    createProject(uri, name, version);

  • The swfPanel.call method can only return string values, so boolean or numeric values will be returned as a string. Actual string values are returned as a string, but within quotation marks. Arrays are returned as a semi-colon delimitated string (within quotation marks). For example, the actual value of a returned array will be a string: “value1;value2;value3” (including the quotation marks).

We have documented the the API below as though these limitations did not exist. Note that where an API supports a “path”, it will accept both URIs and relative paths.

createProject(uri:String, name:String, asVersion:Number) // asVersion can be 2 or 3, uri can point to an FLA or a directory
createQuickProject()
openProject(uri:String)
// Recent project list:
getRecentProjectList():Array
// Project settings (affect current project):
getName():String
setName(value:String)
getURI():String
setURI(value:String)
getASVersion():Number
setASVersion(value:Number) // value can be 2 or 3
getClassTemplate():String
setClassTemplate(uri:String)
getSymbolClassTemplate():String
setSymbolClassTemplate(uri:String)
runCompileList():Boolean
getCompileList():Array
addToCompileList(uri:String):Boolean
removeFromCompileList(uri:String):Boolean
getLocationNames():Array
getLocationURIs():Array
addLocation(uri:String, name:String)
removeLocation(uri:String):Boolean
getFlexSDKPath():String
setFlexSDKPath(value:String)
// for source, library, and external lib:
getLibraryPaths():Array
addLibraryPath(uir:String)
removeLibraryPath(uri:String);
getSourcePaths():Array
addSourcePath(uri:String)
removeSourcePath(uri:String)
getExternalLibraryPaths():Array
addExternalLibraryPath(uri:String)
removeExternalLibraryPath(uri:String)

You can also download a sample JSFL file that uses the API here.

Grant Skinner

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

@gskinner

38 Comments

  1. Thanks Grant, looks like good times.

  2. Just a quick note on install: if you double-click the installer and it tells you that you need Flash 10 or greater to use, it is because it tried to open it in the CS3 Extension Manager instead of the CS4 Extension Manager.

    The quick fix is to open the CS4 Extension Manager and then open the MXP file within the Extension Manager. It will then install without issue.

    HTH

  3. it would be nice to be able the default publish path for the project.

  4. grant + team, thanks for putting the time into this. it’s a great update, just still wishing it had some bug fixes plus mouse scroll wheel support, but looks like that is more on adobe than you guys.

    has anyone experience a weird triplication of any folder or files below the first item when expanding a folder in the first item of the panel? i’ve had it happen on several different machines, with fresh project files.

    first i thought it was related to .svn files being present, but even using a fresh clean project folder structure produces this. anyone else seeing this? if you have, have you found a solution?

    it’s really making working with a project annoying to have stuff tripled whenever you expand a folder.

    but thanks again.

  5. dmac – I haven’t seen that behaviour. If you’re able to come up with a consistent way to replicate the problem, we’ll take a look at it.

  6. Works Great, thanks Grant!

  7. Nice update, I didn’t know you created that window, its really helpful whenever I use it.

    Thanks =D

  8. Hi Grant,

    thanks for helping all the community with you work. You are an inspiration for a lot of people.

    I love the gProject panel, I bought the first version and I’m always happy with it.

    I notice in this update that the font in all the panel is really bad looking. I’m on Windows and the font is not clear.

    If you need I can upload a screenshot on my website.

    Thanks

  9. I’ll have one of my guys take a look at the font rendering on Windows. Not sure what’s up with that.

  10. Riccardo; I’ve just uploaded a new version of the Project Panel that resolves the Font issue for windows. Just use the same download link and re-install the .mxp

  11. great news!

    but still, on mac os mouse wheel doesn’t work

    although i think it’s the same flash player bug

    and there isn’t a simple solution for it :/

  12. Jason Peinkofer March 22, 2009 at 7:11pm

    I cannot apply the update on mac. The extension manager just crashes.

  13. grant, here’s one way i’ve consistently gotten the bug to appear.

    1. reset panel to default settings.

    2. create a clean project (fla + a couple of folders for AS classes, with two main roots, such as com.test and org.test).

    for example:

    com/

    com/test

    com/test/TestProject.as

    org/

    org/test

    testproject.fla

    testproject.swf

    3. create a new project, set the project root to your test folder.

    4. expand either the com or org folder, they should only appear once.

    5. go into the panel preferences, turn off “show recent files” checkbox.

    6. quit flash

    7. reopen flash, project should still remain open in project panel, minus the “recent files” folder.

    8. expand either the com or org folder. all files/folders below the first item (com folder in my example) will be duplicated

    com

    org/

    org/test/

    testproject.fla

    testproject.swf

    org/

    org/test/

    testproject.fla

    testproject.swf

    org/

    org/test/

    testproject.fla

    testproject.swf

    the com folder structure remains intact, with only the single folder showing up.

    in order to reset it normal behavior, reset the panel to the default settings, and don’t uncheck the “show recent files”. if you zip up the project, or check it into SVN, it remains fine on the other machines, but only if the “show recent files” checkbox is left intact.

    i think that is the crux of the matter, the “show recent files”. i didn’t discover that until tonight when I was reseting everything to try and reproduce this bug for you and noticed it didn’t happen when I had that checked.

    i guess that’s a stop gap for now, but i hope these steps can help you and your team solve it.

    thanks again.

  14. Hi Grant

    i was one of those wishing for the Utilities menu.

    I’ve now installed the update, and i still don’t have it (the U. submenu).

    Am i missing somethinig? Where is it supposed to be located?

    Actually, now that i checked, i don’t see the items in Panel prefs/Settings you’re mentioning, so it seems my panel is not updated at all.

    (i’m not 100% sure if there’s differences from before i installed the update, because i haven’t actually started to use my recently installed CS4 – needing gProject being the main reason!)

    I installed the update from inside the Extension Manager CS4, and not by doubleclicking the mxp file, in light of Jon MacDonald’s comments above. However, the X Manager tells me the update was successful.

    But from what i can see, nothing actually changed in the Panel.

    I’m on Win XP.

    Anyone else experiencing this?

  15. Karo – If it installed correctly, your project panel should have a small “g” logo in the top right corner. Did you restart Flash after installing (just to be on the safe side)?

  16. No g logo πŸ™

    Restarted Flash of course, and then in desperation even the computor.

    Then removed the extension, and reinstalled it via doubleckick (there was no version issues after all – CS4 xmanager opened on doubleclick)

    Restart, reinstall, reboot, reinstall, restart, re, re, re… no help.

    Can’t imagine what could be the issue.

    And to think that i was literally waiting for this update to start using CS4…!

    I wish i could provide more info or a way to ‘reproduce the bug’. But how do you reproduce this on a machine where the install simply works…?

  17. Good news for you, bad for me: it’s not a gPanel thing, it’s my Extension Manager… I’m installing (other) components, and they don’t appear either in Flash, although everything seems fine in XManager…

    well, at least it’s not your problem anymore πŸ˜‰

  18. Hey guys,

    just want to say thanks gTeam for the update to the panel.

    Couple things that I would be interesting in seeing in the next revision if at all possible:

    1) Being able to run a Publish Project without it collapsing my tree list.

    2) Being able to have “Test Project” act more as a batch compile instead of just compiling the Default FLA. This way i can check off what files i need to be compiled and hit Test Project. I work with a lot of projects that use Shared Libraries and those need to be compiled before the root fla gets compiled, this would be a handy feature.

    just my two cents. cheers!

  19. Thank you guys for resolving the font issue on Windows. Now it looks a lot better!

  20. Thanks Grant, it is great improvement:)

    Karo, I believe it has to do with non-us OS, you can find the solution at my post: http://www.xllusion.net/ed/2009/03/29/components-not-shown-up-in-flash-cs4/

    cheers

  21. > No g logo πŸ™

    > Restarted Flash of course, and then in desperation even the

    > computor.

    > Then removed the extension, and reinstalled it via doubleckick

    > (there was no version issues after all – CS4 xmanager opened

    > on > doubleclick)

    > Restart, reinstall, reboot, reinstall, restart, re, re, re… no help.

    Me too. Identical problem. No g logo. Everything looks exactly the same as it did before. I did use the CS4 Extension Manager.

    > Good news for you, bad for me: it’s not a gPanel thing, it’s my

    > Extension Manager… I’m installing (other) components, and

    > they don’t appear either in Flash, although everything seems

    > fine in XManager…

    My other components do appear and work fine.

  22. James… Ed’s solution above worked for me, it may be worth a try

    Hi Grant

    As i said, Ed’s solution worked, and finally i have the G-empowered Project panel.

    Works good, except my favourite feature: Update UI Elements… i get “class not found” error for any class i try to update; even immediately after creating one.

    There is additional bug (or is it a feature?): it is taking the symbol library name as the class name, and not the name of the linked class. My symbols rarely have the exact same name as the linke classes (for example, i have lowercase symbol names)

    But be it as it may, renaming – or initially naming – the symbol to same (and same-case) name as the class, doesn’t solve the not-found bug.

    Anyone else having same problems?

    greetz

    k++

  23. Hi Grant,

    I use the flashlog.txt file for online debugging purposes. I’ve been seeing a number of messages appearing there that had nothing to do with my project. I’ve finally realized they’re coming from the Project panel. Below is a selection of what comes up:

    TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at fl.project.views::ProjectTree/updateContextMenu()

    at fl.project.views::ProjectTree/onMouseMove()

    TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at fl.project.views::ProjectTree/updateContextMenu()

    at fl.project.views::ProjectTree/onMouseMove()

    TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at fl.project.views::ProjectTree/updateContextMenu()

    at fl.project.views::ProjectTree/onMouseMove()

    Warning: ‘n’ has no property ‘nodeValue’

    load: http://www.gskinner.com/blog/sidebar.xml

    Warning: loadHandler is not a function

    Warning: resizeHandler is not a function

    Warning: ‘p_num’ has no property ‘length’

    Warning: resizeHandler is not a function

    Warning: expandHandler is not a function

    Warning: resizeHandler is not a function

    Warning: resizeHandler is not a function

    Warning: resizeHandler is not a function

    Warning: resizeHandler is not a function

    Warning: resizeHandler is not a function

    TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at fl.project.views::ProjectTree/updateContextMenu()

    at fl.project.views::ProjectTree/onMouseMove()

    TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at fl.project.views::ProjectTree/updateContextMenu()

    at fl.project.views::ProjectTree/onMouseMove()

  24. David – Any chance you installed it for Flash CS3 instead of CS4? If not, we’ll take a look – I haven’t seen any of those errors.

  25. I’ve only got CS4 installed on this machine.

    Those messages don’t appear in the Output panel, mind you, but in the log file. I’ve had trouble in the past getting feedback from my own components–I never thought to look in the log file, which seems to catch a few more messages.

    That file is located at:

    Windows XP: C:\Documents and Settings\{user}\Application Data\Macromedia\Flash Player\Logs\flashlog.txt

    Windows Vista: C:\Users\{user}\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt

    OSX: /Users/{username}/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt

  26. In Flash CS3, you could have Flash automatically save all modified project files before testing a project. You could also assign a shortcut key to the Test Project button. Are either of these things possible in Flash CS4?

  27. dmac: I have also had the problem with three copies of files appearing inside the panel.

    A solution I found is to go into the panel preferences and under locations just tick the “Specify additional ….”.

    After this just refresh the project.

    Unfortunately you will always have the locations folder showing but it’s not half as bad.

    This worked for me so maybe it will work for you.

  28. hi,

    thanks for your extension.

    is there any meaningful reason why it’s not allowing more than 6 projects in the panel? after adding the 7th, it’s removing the first one I’ve added (the last one in the list).

    I’ve also experienced really bad double-click performance. when double-clicking a file nothing happened sometimes – but with your update I think that’s gone.

    Using a registered copy of cs4 pro. (win xp) installed from the orignal DVD.

    hope there’s a solution to that,

    filip

  29. oh, i thought the list is a permanent list of all projects that i’ve added. now with the new wording “clear recent projects” it’s more obvious that it is just the recent projects…

    well, i’d like to have a complete list please πŸ™‚

    just like it is in dreamweaver.

    thank you πŸ™‚

    filip

  30. I’m just wondering here —

    why would it seem obvious or at all logical to have removal of a folder / item from the panel cause it to be removed from the filesystem?! Since this new panel I have to wade through dozens of deprecated classes in big projects that I don’t need to be seeing — and I have to wade through them without being able to use the scroll wheel?!

    Also, the triplicate error happens when you pin a folder. Every time, for me.

    No offense, but this piece of code even with the update was nowhere near ready for release as the project panel for a serious (and seriously expensive) application. Grant, I’ve been a fan of yours for a long while, and I don’t blame you for this; but this panel makes it such a headache to organize my work that I think I’m finally going to drop the IDE and switch to Eclipse.

  31. there is no shift or ctrl click i think it’s good to add this please

  32. I’ve been using flp’s in cs3 and have now updated to cs4.

    I’ve been experimenting a little and found some issues.

    When you create a new project and choose a folder that already has one, no notification is given that a project already exists there, nor a choice wether you want to overwrite it or not. and a new project is created, with the name of the previous project. Not the name you’ve just entered.

    I also noticed that the configuration file uses absolute paths, while FLP’s use relative paths.

    This is no problem if you’re the only one who uses the project and never change its location.

    But it messes up when you want to move the project to a new location (you have to select the new path completely from your computer root because the ghastly folder-selector is used).

    And when your project is on a mapped network share. It won’t work when someone opens it who uses a different driveletter, or when its opened on a mac (which use a smb:// path instead of y:\ etc)

    Now I haven’t experimented on a mac yet, but I’m guessing the following situation will occur:

    If you make a project on a mapped network drive on a PC, and later open that project on a mac (which uses a different path to get there) you’re prompted that the root folder is missing, so you select the correct one for the mac.

    when you later open the project on the PC again, it wont find the smb: path there, so will ask you to locate it again. which will cause it to fail again if the Mac tries to open it again

    etc. πŸ™‚

    And my final issue: is there no way to make a file (like .flp files) which you can open from explorer directly, so that you open project? its nice that we have a recent project list, but on computers that haven’t opened the project before they HAVE TO use the folder selector to locate the correct rootfolder of your project. (which is a pain, because the folder selector always starts from your desktop (on pc’s)

    regards,

  33. The beauty of the CS3 project interface is its visual simplicity at organizing necessary project files in an easy to access way that allows for quick linking and opening of Class files from external packages.

    It is an excellent compliment to the Publication Settings window where whole folder packages are linked to the compiler. The compiler knows where to go to get the needed files, and the user only has to link up or create those files visually needed for the project.

    It’s hard to believe Adobe would release a program that doesn’t support, at a minimum, the previous verion’s project-creation structure, and would release something as buggy (not-ready-for-prime-time) as this. Where on earth was the risk analysis by the project management in charge of this blunder? Didn’t alarm bells go off when someone said, “Oh, by the way, we won’t be supporting CS3 projects?”

    The company I work for has a central repository of AS3 that I and others check out and use locally. I have 40 projects on my computer in CS3 and 20 in the queue (10 of which are coded and waiting on finished graphics). I would like to import these projects into CS4 to either just update or to also use the newer CS4 AS Classes, and I would like to maintain my linked Class files in each project. How can I easily do that?

    What is the point of Class packaging if CS4 Flash projects across an enterprise organization require Class duplication from folder to folder at the expense of interlinking to Classes from packages?

    What do you think the reaction would be if a version of Photoshop came out and didn’t support opening the previous version’s file layers and structure?

  34. I’ve been using cs4 and have any questions while using JSFL functions.

    1. fl.createProejct() / fl.openProject() / fl.CloseProject() / fl.getProject()

    According to the flash cs4 extension manual,

    JSFL createProject() function does not support.

    Is there any way to replace the above function does?

    2. cs4 .flashProjectProperties

    Without using the Project panel, i want to make .flashProjectProperties files.

    How can i create a cs4 .flashProjectProperties?

    regards.

  35. I recently upgraded to Flash CS5.

    Your panel works fine in CS5… The reason I installed it…. as far as I could tell, Adobe never fixed the scrollbar issues in their Flash Project panel (which drives me crazy) going from CS4 to CS5. No DragOff handler on the scrollbar. I like your panel better but I may suggest a couple noted bugs/improvements. The panel does not scroll on a mac.. would love that feature added. Also, sometimes, items will be activated on rollover and click but they fail to launch the item. I usually have to click something else then rollover then click. Curious if you have prevented the clickHandler before the tween is complete for the activation and launch of an item.

    Other than those two issues, still a great panel to use.

  36. In case anyone has same issue as me…

    I’m frequerntly using the Utilities/Update UI Elements feature. One thing bugs me from time to time: when i update a class, i get elements typed as “button”, “movie clip”, etc – instead of SimpleButton, MovieClip, MyCustomClass…

    It happens only occasionally, but it’s annoying because i have to then manually revert type declarations to proper values.

    I just discovered what is going on, so hopefully it helps someone.

    —-It happens when there’s no auto-import block in the class—-

    As to why it’s sometimes not present, or dissapears, i’ve found one situation, but there may be more: when you first create the class via Project panel, if you don’t have any named elements initially, then the block gets removed.

    To prevent this, open UIAutoFill.jsfl (in Flash Application Data…Configuration/Project folder), and comment out line 106:

    contents = contents.split(IMPORT_HEADER).join(”).split(IMPORT_FOOTER).join(”);

    this will prevent the removal of the auto-import block, and hence the wrong typing issue.

  37. The crowd was in shock that he would give up his throne for righteousness.
    I did some logo and billboard designs for a local rent to own company.
    But, I need a noble steed to help me; what about you, Reepicheep.

Leave a Reply

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