And how does one 'overlay' an SDK? EdB
On Thu, Oct 31, 2013 at 2:07 PM, Alex Harui <aha...@adobe.com> wrote: > I've been testing against DataBindingTest whose sources are up on my > people.a.o folder, so maybe this doesn't build anymore, but the console > output looks like you are referencing a full Apache Flex SDK instead of > one that is overlaid, which might cause the compiler to find CSS files in > a whole bunch of SWCs that we don't currently handle. > > IOW, you can't just add FlexJSUI.swc to an existing SDK, it has to be > "overlaid" which neuters some things in an Apache Flex SDK. > > -Alex > > On 10/31/13 5:29 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: > >>Hi, >> >>I'm busy building support for the "is" and "as" operators into FlexJS. >>Now, first I thought I'd try to compile the FlexJSTest_again example. >>To my suprise, I get an error: >> >>CSS codegen problem. Reason: 'Unable to find compilation unit for >>Embed(source="Assets.swf",symbol="mx.skins.cursor.BusyCursor")' >> >>The error seems to originate from FalconJx, it is thrown in >>JSCSSCompilationSession.java... Now, my sources are fresh, I've >>rebuild the SDK (super-clean main), all compiler projects (wipe main) >>and the FlexUI.swc. Am I missing something (command line arg) or is >>there some source not yet committed or something more obvious I'm >>overlooking? >> >>These are my arguments: >> >>+env.PLAYERGLOBAL_HOME=/Users/erik/Documents/ApacheFlex/dependencies/Playe >>rGlobal/player >>+playerglobal.version=11.1 >>-load-config="/Applications/Adobe Flash Builder >>4.7/sdks/4.10.0/frameworks/flex-config.xml" >>-library-path+=/Users/erik/Documents/ApacheFlex/git/flex-asjs/frameworks/a >>s/libs/FlexJSUI.swc >>-js-output-type=FLEXJS >>-closure-lib=/Users/erik/Documents/ApacheFlex/dependencies/GoogleClosure/l >>ibrary >>-sdk-js-lib=/Users/erik/Documents/ApacheFlex/git/flex-asjs/frameworks/js/F >>lexJS/src >>/Users/erik/Documents/ApacheFlex/git/flex-asjs/examples/FlexJSTest_again/s >>rc/FlexJSTest_again.mxml >> >>EdB >> >> >>On Thu, Oct 31, 2013 at 6:37 AM, Erik de Bruin <e...@ixsoftware.nl> wrote: >>> I'll have a look at it today. >>> >>> EdB >>> >>> >>> >>> On Wednesday, October 30, 2013, Peter Ent wrote: >>>> >>>> Thanks, Erik. Interesting read. FlexJS uses a lot of interfaces so >>>>we'll >>>> have to find a reasonable solution for this. We've managed to avoid the >>>> situation in JavaScript but it is coming up quickly. >>>> >>>> --peter >>>> >>>> On 10/30/13 3:10 PM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >>>> >>>> >Some guidance can be found here [1] and here [2]. >>>> > >>>> >EdB >>>> > >>>> >1: >>>> >>>> > >>>>>http://blogs.adobe.com/bparadie/2011/11/26/classes-inheritance-interfac >>>>>es- >>>> >packages-and-namespaces/ >>>> >2: >>>> >>>> > >>>>>https://cwiki.apache.org/confluence/display/FLEX/Simulating+AS3+languag >>>>>e+f >>>> >eatures+in+JavaScript+using+AMD+and+ES5 >>>> > >>>> > >>>> > >>>> >On Wed, Oct 30, 2013 at 8:07 PM, Erik de Bruin <e...@ixsoftware.nl> >>>> > wrote: >>>> >> "instanceof" doesn't check if an interface is implemented, neither >>>>in >>>> >> Flex nor using Closure inheritance in JavaScript. What we need for >>>> >> runtime checking of interface implementation is an global "is" >>>> >> function... I think I taught FalconJx to translate "ClassA is >>>>ClassB" >>>> >> as "is(ClassA, ClassB)". All we need to do now is to implement a >>>> >> global "is()" function and somehow teach the compiler to keep track >>>>of >>>> >> which classes implement which interfaces - all the way up the chain >>>> >> and sideways (interfaces can implement interfaces). >>>> >> >>>> >> EdB >>>> >> >>>> >> >>>> >> >>>> >> On Wed, Oct 30, 2013 at 6:34 PM, Alex Harui <aha...@adobe.com> >>>>wrote: >>>> >>> Reviving this thread... >>>> >>> >>>> >>> Peter says he wants to test to see if an object implements an >>>> >>>interface at >>>> >>> runtime. What mechanism do we want to use? >>>> >>> >>>> >>> I don't think we need to make instanceof work, just have some test >>>>to >>>> >>>call. >>>> >>> >>>> >>> -Alex >>>> >>> >>>> >>> On 7/30/13 12:46 AM, "Erik de Bruin" <e...@ixsoftware.nl> wrote: >>>> >>> >>>> >>>>When using interfaces for type checking, there are two 'kinds': at >>>> >>>>compilation and at runtime. >>>> >>>> >>>> >>>>The @interface and @implements annotations are for compile time >>>> >>>>checking. >>>> >>>> >>>> >>>>For runtime checking comes in two flavours: 'instanceof' and 'is'. >>>> >>>> >>>> >>>>Our method of setting up inheritance (goog.inherits) maintains the >>>> >>>>inheritance chain, so 'instanceof' works out of the box. >>>> >>>> >>>> >>>>The work starts with 'is'. We want to story the 'extends' and >>>> >>>>'implements' metadata from AS in the JS classes and create a >>>>method to >>>> >>>>test against that metadata set. I have a pretty good idea on how to >>>> >>>>implement such a beast, but it will require some (ha!) tinkering >>>>with >>>> >>>>the FlexJS JS framework and FalconJx. That will take some time... >>>> >>>> >>>> >>>>EdB >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>On Mon, Jul 29, 2013 at 9:17 PM, OmPrakash Muppirala >>>> >>>><bigosma...@gmail.com> wrote: >>>> >>>>> On Mon, Jul 29, 2013 at 11:20 AM, Alex Harui <aha...@adobe.com> >>>> >>>>>wrote: >>>> >>>>> >>>> >>>>>> I think FalconJS was going to generate something like: >>>> >>>>>> >>>> >>>>>> if (child != undefined && >>>> >>>>>> child.$implements["org.apache.flex.core.IChrome"]) >>>> >>>>>> >>>> >>>>>> Not sure what it was going to do for classes, maybe chase the >>>> >>>>>>prototype >>>> >>>>>> chain? >>>> >>>>>> >>>> >>>>>> The other thing that occurred to me about $implements or >>>> >>>>>>child.is(IChrome) >>>> >>>>>> is that all objects must then have these properties or functions >>>> >>>>>>where >>>> >>>>>>the >>>> >>>>>> global function >>> >>> >>> >>> -- >>> Ix Multimedia Software >>> >>> Jan Luykenstraat 27 >>> 3521 VB Utrecht >>> >>> T. 06-51952295 >>> I. www.ixsoftware.nl >> >> >> >>-- >>Ix Multimedia Software >> >>Jan Luykenstraat 27 >>3521 VB Utrecht >> >>T. 06-51952295 >>I. www.ixsoftware.nl > -- Ix Multimedia Software Jan Luykenstraat 27 3521 VB Utrecht T. 06-51952295 I. www.ixsoftware.nl