The second time, it worked.

> On Mar 7, 2017, at 12:40 PM, Harbs <harbs.li...@gmail.com> wrote:
> 
> Bah. I’m getting the following when I try to install dual:
> 
> Installer version 3.2.0 (mac)
> Using Locale: en_US
> Fetched the SDK download mirror URL from the CGI.
> SDK version Apache FlexJS Dual
> AIR version 3.1
> Flash Player version 11.1
> Creating Apache FlexJS home
> Creating temporary directory
> Downloading Apache FlexJS 
> from:http://apacheflexbuild.cloudapp.net:8080/job/flex-asjs-dual/lastSuccessfulBuild/artifact/out/apache-flex-flexjs-0.8.0-bin.tar.gz
> Unable to download Apache Flex SDK
> Installation aborted
> 
>> On Mar 7, 2017, at 3:30 AM, Alex Harui <aha...@adobe.com> wrote:
>> 
>> Hi,
>> 
>> I think I finally have the dual branch operational enough for folks to
>> poke at.  There is one issue with FB integration where it keeps starting a
>> compile right after the previous compile finishes.  I'm looking into that
>> today, but for now I just go to Project Properties and switch to another
>> FlexJS SDK.
>> 
>> One goal of the dual branch was to have one invocation of the compiler
>> generate both SWF and JS output.  That way, if you are using an IDE like
>> FlashBuilder and save your changes, the compiler will generate both SWF
>> and JS and catch any differences in the underlying APIs.
>> 
>> Another goal was to allow FlexJS classes to generate overrides of Flash
>> classes but with FlexJS types.  This would give us better control over the
>> APIs presented to FlexJS customers.  For example, in Flash, Sprite has a
>> dispatchEvent method that takes a flash.events.Event.  We'd like to tell
>> our users that UIBase has a dispatchEvent that takes an
>> org.apache.flex.events.Event.  But if you write:
>> 
>> class UIBase extends Sprite
>> {
>>   override public function
>> dispatchEvent(event:org.apache.flex.events.Event):Boolean
>>   {
>>   }
>> }
>> 
>> The compiler normally returns an error since the base class has:
>> 
>> public function dispatchEvent(event:flash.events.Event):Boolean
>> 
>> 
>> But now we can add metadata to our dispatchEvent override.
>> 
>> [SWFOverride(params="flash.events.Event",
>> altparams="org.apache.flex.events.Event:org.apache.flex.events.MouseEvent")
>> ]
>> override public function
>> dispatchEvent(event:org.apache.flex.events.Event):Boolean
>> 
>> And the FlexJS compiler will allow the override without an error.
>> However, it will actually generate SWF code for event being a
>> flash.events.Event since the runtime would otherwise throw an exception
>> about illegal overrides. As long as org.apache.flex.events.Event extends
>> flash.events.Event on the SWF side, then the code will operate normally in
>> the player.
>> 
>> 
>> The combination of these two goals make Flash Builder integration a bit
>> more seamless.  Before, you would save your changes and compile a SWF,
>> then go and run an Eclipse launch script that ran the cross-compiler.  And
>> errors found during the cross-compile couldn't be clicked on in the
>> problems pane.  But now, on each save you spend a bit more time compiling
>> for both platforms, but you immediately see errors against the JS APIs and
>> can examine them from the problems pane.  I found some missing APIs while
>> testing this.
>> 
>> In addition, the flex-config.xml and air-config.xml files have between
>> tweaked to be JS-oriented.  IOW, the external-library-path and
>> library-path in those files point to JS.swc and the FlexJS JS SWCs (like
>> BasicJS.swc).  This means that code-hinting is oriented towards the JS API
>> surface. That prevents a lot of Flash-only APIs from showing up in the
>> code hinting.  We might want to figure out a way to hide APIs since some
>> of the offerings don't have Flash support either.
>> 
>> One cool outcome of this work is that we can now generate the JS output
>> without playerglobal.swc or airglobal.swc.  I think they are needed for
>> Flash Builder to think of the SDK as a Flex SDK, but if you are not using
>> FB and just using Ant or Maven, it should be possible to create a release
>> package for those Ant and Maven customers that have no Adobe dependencies!
>> Of course, that means that you won't get SWF output, which I think is
>> still beneficial for many reasons, but if you think you don't need the SWF
>> output, we could come up with a release package that is truly all ALv2
>> compatible.
>> 
>> I made changes to the Maven mojos to exercise this dual output code, but
>> I'm waiting on Christofer and other maven experts to decide whether I've
>> broken any Maven rules.   Maven doesn't really need these changes since
>> you essentially dictate what outputs you want in the POM anyway.  The main
>> benefit of dual output was for IDEs like Flash Builder.
>> 
>> Anyway, you can try to use the Installer and install the FlexJS Dual build
>> or build it from the repos.  If you use the repos, be sure to get both the
>> flex-falcon and flex-asjs dual branches and build flex-falcon first.
>> 
>> Let me know what you think.
>> -Alex
>> 
>> 
>> 
> 

Reply via email to