tags:

views:

21

answers:

2

I'm trying to understand what is going on with my namespaces since I upgraded to flash builder 4.

xmlns:mx="http://www.adobe.com/2006/mxml" in the application

and in the stylesheets:

@namespace mx "library://ns.adobe.com/flex/mx";

Everything seems to be recognized correctly, however, I get a warning that says "borderThickness" is only supported by the halo theme (which I thought was in the mx theme).

Now, when I try xmlns:s="library://ns.adobe.com/flex/mx" then it doesn;t recognize anything. Is there something I might be doing wrong here or confusing?

+1  A: 

mx is the default prefix for mx components - they're the components you're used to from flex 3. it's URI should be library://ns.adobe.com/flex/mx

s is the default prefix for spark components. They're the new components added in flex 4. It's URI should be library://ns.adobe.com/flex/spark

for more info, see this document: http://www.adobe.com/devnet/flex/articles/flex3and4_differences_03.html

quoo
Yes, I know this, but why would my flash builder not know these namespaces?
pfunc
Are you using an outdated version of Flash Builder (ie anything beta)?
quoo
no the most recent, just got it.
pfunc
A: 

as quoo stated above, you need to make sure you change the ns declarations in your mxml files to:

xmlns:fx="http://ns.adobe.com/mxml/2009"

xmlns:mx="library://ns.adobe.com/flex/mx"

xmlns:s="library://ns.adobe.com/flex/spark"

That being said however, I have noticed some wonkiness with FB4 when you add these namespaces for the first time to a file that was originally built in FB3. Sometimes it will not code-complete some old halo components. On mine, it will mysteriously create a fictitious "mx1" namespace that I haven't even declared. Most times I've found that closing the editor window and doing a project clean, then re-opening the file seems to fix the problem.

Robert Neville
that's exactly what was happening, I was getting the mx1 namespace. Thanks.
pfunc