Although I do get a runtime error when the application tries to load the style
SWF that I
made via "mxmlc BasicStyle.css" (the SWF in the assets/ folder), I was finally
able to get
styles to successfully load using the SWF generated by FB3.
I'd still like to know how to load style SWFs made via mxmlc though.
In the meantime, here's how I got the styles to load:
* In FB 3, I right-clicked (CTRL-Clicked on a mac) on the assets/BasicStyle.css
file and
selected "Compile CSS to SWF". This put a check mark next to that option.
* Then I noticed that FB3 compiled the CSS file into a SWF and located that swf
in:
bin/Users/<username>/Documents/Flex Builder
3/testRuntimeCss/assets/BasicStyles.swf
notice that FB3 reproduced the directory structure of the Flex Project
location under the
bin directory (rather than putting the style SWF in the assets/ folder
directly).
* So I updated my MXML file to read:
StyleManager.loadStyleDeclarations("Users/jbattat/Documents/Flex Builder
3/testRuntimeCss/assets/BasicStyles.swf")
(the path passed to loadStyleDeclarations() used to be
../assets/BasicStyles.swf)
* Then I did a debug run, clicked the Button and the styles were successfully
loaded.
So some obvious questions remain:
* Do you really have to code the path to the style swf in this way, or can you
tell
FB3 to compile the CSS file into a SWF and place the SWF directly in the
bin-debug/
folder (or elsewhere)
* How do you get runtime styles to load using style SWFs made via mxmlc (this
is the
critical question for me).
* Is there a way to "diff" two SWFs? I have one SWF (made by FB3) that works
and one
(made by mxmlc) that does not. Seeing the differences between the two would be
instructive.
As always, thanks for your help
-- j
--- In [email protected], jamal wally <[EMAIL PROTECTED]> wrote:
>
> Hello again,
>
> OK, I'm sending the style swf as an attachment to this post. If it doesn't
> work, I will
email directly to you Alex (thank you very much for your patience).
>
> Alex, to answer your question about the location of the style swf: The style
> SWF is local
to my machine and lives in a subdirectory of the project.
>
> I named the flex project testRuntimeCss and the project files are in:
> ~/Documents/Flex Builder 3/testRuntimeCss/
> The main MXML file is in the default location (src/) and the style CSS and
> SWF files are
both in assets/.
>
> Let me also point out that in order to minimize the potential for user-error
> on my part,
I have re-done my test runtime css Flex Project so that it follows the Adobe
example at:
> http://livedocs.adobe.com/flex/3/html/help.html?content=styles_10.html
>
> I copied/pasted their example simple CSS into a file called BasicStyles.css
> which lives in
the assets/ folder of my project. For completeness, here is the content of the
CSS file,
copied directly from the Adobe help page listed above.
>
> /* styles/runtime/assets/BasicStyles.css */
> Button {
> fontSize: 24;
> color: #FF9933;
> }
>
> Label {
> fontSize: 24;
> color: #FF9933;
> }
>
> I then compiled the CSS file into a SWF with:
> > mxmlc BasicStyle.css
>
> The resulting swf, BasicStyle.swf, is attached.
>
> By the way, I am using the mxmlc app from SDK 3.0.0 (on Mac Leopard)
> > which mxmlc
> /Applications/Adobe Flex Builder 3/sdks/3.0.0/bin/mxmlc
>
> Another thing to point out is that I have done this both with "Compile CSS to
> SWF" option
for the BasicStyle.css file on and off. Both approaches give the same result
(runtime error
-- described below).
>
> I then copied/pasted the MXML content from the Adobe help page into my main
> MXML
file. Again, for completeness, here is the MXML that I used:
>
> <?xml version="1.0"?>
> <!-- styles/BasicApp.mxml -->
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
> <mx:Script>
> <![CDATA[
> import mx.styles.StyleManager;
>
> public function applyRuntimeStyleSheet():void {
> StyleManager.loadStyleDeclarations("../assets/BasicStyles.swf")
> }
> ]]>
> </mx:Script>
> <mx:Label text="Click the button to load a new CSS-based SWF file"/>
> <mx:Button id="b1" label="Click Me" click="applyRuntimeStyleSheet()"/>
> </mx:Application>
>
>
> When I debug in FB3, the application SWF successfully loads in my web
> browser. But
when I click on the button labeled "Click Me", the application crashes. The
error I get is:
>
> Error: Unable to load style(SWF is not a loadable module):
> ../assets/BasicStyles.swf.
>
> Just before that error, I get the following trace which suggests that the SWF
> style file
was, indeed found.
>
> [SWF] Users:jbattat:Documents:Flex Builder
> 3:testRuntimeCss:assets:BasicStyles.swf -
34,571 bytes after decompression
>
> Please let me know if you find a problem with the attached swf.
>
> -- j
>