How to enable debugging of flex sdk code in intellij flex module - apache-flex

When I debug the flex application in IntelliJ Idea(v 13), it seems that it doesn't use the debug flex rsls. Stack traces don't contain line numbers, breakpoints are not working, etc.
'Generate debuggable swf' is checked and custom code is debuggable.
How to fix that issue and enable debugging of sdk code?

Seems like compiler uses .swz which are signed Adobe RSLs and cannot be debugged. I suggest for debug purposes not to use Flex RSLs. You can set this option in Dependencies/Framework linkage - Merged into code.
Another option is to set compiler option -static-link-runtime-shared-libraries=true
Or you can change *.swz RSLs in {FLEX_SDK}/frameworks/flex-config.xml to *.swf RSLs (make sure they exist).

Related

Cannot find sparkskins_xxx.swf

I am trying out to deploy a flex application in one of our servers. I was able to deploy it but running it causes some problems like missing swfs.
One of these missing swfs is the sparkskins, which I am not sure where to get from.
Any ideas?
Maybe you should change framework linkage to "Merged into code" for you project.
In FlashBuilder this option is here: Project Properties window -> Flex Build Path list item -> Library Path tab -> Framework linkage combobox.
After this your sdk swfs will be compiled into your flash app.

where is the flex library file exist swc

can any one help me that where is the SWC or run time library for the flex controls exist in the system?
Or can we provide our own library by using the controls in the dir
C:\Program Files\Adobe\flex_sdk_3.2\frameworks\projects\framework\src\mx
It is not very obvious what are you trying to ask but I'll try to guess :)
So the SWC with Flex controls is located here {Flex.SDK.root}/frameworks/libs/framework.swc and the corresponding RSLs are located here {Flex.SDK.root}/frameworks/rsls.
What about providing your own library to replace Flex controls I think it is not the right way. The best practice is not modify Flex SDK installation to have possibility to build your project on every computer with different environments (on a different developers computers or on client site).
And you should take in mind there are 4 standard ways to use code in Flash application:
Compile your code into SWF.
Use Runtime Shared Library aka RSL (which is SWF too).
Use SWZ which is signed and can be cached by Flash Player.
Use modules which are SWFs.
None of these ways doesn't suppose using Flex SDK in runtime. Flex SDK is being used only in process of building of your application.
So the best way to use some custom controls is to build them with your application using one of the ways I described above (excluding SWZ's which can be produced only by Adobe).
Just leave Flex SDK installation without changes and place classes/SWCs with custom controls in your project's classpath.
Hope this helps.

Bindings failing when compiled through Flash IDE

I have created an API in AS3 that uses Flex bindings. The API is being used by two other developers. I am delivering the API in an SWC that includes all code, including the required Flex libraries. The two other developers are building the API into AS3-only projects.
One developer is compiling using the Flex SDK through FDT. He includes the SWC in his project and he is able to bind any bindable property. When he uses ChangeWatcher.canWatch on a bindable property, it returns true.
The second developer is compiling using the Flash CS5 IDE. He includes the SWC in his project using the Actionscript settings window (merged into code). But none of the bindings, including ones internal to the API, are working. When he uses ChangeWatcher.canWatch on a bindable property, it returns false.
What could the Flash IDE be stripping out that causes ChangeWatcher to stop functioning? What is ChangeWatcher.canWatch actually checking? Is it the metadata, and if so, how can the metadata be preserved in the Flash IDE?
As far as I know, data binding is only supported in Flex.
It turns out the issue was that the [Bindable] metadata was being stripped out. To keep it in there I needed to trick the Flash IDE into keeping it. This can be done by enabling "Export as SWC" in the publish settings.
After doing this, all my bindings started working again.

Restrictions in creating a plugin

Recently tried the plugin example of Qt.
It didn't work at all and I was confused as to the reason. Then found the solution on one of the forums.
Qt, Application and plugin all three have to be built with the same configuration (Release/Debug)
This works for me as I can build all three in Debug/Release mode. But if I want users to extend my application using plugins I need to provide debug build of my application. (If I provide release build, users will not be able to trouble-shoot the plugin). Qt source is available so it can be built in any mode.
I don't want to provide debug build of my application to users. Is there any work around for this restriction on build mode for plugins?
P.S. I understand users can debug with logging statements, but not sure how many prefer that approach.
This is because Qt has a so called build key which is just a string containing some Qt configuration information, this is documented in the Qt plugin Howto.
So you should just go ahead and provide a debug build of your application for the best results.
You can build debug version (to have compiled in debug configuration) and strip it out of all symbols etc.

Creating Flex 3.5 components with Flash CS5

Is there a way to create components compatible with Flex 3.5 by using Flash CS5? I'm stumped. Whenever I run the "Convert Symbol to Flex Component" command and then try to use the resulting .swc file in a Flex 3.5 app, I get multiple instances of the following error:
1046: Type was not found or was not a
compile-time constant: Matrix3D.
1046: Type was not found or was not a
compile-time constant: Vector3D.
Any help or suggestions?
I had the same problem. I found a work around, though. You need to create the component using Flash Builder by dragging a Flash Professional Component onto your application. (You must be in Design Mode to do this.) Then, in the properties sheet, there will be a button labeled "Create In Flash Professional..." Clicking this button will create a Flash Document with all the correct frameworks and sdks and launch Flash Professional.
The errors you are seeing are usually brought on by a version mismatch between the Flex SDK that the SWC was compiled against and the Flex SDK of your project.
When creating SWCs using the Flash Pro interface, I'm not sure if they can be used in Flex. Generally SWCs are not sharable between Flex and Flash. People either recompile the source code or generate a SWF and embed it or load it using a SWFLoader.
If you're using the Flex Component Kit for Flash make sure you're using the same kit that came with the SDK you plan to target.

Resources