flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik de Bruin <e...@ixsoftware.nl>
Subject Re: [FlexJS] Handling interfaces
Date Thu, 31 Oct 2013 13:20:52 GMT
And how does one 'overlay' an SDK?

EdB



On Thu, Oct 31, 2013 at 2:07 PM, Alex Harui <aharui@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" <erik@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 <erik@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" <erik@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 <erik@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 <aharui@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" <erik@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
>>>> >>>><bigosmallm@gmail.com> wrote:
>>>> >>>>> On Mon, Jul 29, 2013 at 11:20 AM, Alex Harui <aharui@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

Mime
View raw message