apache-flexsdkcomparisonflexbuilder

differences when compiling a project using flex builder and flex sdk


The following code compiles fine in flex builder 3, but throws an error when compiled using the command line and flex sdk 3.3.

<?xml version="1.0" encoding="utf-8"?>
<ww:TestApplication
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:ww="*"
    layout="absolute"
    backgroundColor="#FFFFFF"
    >
    <mx:Label x="10" y="10" text="simple test"/>
</ww:TestApplication>

The error message is: Unable to locate specified base class 'TestApplication' for component class 'TestApplication'.

The problem only happens when I use the default package for my custom classes. If instead I use

xmlns:ww="somepackage.*"

and change my matching AS class accordingly, then it compiles fine using the sdk. Am I missing an argument when compiling or something? Are there differences when compiling a project using flex builder and flex sdk? If so, which ones?


Solution

  • The paths have to be explicitly defined using mxmlc or compc. Here is an explanation of the flags:

    source-path is used to define the path to the source if it is not in the default:

    mxmlc -source-path path1 path2 path3 c:/myFiles/app.mxml
    

    library-path is used to define the path to libraries:

    mxmlc -library-path [AIR SDK]/frameworks/libs/air/airframework.swc, ^ [AIR SDK]/frameworks/libs/air/airframework.swc, ^ -library-path [Flex SDK]/frameworks/libs/framework.swc ^ -- myApp.mxml
    

    file-specs is used to define the mxml file:

    mxmlc --strict=true --file-specs MyFirst.mxml
    

    runtime-shared-libraries is used to define the RSL path:

    mxmlc -external-library-path+=../lib/myLib.swc -runtime-shared-libraries=myrsl.swf -- myApp.mxml
    

    References