-
-
Notifications
You must be signed in to change notification settings - Fork 40
Debug an Adobe AIR mobile application with Visual Studio Code
-
Create a new ActionScript project targeting Adobe AIR for mobile.
-
In Visual Studio Code, open the View menu and select Debug. Alternatively, click the debug icon on the sidebar, or use the Ctrl+Shift+D keyboard shortcut (or Command+Shift+D on macOS).
-
Click the gear ⚙︎ icon to configure the launch configurations for your workspace.
-
When prompted to Select Environment, choose SWF.
If .vscode/launch.json already exists in your workspace, you will not be asked to specify the environment. Instead, the existing file will open. You may click the Add Configuration button to add a new SWF debugging configuration to the existing file. Several default snippets are available, depending on which Adobe Flash runtime you are targeting.
-
A new editor will open with a launch.json file that looks something like this:
{ // Use IntelliSense to learn about possible SWF debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "swf", "request": "launch", "name": "Launch SWF" }, { "type": "swf", "request": "attach", "name": "Attach SWF" } ] }
We'll be using the Launch SWF debug configuration in a moment.
-
Specify some extra launch configuration options to simulate a mobile device in the AIR Debug Launcher:
{ "type": "swf", "request": "launch", "name": "Launch SWF", "profile": "mobileDevice", "screensize": "iPhoneRetina", "screenDPI": 326, "versionPlatform": "IOS" }
Setting the
profile
option to"mobileDevice"
is required for all mobile projects. The other three options,screensize
,screenDPI
andversionPlatform
, may be customized to simulate a variety of mobile devices. See launch.json configuration settings for simulating common mobile devices in Adobe AIR for some sample configuration options to use. -
Run the build task with Ctrl+Shift+B (or Command+Shift+B on macOS).
-
Ensure that the Launch SWF configuration is selected is the Debug sidebar, and press the button with the play
▶️ icon to start debugging. Alternatively, use the F5 keyboard shortcut to start debugging.
Instead of building manually with Ctrl+Shift+B, you can configure launch.json to build your project automatically when start debugging in Visual Studio Code. By setting the preLaunchTask
field in launch.json to the name of one of your workspace's tasks, it will automatically run that task before the debugger is launched.
Warning: If you're compiling debug builds using the Quick Compile & Debug command, DO NOT use
preLaunchTask
. It will cause your project to build twice before starting the debugger, which won't be very "quick" at all! 😄
If you have a default build task configured, the preLaunchTask
field in launch.json should contain the ${defaultBuildTask}
token:
{
"type": "swf",
"request": "launch",
"name": "Launch SWF",
"preLaunchTask": "${defaultBuildTask}"
}
If you prefer, you can use the exact name of any of the built-in tasks provided by the ActionScript & MXML extension:
{
"type": "swf",
"request": "launch",
"name": "Launch SWF",
"preLaunchTask": "ActionScript: compile debug - asconfig.json"
}
You can find the complete list of tasks that are available in your workspace when you go to the Terminal menu and choose Run Task....
If your Adobe AIR application requires native extensions, you need to configure them using two fields in asconfig.json. In the airOptions
section, add the folder containing your ANEs to the extdir
field. Additionally, add each .ane file from the same folder to the external-library-path
compiler option.
{
"compilerOptions": {
"external-library-path": [
"path/to/native_extensions/ExampleA.ane",
"path/to/native_extensions/ExampleB.ane"
]
},
"airOptions": {
"extdir": [
"path/to/native_extensions"
]
}
}
Some ActionScript compilers require that you add each .ane file to
external-library-path
separately, while other compilers can also search for .ane files inside folders. For maximum compatibility, it's better to specify individual .ane files in theexternal-library-path
.
- Adobe AIR (Mobile)
- Adobe AIR (Desktop)
- Adobe Flash Player
- Apache Royale
- HTML and JS (no framework)
- Node.js
- Feathers SDK
- Adobe Animate
- Classic Flex SDK
- Library (SWC)
- Royale Library (SWC)