Good detective work, Raju I was always worried about the performance of the TextLayout classes; we were going to move to them because the TextField class was declared at end-of-life, and we needed the bidirectional text layout for a contract. But the speed of rendering text was obviously slower with the new classes than the old text field which was implemented natively.
I think there were a few places we were using text fields inefficiently, like in the debugger, where each additional line of output was causing the whole field to re-render. On Fri, Dec 16, 2011 at 8:02 AM, Raju Bitter < [email protected]> wrote: > Ok, with those changes I was able to build OL with Flex 4.5, > generating SWF11 files (checked the 4th byte of the generated SWF > file, and it's "0B", for 4.1 it's "0A"). > > On Fri, Dec 16, 2011 at 1:35 PM, Raju Bitter > <[email protected]> wrote: > > Henry, I finally had time to look back into the problem with compiler > exception: > > Changes in Flex Hero > > Note: TextLayoutFormatValueHolder was a leightweight replacement for > > an extremely inefficient TextLayoutFormat class. Since TLF 2.0 the > > TextLayoutFormats implementation has been completely replaced by the > > code of TextLayoutFormatValueHolder. So since Flex Hero (4.5) this > > class is no longer available. In this case, simply replace > > TextLayoutFormatValueHolder with TextLayoutFormats in the above > > example. > > > > I replaced TextLayoutFormatValueHolder with TextLayoutFormat (no "s" > > here, that's a typo in the Adobe docs) within > > LzTLFTextFieldHostFormat.as and LzTLFTextFieldStyleResolver.as. Built > > the LFC again, and got the following errors. > > > > LzTLFTextFieldHostFormat needs to implement the following methods: > > + Interface method get clearFloats in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get linkActiveFormat in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get linkHoverFormat in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get linkNormalFormat in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get listAutoPadding in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get listMarkerFormat in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get listStylePosition in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get listStyleType in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get styleName in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method get wordSpacing in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > + Interface method getStyle in namespace > > flashx.textLayout.formats:ITextLayoutFormat > > > > When I imlemented the missing methods as dummy methods, the LFC was > > compiled without any errors. > > > > I think what OL needs is a good guide for upgrading the Flex SDK to > > newer versions (including adding a new runtime radio to the dev > > console). Without that, it will be difficult to maintain the compiler, > > and keep the SWF runtime up-to-date. > > > > On Wed, Nov 16, 2011 at 1:02 AM, Raju Bitter > > <[email protected]> wrote: > >> Thanks, Henry. No problem. I'll look into this a bit more tomorrow, > >> and already have a basic understanding how the integration works. > >> > >> On Tue, Nov 15, 2011 at 11:06 PM, Henry Minsky <[email protected]> > wrote: > >>> eek, seems like a few things need to be adjusted. I'm out of town for > this > >>> week, maybe I can > >>> look at this when I get back. > >>> > >>> On Tue, Nov 15, 2011 at 2:52 PM, Raju Bitter > >>> <[email protected]> wrote: > >>>> > >>>> Henry, > >>>> > >>>> following your instructions, I noticed these things when upgrading the > >>>> Flex SDK to 4.5: > >>>> 1) lib/flexTasks.jar does not exist any more > >>>> > >>>> 2) the configuration of the Flex version, runtime version and path > >>>> information for playergobal.swc is spread out over a number of Java > >>>> classes, configuration files and probably other places. Is there any > >>>> list available which files need to be changed when a new Flash > >>>> version/runtime is added? > >>>> > >>>> 3) How is the value of > >>>> > >>>> > <path-element>libs/player/{targetPlayerVersion}.{targetPlayerMinorVersion}/playerglobal.swc</path-element> > >>>> set? > >>>> > >>>> 4) Using Flex 4.5 means, the playerglobal.swc will be 10.2, but the > >>>> generated SWF format will be Flash 11. Does that mean we should switch > >>>> the default runtime to Flash 11, or should the user be able to select > >>>> the version (10.1 or 11.0)? > >>>> > >>>> Here are the things I've tried so far: > >>>> a) copy the files from the new Flex version over into the $LPS_HOME > >>>> directory structure, following the guideline file Henry created > >>>> > >>>> b) Update the LPS.java player version in > >>>> WEB-INF/lps/server/src/org/openlaszlo/server/LPS.java > >>>> public static String mDefaultFlexVersion = "10.2"; > >>>> > >>>> c) Added the new Flex version to the list of known versions in > >>>> WEB-INF/lps/server/src/org/openlaszlo/compiler/Compiler.java: > >>>> public static List<String> KNOWN_FLEX_VERSIONS = > >>>> Arrays.asList("10.0", "10.1", "10.2"); > >>>> > >>>> d) Added the swf11 runtime switch in > >>>> org.openlaszlo.sc.SWF9External.java#compileTranslationUnits > >>>> if ("swf11".equals((String)options.get(Compiler.RUNTIME))) { > >>>> cmd.add("-target-player=10.2"); > >>>> } else if ("swf10".equals((String)options.get(Compiler.RUNTIME))) > { > >>>> if ("10.1".equals(flex_version)) { > >>>> > >>>> e) LFC build folder WEB-INF/lps/lfc > >>>> In build.xml, add "11" to var swfruntimes. > >>>> The individual build shell scripts access the flex and runtime default > >>>> settings in > >>>> WEB-INF/lps/config/lps.properties > >>>> # Default runtime > >>>> compiler.runtime.default=swf11 > >>>> compiler.flex_version.default=10.2 > >>>> > >>>> Now, when I try to build, I get the following error message when > >>>> building the LFC SWC files: > >>>> lzl: > >>>> [echo] Compiling > >>>> /home/raju/src/svn/openlaszlo/trunk45/lps/includes/lfc/LFC10.swc > >>>> [echo] Runtime: swf10 > >>>> [java] compiler output is Loading configuration file > >>>> > /home/raju/src/svn/openlaszlo/trunk45/WEB-INF/frameworks/flex-config.xml > >>>> [java] > >>>> [java] Exception compiling scriptfile: > >>>> org.openlaszlo.sc.CompilerError: line unknown: Error: Type was not > >>>> found or was not a compile-time constant: TextLayoutFormatValueHolder, > >>>> in line: attr:TextLayoutFormatValueHolder, > >>>> [java] line unknown: Error: Type was not found or was not a > >>>> compile-time constant: TextLayoutFormatValueHolder, in line: > >>>> styleSelector:String):TextLayoutFormatValueHolder > >>>> [java] org.openlaszlo.sc.CompilerException: > >>>> org.openlaszlo.sc.CompilerError: line unknown: Error: Type was not > >>>> found or was not a compile-time constant: TextLayoutFormatValueHolder, > >>>> in line: attr:TextLayoutFormatValueHolder, > >>>> [java] line unknown: Error: Type was not found or was not a > >>>> compile-time constant: TextLayoutFormatValueHolder, in line: > >>>> styleSelector:String):TextLayoutFormatValueHolder > >>>> [java] at > org.openlaszlo.sc.Compiler.compile(Compiler.java:430) > >>>> [java] at org.openlaszlo.sc.lzsc.compile(lzsc.java:127) > >>>> [java] at org.openlaszlo.sc.lzsc.compile(lzsc.java:366) > >>>> [java] at org.openlaszlo.sc.Main.main(Main.java:23) > >>>> [java] Compilation aborted. > >>>> > >>>> BUILD FAILED > >>>> /home/raju/src/svn/openlaszlo/trunk45/WEB-INF/lps/lfc/build.xml:128: > >>>> javax.script.ScriptException: > >>>> sun.org.mozilla.javascript.internal.WrappedException: Wrapped The > >>>> following error occurred while executing this line: > >>>> /home/raju/src/svn/openlaszlo/trunk45/WEB-INF/lps/lfc/build.xml:80: > >>>> Java returned: 1 (<Unknown source>#28) in <Unknown source> at line > >>>> number 28 > >>>> at > >>>> > com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110) > >>>> at > >>>> > com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:124) > >>>> at > >>>> javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247) > >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>>> ... > >>>> > >>>> What should I do next? I still see that the system tries to build an > >>>> LFC10SWC, not an LFC11.SWC. And the error is probably connected to an > >>>> API change for the TLF. > >>>> > >>>> Any help appreciated. The runtime information is really spread out > >>>> over MANY files. > >>>> > >>>> Raju > >>>> > >>>> On Tue, Nov 15, 2011 at 2:17 PM, Raju Bitter > >>>> <[email protected]> wrote: > >>>> > Ignacio, > >>>> > > >>>> > did you ever try to upgrade the compiler? I'm going to give it a try > >>>> > today. Would be good to have the compiler upgraded before the 5.0 > >>>> > release. > >>>> > > >>>> > @Henry: If I run into any problems, I'd appreciate your help. > >>>> > > >>>> > Raju > >>>> > > >>>> > On Tue, Sep 13, 2011 at 2:43 PM, Amy Muntz < > [email protected]> > >>>> > wrote: > >>>> >> Hi Ignacio, > >>>> >> > >>>> >> Yes - it would be great if you could work on SWF12 support. Let us > >>>> >> know how > >>>> >> it goes and if you get stuck, please don't hesitate to send email. > This > >>>> >> would be a great step forward! > >>>> >> > >>>> >> Thanks so much! > >>>> >> Amy > >>>> >> > >>>> >> > >>>> >> > >>>> >> On Mon, Sep 12, 2011 at 7:44 PM, Donald Anderson < > [email protected]> > >>>> >> wrote: > >>>> >>> > >>>> >>> Thanks, Henry. > >>>> >>> Ignacio, I also worked on this code, though not as recently as > Henry. > >>>> >>> So I may be able to help too if you get stuck. > >>>> >>> Thanks for volunteering to work on this! > >>>> >>> - Don > >>>> >>> On Sep 12, 2011, at 6:56 PM, Henry Minsky wrote: > >>>> >>> > >>>> >>> I was the one who updated to the last SDK, I could help you out > with > >>>> >>> trying to update. > >>>> >>> > >>>> >>> I had some steps I wrote up in a file in the sources, in > >>>> >>> 3rd-party/how-to-copy-flex > >>>> >>> > >>>> >>> There are probably better ways to grab the flex SDK bits than > what I > >>>> >>> did, > >>>> >>> but this is a place to start. I can help out if there are any > changes > >>>> >>> to the > >>>> >>> command line calls to > >>>> >>> invoke Flex. > >>>> >>> > >>>> >>> In the file > >>>> >>> WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9External.java > >>>> >>> there is code which builds the command args that call the Flex > >>>> >>> compiler. It > >>>> >>> might be necessary to modify these if any args have changed or > been > >>>> >>> added to > >>>> >>> mxmlc or compc > >>>> >>> > >>>> >>> > >>>> >>> > >>>> >>> > >>>> >>> On Mon, Sep 12, 2011 at 3:49 PM, Ignacio Lopez > >>>> >>> <[email protected]> > >>>> >>> wrote: > >>>> >>>> > >>>> >>>> OL is missing from A LOT of new things in Flash by being stuck > with > >>>> >>>> the > >>>> >>>> old SDK and swf formats...Any plans / timeframe to upgrade to > Flex > >>>> >>>> 4.5 SDK > >>>> >>>> and support swf12? > >>>> >>>> I can volunteer some time to help if someone points me in the > right > >>>> >>>> direction =) > >>>> >>> > >>>> >>> > >>>> >>> > >>>> >>> -- > >>>> >>> Henry Minsky > >>>> >>> > >>>> >>> > >>>> >>> > >>>> >>> <howto-copy-flex> > >>>> >>> > >>>> >>> -- > >>>> >>> Don Anderson > >>>> >>> Java/C/C++, Berkeley DB, systems consultant > >>>> >>> > >>>> >>> voice: 617-306-2057 > >>>> >>> email: [email protected] > >>>> >>> www: http://www.ddanderson.com > >>>> >>> blog: http://libdb.wordpress.com > >>>> >>> > >>>> >>> > >>>> >>> > >>>> >>> > >>>> >> > >>>> >> > >>>> > > >>> > >>> > >>> > >>> -- > >>> Henry Minsky > >>> > >>> > >>> > >>> > -- Henry Minsky
