I. InstallationTo install or upgrade the gProject panel in Flash MX 2004 7.2 or Flash 8:
- Close Flash
- IMPORTANT: Remove any previous installation of the gProject Panel from the Macromedia Extension Manager before installing the new version. Your preferences will not be deleted.
- Install the gProject Panel.mxp. Ensure that it is enabled for the correct version of Flash in the Extension Manager.
- Run Flash, and open the gProject Panel in Window > Other Panels > gProject. You may need to open/create a FLA document to do this.
- IMPORTANT: gProject stores all class files in a subfolder named "classes". If you haven't already done so, add the classPath "./classes" into your actionscript preferences. Alternatively, you can change the class path to "", or "/".
- Bind any Commands you would like to use to the appropriate keys. For example, bind the "gProject-Test Project" command to "CTRL-ALT-P", overwriting the default "Test Project" action used by the Flash Project Panel. More info on commands can be found in Compiling
- gProject 1.2 and below does NOT work with projects stored on a network. Version 1.3 and up resolve this issue.
- gProject requires Flash MX 2004, version 7.2, or Flash 8. It is recommended for use with the Professional version, but will still function in the Standard version, although it will be missing key features.
- When binding keyboard shortcuts to the Project Panel, Flash can sometimes confuse which panel to open. If this happens, disable/enable all custom panels in the Extension Manager.
- To clear all preferences, delete the "gProject Panel.plist" in the gskinner/preferences/ directory of the flash configuration folder.
- If running multiple versions of Flash, multiple versions of gProject will exist, with a seperate list of Projects.
- Occasionally, Flash opens the wrong custom panel. If you experience this problem, follow the instructions at OddHammer.com
- Ensure your classpaths are set correctly, otherwise flash will be unable to find classes created by gProject when compiling
II. Adding Projects
- Click the Project Menu Icon in the top left, and select "New Project"
- Browse for an FLA to use as your project anchor (your main FLA file for the project). You can change the anchor at any time.
- Choose a name for your project. gProject will use the name of the enclosing folder by default.
- The project will be added to the project listing dropdown, and gProject will display the contents of the directory that the selected FLA resides within.
- You may be required to create a temporary FLA in the folder you wish to use as the project directory if you wish to use an FLA as the Project Anchor that is NOT in the project root.
- Flash reads the directory of the initial file you choose. To change directories, you need to create a new project.
- If you wait for more than 6 minutes with the "select file" dialog open, the gProject panel will throw a "script is taking too long.." error (Flash MX 2004 only). If presented with this dialog, click "No" to allow the scripts to keep running.
- When connecting to a network path that requires a password, Flash may time out. Make sure to connect to the path in explorer before opening in Flash.
III. Quick Projects
Version 1.3 introduces an easy way to use gProject to quickly create a temporary project based on the currently open FLA. The Quick Project is identical to any other project, however you can only have one at a time. The Quick Project will be available until you delete it, or overwrite it with a new Quick Project.
To Create a Quick Project:
- Select the "Quick Project" item in the main menu.
- A temporary project will be created in the project selector named "** QUICK PROJECT **", using the frontmost open FLA as the anchor file.
- To remove the Quick Project, delete it from the project menu (like any other project)
- In the event that you already have a Quick Project (and the project path exists) when you create a new Quick Project, you will be prompted to overwrite the old one. You can choose to save the old Quick Project, overwrite the old one, or cancel. If you save the old one, it will be added to the project list, and the new Quick Project will be created, and selected.
- You can save a Quick Project as a permanent project at any time by choosing "Rename" in the project menu. Once it is renamed, new Quick Projects will not overwrite it. All project preferences and recent files will be maintained.
IV. Deleting Projects
- Select the Project you wish to delete
- Click the Project Menu Icon, and select "Delete Project"
- The selected project will be removed from the project listing dropdown
- Deleting a Project Does NOT delete the files on your hard drive. Note that this is different from deleting individual files, which actually removes the file completely.
V. Managing Files
gProject allows you to open, create and remove files and folders.
To Open Files, double click the desired file. Note that not all files have behaviors associated with double-click. Double-clicking folders will open the folder in Explorer (Windows Only) -- There is also an "Explore" options in folder context menus.
JSFL Files will open for editing by default. To run a JSFL script, right-click, and select "Run". Double clicking a JSFL file while holding the ALT key will also run the script.
To create a file/folder:
- Select the folder (or a file in the folder) in which you want to create the file. If there is no selection, the new file will be created in the project root.
- Click the "Create File" or "Create Folder" button found in the bottom icon tray.
- Choose a name and a filetype (files only), and click submit. Check the "open" check box to open the new file in the Flash IDE.
- The new file will appear in the listing, and optionally be opened for editing.
- Select the file/folder you wish to remove.
- Click the "Delete File" icon in the far right of the icon tray, or press the "delete" key on your keyboard.
- Confirm your selection. Note that this will delete the file on your harddrive.
You can also use the right-click context menus to access these options. Right-clicking on any file or folder will present you with list of all the tasks that can be performed on that item.
- Flash MX 2004 can not open FLAs created in Flash 8, and will give you a JSFL error.
- Creating a file will not overwrite existing files.
- Deleting a file or directory can not be undone, and removes the file from your computer completely.
- Deleting a folder also removes its files and subdirectories.
- Known limitation: Mac version of JSFL will not remove empty folders. Create a sub-file to workaround. (Fixed in v1.3)
VI. Adding External Folders
Starting with version 1.3, the gProject panel allows for the addition of folders external to the project root. Paths can be added (and shown/hidden) on a global basis, or by project. Locations act as any other folder, and have all the same functionality as folders in the project directory.
- Open the Panel or Project Preferences
- Select the "Locations" tab.
- Click the "Add" button.
- A browse-for-folder dialog will pop up in Flash 8. Flash MX 2004 does not support browsing for folders, so you will need to select a file inside the folder you wish to be added as a location.
- Choose a name for this location. Location aliases can be changed any time.
- gProject supports Network paths. Network Locations are indicated by a different blue folder icon
- You can not delete/remove a location in the file browser. You must remove them using the locations panel in the preferences.
- Locations are searched when using the Utility Functions, such as "Find Bound Classes".
VII. Creating Classes
gProject has built-in support for creating template-based classes and unit tests within a package structure. You can use the "Create Class" button in the icon tray to add class files into specified packages, such as "com.yourname.views.Class". You can set the class path globally in the Panel Preferences, or per project in the "Project Preferences". By default, all class packages get stored in a subdirectory of your project root named "classes".
Changed in v1.3: gProject now shows a "Classes" folder at the top of your project directory, regardless of where the classpath points. The classpath can reside in a sub-directory of your project folder (files/classes), in a directory relative to your project folder (../classes) or anywhere on your computer (file:///C|Desktop/classes). gProject 1.3 also supports classpaths on a network drive, though this isn't generally recommended, as it can be considerably slower.
- The classes folder is indicated by a variation of the folder icon:
- A class folder that resides outside the project folder is indicated by a slightly different variation
Note that if the classes folder resides in the root of the project directory, the aliased folder will not be displayed. The Classes Folder can be turned on/off in the panel preferences' Settings Dialog, which will hide the aliased folder and special icons.
To Create a class:
- Click the "Create Class" icon
- Enter the package path of your class
- Select the "open" check box to open your class file for editing after it's created.
- Click "Create".
- gProject will create the new class file based on the class template, and place it in the appropriate package directory (creating directories if necessary).
The gProject panel also supports binding a class to a movieclip. Select the "Bound" checkbox to create a new movieclip in your library (in the same folder structure as your package path).
To bind to an existing movieclip, select a movieclip in the library, and select the "Use Selected" checkbox. The movieclip will be moved to the appropriate location in the library, and it's linkages changed to reflect the new Class.
The "Fill UI Elements" checkbox will add properties and import statements to the new class that reflect all of the named instances on the selected MovieClip's timeline.
If you have selected the "Full Path as Linkage" checkbox, the MovieClip's linkage ID will be the fully qualified name of the bound class (ex. com.yourname.views.ClassName). If it not selected, the unqualified class name (ex. ClassName) will be used instead.
gProject also supports the automatic creation of Unit Test files for both ASUnit, and AS2Unit. Simply select the "Create Unit Test" check box before submitting. By default, the ASUnit framework is used, but you can change the unit testing framework to use in the Panel and Project Preferences
When complete, the gProject panel will refresh the classes node of the file tree. The following screenshot shows the new directory listing:
- Create Class will not overwrite class files. If the file already exists, it will not create a new file. This can be useful if you would like to bind an existing class to a movieclip, move the movieclip into the appropriate library folder, and set the appropriate linkages.
- All the checkboxes states, and the last class package are rembered on a per-project basis.
VIII. Creating Class Templates
gProject supports a simple template structure, used when creating class files. This system is composed of 3 files. All the base files are located in the Flash Configuration folder, in the /gskinner/templates/classes/ sub-directory
Each of these template files has custom template tags that will be replaced with dynamic data when a new class is created. You can place these tags anywhere in your class template file.
To create a new template file, you can either modify the above files, or create your own class template (recommended, since these templates will be over written if you need to re-install or upgrade gProject). To change the default class templates, open the Panel Preferences window, and browse for the correct template file. This file will be used for all your projects. There is a similar dialog in the "Project Preferences", which allows you to set template files on a per-project basis.
- Template paths in the Project and Panel Preferences must be absolute. Relative paths are currently not supported.
IX. Pinning Directories
When dealing with large projects, you may want to reduce clutter by only showing files in a specific directory.
- Select the Directory you would like to pin
- Click the "Pin Directory" icon in the icon tray.
- The pin directory icon will change to the unpin icon, and the selected directory will be displayed at the root of the listing.
Alternatively, you can right-click any directory and select the "Pin Directory" option.
The "pin directory" icon is a toggle button, so it can also be used to "unpin" the directory (return to the project root). When viewing a pinned directory, and no other directory is selected, the pin directory icon changes to the "unpin directory" icon. Alternatively, the right-click context menu for the empty area in the file browser below the listing has an "Unpin Directory" option.
- Locations and the classes folder (and their sub-directories) can also be pinned
- When a location or the classes folder (or subfolder) is pinned, the classes folder is not visible
X. Compiling FLAs
Compiling Individual FLAs
Right-click on any FLA in the document tree to test, export, or publish it.
The Test Project Icon compiles the movie specified as the Anchor, and opens the resulting swf - this is the same behavior as test project in the default Flash project panel. There are also two handy alternate modes:
- ALT-click: Compile the current document (if it is an FLA), and open the anchor swf (without recompiling it)
- ALT-SHIFT-click: Compile all FLAs in the Compile List, and open the anchor SWF. If the Anchor FLA is in the Compile list, it will be compiled last.
Three JSFL Commands are distributed with gProject Panel. They are all accessible in the Commands menu in Flash, and it is recommended that you bind these commands to keyboard shortcuts, such as CTRL-ALT-P (overwrite the default "test project" behavior). The commands are all prefixed by "gProject -":
- Compile List: Compiles all the FLAs in the Compile List (see Compile List below).
- Test Project: Opens and compiles the "Anchor" FLA.
- Test With Current: Publishes the open document, and opens the "Anchor" swf. Compiles the Anchor FLA if no SWF exists.
gProject allows you to add FLA's to a "Compile List", a list of FLAs that can be batch-compiled at any time. To add files to the compile list, right-click an FLA, and choose "Add to Compile List".
To remove items, open the compile list (click the bottom accordion pane), select the item(s) you want to remove, and click the "remove" icon in the bottom right. Alternatively, you can right-click any item(s) and choose "remove".
Click the "Compile List" button in the lower right to compile the list. You can also click the "Test Project" icon in the Document Tree while holding "ALT-SHIFT"
Added in version 1.3, all the compile options are also available by right-clicking the "Test Project Button
- Removing items from the compile list does not delete them from your computer.
- The project root FLA is always compiled last.
- If one of the FLAs outputs errors when compiling, gProject will not continue compiling the list, and will display the error in the Output panel.
Adding File types:
By default, gProject only shows Flash file types (fla, swf, as, jsfl, asc), but you can add custom types in the Panel Preferences, under the "Settings" tab.
By default, the gProject Panel filters files by extension, however you can manually hide files by preceding the filename with an special character, such as underscore. To enable this feature, select the "Hide files beginning with" checkbox in the Settings tab of the Panel Preferences (above), and add the special character to the text input below. You can add multiple characters to filter out. There is currently no way to filter on more than the first character.
gProject shows all files opened recently by the gProject Panel in a "Recent Files" folder at the top of the document tree. Recent Files are sorted in the order that they were opened. Only files opened with the gProject panel will show up in this list. To disable/enable the recent files folder, toggle the "Show Recent Files" checkbox in the Settings Tab in the Panel Preferences. You can also specify how many files are shown in the list.
To clear the recent files list, select the "Clear Recent Files" option in the main project menu, or right-click the "Recent Files" folder, and select "Clear Recent Files". You can remove individual recent files by right-clicking the file. and selecting "Remove From List". Clearing recent files will not remove them from your computer.
Three utilities are included with the gProject panel that work with Libraries and Movieclips that are bound to classes. They are available in "Utilities" in the panel main menu. All utilities will show a log in the output window.
Open Bound Classes
Opens the classes that are bound to any selected movieclips in the library.
Update Auto-UI Elements
Updates the Auto-UI elements and import statements generated by the Create Class function of selected movieclips in the library. Note that only classes created with the "Create Class" option can be updated, unless the auto-update statements (shown in the Creating Class Templates) section are present.
Organize Library (v1.3+)
Sorts clips in the library into folders based on linkage IDs. The Organize Library JSFL requires linkage IDs match the classpath of the clips. More information on this utility, and a standalone JSFL script are available here.
- All utilities require a library open.
- Open Bound Classes and Update Auto-UI Elements require selected symbols in the library that use the same classpaths as your current open project.
- The utility methods search your class paths, the root project directory, the directory your open FLA is in, and all Locations (see Adding Locations)
XIII. Release History
Feb 1, 2006
Version 1.3: General update, added Network and absolute paths support, locations, Quick Project, Organize Library utility, and other minor feature updates / bug fixes.
September 20, 2005
Version 1.1: Upgrade to support flash 8. Includes minor bug fixes.
August 10, 2005
Version 1.0: First public release
End User License
gProject is a commercial product owned by Integra Web Studios, Inc. ("Integra"). Subject to the other provisions of this Agreement and to the receipt of good and valuable consideration from you by Integra, Integra hereby grants to you a non-exclusive, non-transferable and perpetual license to use gProject on a single computer work-station at any given time; provided, however, that you shall not rent, lend, lease, distribute or transfer gProject to any third party, or otherwise modify, reverse engineer, de-compile or disassemble gProject, without the prior written consent of Integra.
Integra gives no representations or warranties, whether express, implied or statutory, with respect to gProject, including, but not limited to, any implied warranties of merchantability and fitness for a particular purpose. All warranties are disclaimed. gProject is provided to you on an "as is" basis. IN NO EVENT SHALL INTEGRA BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOST REVENUE (WHETHER AS CONSEQUENTIAL OR DIRECT DAMAGES), FAILURE TO REALIZE EXPECTED SAVINGS OR ANY OTHER ECONOMIC LOSS, LOSS OF DATA, LOSS OF USE OR LACK OF AVAILABILITY OF YOUR FACILITIES, INCLUDING YOUR COMPUTER RESOURCES AND ANY STORED DATA, EVEN IF INTEGRA HAS BEEN ADVISED OF THE POSSIBILITY OF THESE DAMAGES.
This Agreement shall be governed and interpreted in accordance with the laws in force in the Province of Alberta, Canada. This Agreement shall enure to the benefit of and be binding upon you and Integra and our respective successors and permitted assigns.
Please submit bug reports to email@example.com. Include the following details:
- gProject Version Number
- Date and Time
- Description of the bug
- Steps to reproduce
gProject, and related code and extensions are not the mainstay of gskinner.com, and bugs will be treated as such. You may not receive any confirmation that a bug was received, so please submit bugs only once.
Upgrades & Updates
Versions of gProject may be distributed from time to time that have additional features, or bug fixes. Upgrades to your major version number will be emailed to you free of charge, however, any new releases may require a seperate license or upgrade fee.