Creative Suite Developer FAQ

 
Refer to the following FAQ to find answers to common questions related to Creative Suite SDKs, Creative Suite Extension Builder, tools, and more.
 
What support resources are available for the Creative Suite SDK & Creative Suite Extension Builder?
 
 
Get oriented to Flex and RIAs
 
 
 
Download an SDK and an IDE
 
Download the free Flex SDK to build and debug Flex applications. Download and try Flex Builder, an Eclipse-based IDE that provides a rich set of tools to speed app creation.
 
Read a primer
 
Learn about Flex and PHP from the Getting Started Guide for Flex & PHP.
 
Code your first RIA
 
Build your first Flex rich interface using a Flex quick start:
 
  1. Flex Quick Start: Building a simple user interface
 
Intergrate your data
Hook data into your app with BlazeDS.
 
Build on your knowledge
 
Get inspired: Go to the Flex showcase to see what other developers are building with Flex and PHP together. 
Subscribe to the RSS feeds from the Flex Developer Center and Flex cookbook to keep up on articles, tutorials, sample apps, and tips from Adobe Developer Connection and Flex community. 
 
Why do I need to use Flex 3.4 SDK rather than Flex 4 SDK, which comes with Flash Builder 4?
 
The tooling is oriented around Flex 3.4 SDK, which matches the version of the StageManager SWF that loads the CS5 extensions; this uses Flex Marshall Plan loading, and loading SWFs compiled with a more recent Flex SDK is not recommended. Using Flex 4 SDK to compile your extensions is not supported.
 
I'm trying to debug as InDesign/ Illustrator /... application but the debugger is not connecting to my SWF?
 
See the section "Enable Debugging" under the path 'Home > Getting Started > Debugging the Hello World extension' in the Help documentation (Eclipse Help > Creative Suite SDK)
 
Windows: you need to edit the registry (regedit) to add a new string value, named PlayerDebugMode, set with value of 1, under HKEY_CURRENT_USER\Software\Adobe\CSXS2Preferences
 
Mac OS: locate the file at the path /Users/USERNAME/Library/Preferences/com.adobe.CSXS2Preferences.plist and add a key-value pair, key PlayerDebugMode flag, value set to "1". 
You should now find that the Flash debugger connects to your SWF. 
 
I click the links in the Creative Suite SDK Welcome page and they don't take me to where I expect in Firefox?
We have had a report that in certain set-ups, links don't resolve through to the documentation on the Mac OS (issue #2482415) but your default home page in the browser appears. If you should see this, then we believe you can remedy the situation by visiting the Eclipse preference: 'Eclipse > Preferences > General > Web Browser > Use external Web browser > (set to) Safari'. It appears that you can set the external Web browser to Firefox- the issue is reported only if the 'default' browser is set under the Eclipse Web Browser preference.
 
What do I do if I am seeing errors for Photoshop in Mac OS when I try to access the Photoshop DOM from my listener for network/timer events?
 
There is a known issue (#2584580), with ActionScript code that tries to access the Photoshop DOM from scope of a listener for an event generated internally by the ActionScript virtual machine (AVM) - network I/O, timer event. This bug will affect you only if you target Photoshop on the Mac with a CS5 extension and you have some requirement to interact with a service on the backend (or you use timers internally in your ActionScript code for some reason), and you want to develop your code entirely in ActionScript. There are three basic workarounds for this we’re aware of just now:
 
1. For Photoshop/Mac, write your Mac-specific listener for the AVM events like network I/O/timer in ExtendScript 
2. For Photoshop/Mac only, design your application such that you always have a user generated event to drive any DOM access. For instance, populate your model from a network listener callback, and require the user to make a mouse click for the updated model to be injected into the DOM. 
3. For Photoshop/Mac only, use the Action API, basically creating ActionDescriptor instances and app.executeAction. The third workaround lets you write ActionScript-only solutions, and you can in theory perform a broader range of operations than are possible through CSAWLib itself. It is relatively trivial to discover what ActionScript code you need to write, using the ScriptListener plugin to dump ExtendScript for operations a user is performing. This is pretty well documented and easy to use, robust and fairly simple.
 
For instance: if you attempt to write a listener in ActionScript that performs an operation like this from scope of the timer/network event listener:

app.open(fileRef);

you’d find (on Photoshop Mac) that this opens the file but generates a slightly opaque error, which inhibits further DOM access. This only happens in a listener when there’s no user event- if the user clicks a mouse button to trigger the listener or there’s any other Mac OS native event, there’s no issue. You can however write this from scope of your timer/network event listener:
 
app.executeAction( idOpn, desc3, DialogModes.NO );

where the ActionDescriptor (desc3 above) is populated as below. So the code below functions correctly, enabling you to open a document from scope of an AS3 listener for a network/timer event:
        ...
// fileRef is a flash.filesystem.File referring to a local file
// Construct and populate an ActionDescriptor
var idOpn:int = app.charIDToTypeID( "Opn " );
var desc3 :ActionDescriptor= new ActionDescriptor();
var idnull:int = app.charIDToTypeID( "null" );
desc3.putPath( idnull, fileRef);
app.executeAction( idOpn, desc3, DialogModes.NO );
...
// Execute a built-in action
app.doAction("Molten Lead","Default Actions");
 
How can I have multiple Creative Suite Extension Builder versions co-exist on one machine?
 
Say you've installed Flash Builder Plug-in into one version of Eclipse, and you've got Creative Suite Extension Builder installed and you want to install another version of Creative Suite Extension Builder onto the same machine but *not* have the two Creative Suite Extension Builder installations (at different revisions) interfere in any way. How can you do this?
 
Suppose you want two Eclipse distributions, both with Flash Builder Plug-in plug-ins installed, and with two different versions of Creative Suite Extension Builder plugin installed. Can this be done?
 
Let's suppose you just had one Eclipse distribution in the folder /eclipse, set up with a particular Creative Suite Extension Builder version.
 
Before Eclipse 3.5, you could add an "extension location", which was a folder with features/plugins in it, and a .eclipseextension marker file.
 
If you inspect your Adobe Flash Builder Plug-in folder, you'll see that it has a eclipse subdirectory and a .eclipseextension marker file in it. That means that a pre-existing Eclipse distribution can add the Flash Builder plug-ins; the Eclipse UI to let you add an extension location is no longer there with Eclipse 3.5. However, there is another way to achieve the same functionality.
 
1. Let's start from a clean Eclipse distribution- suppose you put that into /eclipse351 
2. You create a subfolder in /eclipse351 called links (the name is critical) 
3. You create a plain text file in that called exactly "com.adobe.flexbuilder.feature.core.link" 
4. In that text file, you have something like path=/Applications/Adobe Flash Builder 4 Plug-in/eclipse if you installed to default location and you're on Mac OS 
5. Next time you start your Eclipse (from that eclipse351 folder, you will find that you have the Flash/Flash Debug perspectives. 
6. You can then update that 'eclipse351' with Creative Suite Extension Builder plugins from a local / remote update site. 
7. You'll find that your pre-existing Eclipse with FB4 + Creative Suite Extension Builder at a different version works exactly as you expect 
 
What certificates should I use to sign extensions?
To sign extensions, a code-signing certificate must satisfy these conditions:
 
  1. The root certificate of the code-signing certificate must be installed in the target operating system by default. This can vary with different variations of an operating system. For example, you may need to check that your root certificate is installed into all variations of Win XP, including home/professional, SP1, SP2, SP3, and so on. 

  2. The issuing certificate authority (CA) of the code-signing certificate must permit you to use that certificate to sign extensions.

 

To make sure a code-signing certificate satisfies these conditions, check directly with the certificate authority that issues it.
 
The following CAs and code-signing certificates are some samples of certificates that could be used for signing extensions (these are provided as examples and don't represent a recommendation by Adobe):
 
  • GlobalSign
    • ObjectSign Code Signing Certificate
  • Thawte
    • AIR Developer Certificate 
    • Apple Developer Certificate 
    • JavaSoft Developer Certificate 
    • Microsoft Authenticode Certificate
  • VeriSign
    • Adobe AIR Digital ID 
    • Microsoft Authenticode Digital ID 
    • Sun Java Signing Digital ID

 

Note that you will always have to check with the chosen certificate authority if the certificate you purchase meets the requirements above. We can't guarantee any of these certificates will always be valid.