Ok - so I have found the magic incantation to correctly build my SWF. But this is not all good news...
I started tweaking the config by hand, steadily adjusting the FM generated config xml with diffs from the FB config my using mxmlc -load-config from the commandline. By looking at the flashlog and what was being requested using firebug, I became suspicious that the error was due to something not being loaded in the right order. In my <runtime-shared-library-path/>, the elements appear to be in alphabetical order. I adjusted this to move framework and textLayout to be the first two in the list and - bang - it worked! So it looks like it really cares about the order of the framework libraries. What I don't know is if this is a regression in flex, or if it has always been like that. I don't understand why the framework doesn't correctly take care of the instantiation order (After all, is that not what metadata is for!), or whether it is perhaps just some missing information in the spark swc that it depends on textLayout... does anyone have any deeper understanding of the mechanics at work ? On Mon, May 16, 2011 at 3:42 PM, Christofer Dutz < [email protected]> wrote: > Ok ... was just an idea. > > Perhaps Velo is right and 4.5 simply doen't work because Adobe changed > things again :-( > > Chis > > 2011/5/16 Nigel Magnay <[email protected]>: > > Yes, I started with 4.0-beta-7. > > I've pared back by swf to contain almost literally nothing (a single > .mxml > > with a single label on it!), and it's still giving verify errors when > trying > > to run. > > I've cloned from the git repo on github.. my working assumption is if I > can > > make the config output from FM look the same as the one from FB, it ought > to > > work (!), so my first attempts are all about doing that - I'm also though > > trying to work out why certain things are the way they are (e.g: the > > flex-framework pom files). > > > > On Mon, May 16, 2011 at 3:26 PM, Christofer Dutz > > <[email protected]> wrote: > >> > >> As you are using SNAPSHOT you are using a version you built yourself > >> ... have you tried 4.0-beta-7? > >> And if your are building yourself ... which reposirotry are you using? > >> Subversion or GIT? A lot of descriptions (also on the FM page) > >> reference the old subversion. You need to use the GIT repository. > >> > >> Chris > >> > >> 2011/5/16 Nigel Magnay <[email protected]>: > >> > I set the compiler to be the same - I do this in the master pom: > >> > <plugin> > >> > <groupId>org.sonatype.flexmojos</groupId> > >> > <artifactId>flexmojos-maven-plugin</artifactId> > >> > <version>4.0-SNAPSHOT</version> > >> > <extensions>true</extensions> > >> > <configuration> > >> > <!--<configurationReport>true</configurationReport>--> > >> > <debug>true</debug> > >> > > >> > </configuration> > >> > <dependencies> > >> > <dependency> > >> > <groupId>com.adobe.flex</groupId> > >> > <artifactId>compiler</artifactId> > >> > <version>${flex.sdk.version}</version> > >> > <type>pom</type> > >> > </dependency> > >> > </dependencies> > >> > </plugin> > >> > Then the build itself is is pretty simple, just using : > >> > <plugin> > >> > <groupId>org.sonatype.flexmojos</groupId> > >> > <artifactId>flexmojos-maven-plugin</artifactId> > >> > <configuration> > >> > <localesCompiled> > >> > <locale>en_US</locale> > >> > </localesCompiled> > >> > > <!--<mergeResourceBundle>true</mergeResourceBundle> > >> > > >> > > >> > > <resourceBundlePath>src/main/flex/locale/{locale}</resourceBundlePath>--> > >> > <sourceFile>Base.mxml</sourceFile> > >> > <rslUrls> > >> > > >> > <url>rsl/{artifactId}-{version}.{extension}</url> > >> > </rslUrls> > >> > > >> > > >> > > <staticLinkRuntimeSharedLibraries>false</staticLinkRuntimeSharedLibraries> > >> > <!--<themes>--> > >> > > >> > <!--<theme>${project.build.directory}/themes/halo-theme.swc</theme>--> > >> > > >> > > <!--<theme>${project.build.directory}/themes/spark-theme.css</theme>--> > >> > <!--</themes>--> > >> > > >> > <!--<generateHtmlWrapper>true</generateHtmlWrapper>--> > >> > <defines> > >> > <property> > >> > <name>RT::version</name> > >> > <value>"${project.version}"</value> > >> > </property> > >> > <property> > >> > <name>RT::revision</name> > >> > <value>"${buildNumber}"</value> > >> > </property> > >> > <property> > >> > <name>RT::build</name> > >> > <value>"${hudson.build.number}"</value> > >> > </property> > >> > </defines> > >> > > >> > > >> > </configuration> > >> > </plugin> > >> > </plugins> > >> > </build> > >> > <dependencies> > >> > <!-- flex, standard --> > >> > <dependency> > >> > <groupId>com.adobe.flex.framework</groupId> > >> > <artifactId>flex-framework</artifactId> > >> > <type>pom</type> > >> > <version>${flex.sdk.version}</version> > >> > </dependency> > >> > This has been working fine previously up to 4.1.0. > >> > Have you had FM working with 4.5.0 ? > >> > I'm busy tracing down differences between FB4.5 outputted config XML, > >> > and > >> > the XML generated from flexMojos. So far I've noticed that the > >> > flex-framework pom that is included references virtually everything > >> > (through > >> > flex-compiler) through common-framework with a scope that isn't RSL. > So > >> > I've > >> > made a parallel flex-framework config that matches what FB4.5 does; > I've > >> > added (by hand, and by patching flexmojos) to get equivalent entries > >> > in runtime-shared-library-settings.application-domain. As an aside, > why > >> > is > >> > this the case? Don't most people want to link to the framework as a > RSL? > >> > The two things that are still different that I'm now trying :- > >> > * All the (framework) SWCs that I'm referencing also appear in > >> > <external-library-path> entries. I don't see why this would affect the > >> > output, but maybe it does. > >> > * The FB4.5 config additionally references a > >> > > >> > > load-config: <load-config>${flexlib}/${configname}-config.xml</load-config> > >> > I assume this file is the flash builder > >> > "/sdks/4.5.0/frameworks/flex-config.xml" file, which contains some > >> > interesting entries such as rsl-urls for downloading .swz files from > >> > adobe. > >> > Again, not sure if this is what's breaking it, but will be giving it a > >> > try.. > >> > > >> > On Mon, May 16, 2011 at 3:03 PM, Christofer Dutz > >> > <[email protected]> wrote: > >> >> > >> >> You have to match the dependency of the compiler (plugin dependency) > >> >> to the framework version you are using. > >> >> Could you please post your complete pom? > >> >> > >> >> Chris > >> >> > >> >> > >> >> > >> >> 2011/5/15 Nigel Magnay <[email protected]>: > >> >> > Ah - ok - this looks like something big has changed in the SDK API. > >> >> > Just creating a simple project in FB4 vs FB4.5 produces quite > >> >> > different > >> >> > config xml files (attached). > >> >> > I notice comparing the -config output of FB4.5 vs what I get from > >> >> > flexmojos, > >> >> > they're quite different. I'm including the framework with the pom > >> >> > stanza > >> >> > <dependency> > >> >> > <groupId>com.adobe.flex.framework</groupId> > >> >> > <artifactId>flex-framework</artifactId> > >> >> > <type>pom</type> > >> >> > </dependency> > >> >> > Now, I trace down the common-framework pom and I can see that all > the > >> >> > dependencies in there are declared as <type>swc</type>, when it > >> >> > strikes > >> >> > me > >> >> > that most of them ought perhaps to be <type>rsl</type>, and they > need > >> >> > to > >> >> > get > >> >> > put in the 'default' application > >> >> > (runtime-shared-library-settings.application-domain - I don't know > id > >> >> > this > >> >> > would default to 'default' however) > >> >> > So it's probably that the FB4.5 framework RSLs don't like being > >> >> > included > >> >> > as > >> >> > SWCs in this way.. > >> >> > > >> >> > > >> >> > On Sun, May 15, 2011 at 2:42 PM, Nigel Magnay > >> >> > <[email protected]> > >> >> > wrote: > >> >> >> > >> >> >> Hm - OK, I think it's broken but I'm not sure why. > >> >> >> The resulting flex-config xml files look pretty similar; the 4.5 > >> >> >> version > >> >> >> has added a few library-path path-elements like advancedgrids.swc; > >> >> >> it's > >> >> >> also > >> >> >> added the halo theme, but otherwise nothing suspicious. > >> >> >> If I run the resultant SWFs through swfdump they look similar. > >> >> >> Setting AS3Trace=1 in mm.cfg, I can see that the 4.5 build dies > >> >> >> here: > >> >> >> > >> >> >> 693 AVMINF: MTHD flash.events::Event/get target () > >> >> >> > >> >> >> 693 AVMINF: MTHD > flash.events::EventDispatcher/dispatchEventFunction > >> >> >> () > >> >> >> > >> >> >> 694 AVMINF: MTHD > >> >> >> mx.preloaders::SparkDownloadProgressBar/initProgressHandler () > >> >> >> > >> >> >> 694 AVMINF: MTHD global/flash.utils::getTimer () > >> >> >> > >> >> >> 694 AVMINF: MTHD global/flash.utils::getTimer () > >> >> >> > >> >> >> 694 AVMINF: MTHD > >> >> >> mx.preloaders::SparkDownloadProgressBar/showDisplayForInit () > >> >> >> The equivalent 4.1 code was doing > >> >> >> > >> >> >> 1114 AVMINF: MTHD flash.events::Event/get target () > >> >> >> > >> >> >> 1115 AVMINF: MTHD > >> >> >> flash.events::EventDispatcher/dispatchEventFunction > >> >> >> () > >> >> >> > >> >> >> 1115 AVMINF: MTHD > >> >> >> mx.preloaders::SparkDownloadProgressBar/initProgressHandler () > >> >> >> > >> >> >> 1115 AVMINF: MTHD global/flash.utils::getTimer () > >> >> >> > >> >> >> 1115 AVMINF: MTHD > >> >> >> mx.preloaders::SparkDownloadProgressBar/showDisplayForInit () > >> >> >> > >> >> >> 1133 AVMINF: MTHD flash.events::Event () > >> >> >> > >> >> >> 1133 AVMINF: MTHD flash.events::Event/ctor () > >> >> >> > >> >> >> 1133 AVMINF: MTHD mx.managers::LayoutManager/waitAFrame () > >> >> >> > >> >> >> 1134 AVMINF: MTHD mx.managers::SystemManager/removeEventListener > () > >> >> >> > >> >> >> 1134 AVMINF: MTHD flash.events::EventDispatcher/hasEventListener > () > >> >> >> > >> >> >> 1134 AVMINF: MTHD > flash.events::EventDispatcher/removeEventListener > >> >> >> () > >> >> >> > >> >> >> Which doesn't help me that much. > >> >> >> I'll keep digging. > >> >> >> > >> >> >> On Sun, May 15, 2011 at 1:44 PM, Marvin Froeder <velo.br@ > gmail.com> > >> >> >> wrote: > >> >> >>> > >> >> >>> No clue, I haven't tried 4.5.0 at all. > >> >> >>> > >> >> >>> Em 15/05/2011 09:27, "Nigel Magnay" <[email protected]> > >> >> >>> escreveu: > >> >> >>> > I tried a really simple SWF, and it seems to bomb in the player > >> >> >>> > (debug > >> >> >>> > out: Warning: > >> >> >>> > 'flash' has no property 'prototype') > >> >> >>> > > >> >> >>> > Works fine if I roll back to 4.1.0.16076, but was wondering if > >> >> >>> > there's > >> >> >>> > some > >> >> >>> > option I'm missing before I start digging.. > >> >> >>> > > >> >> >>> > -- > >> >> >>> > You received this message because you are subscribed to the > >> >> >>> > Google > >> >> >>> > Groups "Flex Mojos" group. > >> >> >>> > To post to this group, send email to > [email protected] > >> >> >>> > To unsubscribe from this group, send email to > >> >> >>> > [email protected] > >> >> >>> > For more options, visit this group at > >> >> >>> > http://groups.google.com/group/flex-mojos > >> >> >>> > > >> >> >>> > http://flexmojos.sonatype.org/ > >> >> >>> > >> >> >>> -- > >> >> >>> You received this message because you are subscribed to the > Google > >> >> >>> Groups "Flex Mojos" group. > >> >> >>> To post to this group, send email to [email protected] > >> >> >>> To unsubscribe from this group, send email to > >> >> >>> [email protected] > >> >> >>> For more options, visit this group at > >> >> >>> http://groups.google.com/group/flex-mojos > >> >> >>> > >> >> >>> http://flexmojos.sonatype.org/ > >> >> >> > >> >> > > >> >> > -- > >> >> > You received this message because you are subscribed to the Google > >> >> > Groups "Flex Mojos" group. > >> >> > To post to this group, send email to [email protected] > >> >> > To unsubscribe from this group, send email to > >> >> > [email protected] > >> >> > For more options, visit this group at > >> >> > http://groups.google.com/group/flex-mojos > >> >> > > >> >> > http://flexmojos.sonatype.org/ > >> >> > > >> >> > >> >> -- > >> >> You received this message because you are subscribed to the Google > >> >> Groups "Flex Mojos" group. > >> >> To post to this group, send email to [email protected] > >> >> To unsubscribe from this group, send email to > >> >> [email protected] > >> >> For more options, visit this group at > >> >> http://groups.google.com/group/flex-mojos > >> >> > >> >> http://flexmojos.sonatype.org/ > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Flex Mojos" group. > >> > To post to this group, send email to [email protected] > >> > To unsubscribe from this group, send email to > >> > [email protected] > >> > For more options, visit this group at > >> > http://groups.google.com/group/flex-mojos > >> > > >> > http://flexmojos.sonatype.org/ > >> > > >> > >> -- > >> You received this message because you are subscribed to the Google > >> Groups "Flex Mojos" group. > >> To post to this group, send email to [email protected] > >> To unsubscribe from this group, send email to > >> [email protected] > >> For more options, visit this group at > >> http://groups.google.com/group/flex-mojos > >> > >> http://flexmojos.sonatype.org/ > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Flex Mojos" group. > > To post to this group, send email to [email protected] > > To unsubscribe from this group, send email to > > [email protected] > > For more options, visit this group at > > http://groups.google.com/group/flex-mojos > > > > http://flexmojos.sonatype.org/ > > > > -- > You received this message because you are subscribed to the Google > Groups "Flex Mojos" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/flex-mojos > > http://flexmojos.sonatype.org/ > -- You received this message because you are subscribed to the Google Groups "Flex Mojos" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/flex-mojos http://flexmojos.sonatype.org/
