Thanks for the info Alex and better clarifying some of Royale's
overall goals.  I certainly don't expect any of the current committers to
start working on a Flash API.  I'm just more interested in how to integrate
a Flash API and if it's even worth it to do so.

To me, it sounds like a Flash API should continue to be something totally
separate as my goal is to drop in an existing flash project and compile to
JS or WASM.  The concept of Royale, its libraries, and Flex overall is just
far removed from Flash and its' targeted use.

To be clear on SpriteFlexjs, it's not decompiled code from Adobe
playerglobal.swc.  We simply copied the skeleton of the class that you can
get by previewing the swc classes in FlashDevelop along with all it's
comments for code completion in an IDE and then began implementing code.
It's just a quick way to set up a class with all the needed methods,
properties and comments.  We do need to go through and clean up the
comments for sure though since they have Adobe copyright information.

I get the idea of the steering wheel over the reigns, but there really
isn't a better animation pipeline out there for the web when you combine
Adobe Animate and Flash.  The speed and flexibility is still unmatched.
Sure, there is CreateJS, but the performance is very poor and if you want
performance then your graphics have to be turned into bitmaps where you
lose all flexibility in manipulating your graphics at runtime.  There is
nothing better to move to without giving up a lot unfortunately or spending
a significant amount of time moving to another platform that requires a
larger team and/or longer development time.

So, the idea is to have a WASM output that allows for flexible graphics and
performance, but how we get there is uncertain.  As Jason mentioned,
Typescript already has the AssemblyScript compiler for WASM, so I've
considered re-writing SpriteFlexjs in Typescript as a whole new project and
moving away from ActionScript all together and maybe some conversion tools
for converting Flash projects to Typescript.  However, I far prefer the
ecosystem of ActionScript and not re-writing all my projects to Typescript.

Last thought and a bit off topic, but why are there swcs like "CreateJSJS"
and "GoogleMapsJS".  These all use "org.apache.royale" naming convention
when these are third party libraries with there own naming convention.  Why
are these not simple stubs as an api for the actual javascript library.  I
realize these are incomplete, but I've never understood why they exist in
their current form.

Kenny

On Tue, Oct 22, 2019 at 1:51 PM Alex Harui <aha...@adobe.com.invalid> wrote:

> First, a technical/factual matter:  In Royale, if your code says
> org.apache.royale.events.Event, the output is
> org.apache.royale.events.Event, not "flash.events.Event".  The SWF
> implementation of org.apache.royale.events.Event subclasses
> flash.events.Event, and subclasses something else for JS.  Class
> Hierarchies are not guaranteed to be the same across platforms.  However,
> there are some exceptions:  If you write Array.sortOn, the compiler does
> not output Array.sortOn, it outputs org.apache.royale.utils.Language.sortOn.
>
> Now to opinion-based matters.  As I mentioned in my last post, the
> objective of Flex was to abstract away Flash, so that Flash concepts
> (timelines, Stage, Sprite, etc) were not the base of everything from the
> application developer's standpoint.  Of course in Flex the Flash Sprite was
> the true base of Flex's UIComponent and Flash MovieClip was the base of
> Flex's SystemManager.  But the abstraction layer was meant to be
> UIComponent and up.  Our goal was for folks to write their Flex apps
> without ever writing "import flash.x.y".
>
> For various reasons, many Flex developers went down to the Flash API and
> used URLLoader instead of HTTPService, and Sprite instead of UIComponent.
> That was effectively like writing x86 assembly code in your C++ app.  You
> can do it, and get performance gains, but the assembly code won't be
> portable to some other CPU.
>
> There is no need to discuss whether or not there should be an open source
> emulation of Flash APIs.  If you want it, go do it.  If you can do it in an
> Apache-compatible way, we would consider hosting it in our repos, but there
> is no need for every Royale-compatible library to be housed in Royale.  If
> we're successful, there will be plenty of third party libraries hosted
> elsewhere.  In the Flex days, Greensock, and other libraries were hosted
> elsewhere.  No big deal.
>
> That said, I think you will have a hard time convincing the current set of
> Royale committers to change what they are doing and work on the Flash API
> emulation.  I won't because I believe it to be a ton of work, not only now
> but into the future if we ever target another runtime/output-language.  But
> also, I don't know Flash that well.  I only know where Flex touched Flash,
> but I have no clue about most of the other Flash APIs.  I think the same is
> true of most of the current set of committers.
>
> Royale's MX emulation will emulate a few popular Flash APIs by renaming
> the packages.  So flash.net.FocusEvent is now mx.net.FocusEvent.  We are
> doing that so that you know your app is completely migrated when there is
> no more "import flash.x.y" in your migrated code.  And also, so we are not
> committed to provided EVERY property on flash.x.y, only the ones that Flex
> or the migrated app used.  That's primarily because we are a small group of
> volunteers.  There is no big company like Adobe behind Royale.  Adobe does
> not currently care whether Royale succeeds or not.  They will not put more
> engineers on Royale right now.
>
> I assume that folks like Li Zhi, Kenny, and Jason do know the Flash API
> much better because they coded SWFs using it, so it is your responsibility
> to collect enough people who know Flash and work on the emulation.  Getting
> the current set of committers to do it may not be nearly as efficient as
> finding the right people who know Flash to do it.  We (I) will get out of
> your way and help in certain places like making sure the compiler is
> correctly transpiling.
>
> In case you are wondering why I think Flash is a ton of work to emulate,
> here's why:  If you only used Flex APIs (and did not use "lower-level"
> Flash APIs), then there is no promise of frame-rates.  In Flex, you
> instantiated a UI widget, added it to the DOM, and it showed up
> eventually.  That is effectively all Flex promised.  I am very certain I
> can do that in a browser or even in native code on mobile devices.  And
> even if there was 1 million Flex apps out there, I'll be overjoyed if we
> end up helping 1000 apps get ported over the next few years.  So we only
> need to emulate enough of Flex and Flash for a 1000 different ways that
> Flex APIs (and some Flash APIs) were used.
>
> But for those of you willing to take on emulating Flash, there were
> probably a billion Flash SWFs out there using Flash APIs in millions of
> different ways, some of which rely on frame-rates and other timing related
> aspects like the deferred rendering model.  Given that a browser often
> updates more immediately, Flash emulation might run into issues where the
> screen updates before desired.  Fixing these things will be very hard.  And
> then to do it all over again on the next popular runtime/platform?  That's
> too much work for me, but I wish you well on your journey.
>
> In short, Flex has a much simpler set of expectations than Flash, and
> Royale is even simpler, making it easier to support different
> outputs/platforms/runtimes in the future.  We are not promising that the MX
> emulation will run on other outputs/platforms/runtimes.  We will try to
> make sure Basic and probably Express and Jewel run on other
> outputs/platforms/runtimes.  Why is that?  Because MX emulation will
> probably emulate an ENTER_FRAME event and it may not be worth carrying that
> forward forever.  The MX emulation is mainly designed to save time getting
> off of Flash and buy you time to develop the next generation of your
> application in Basic or Jewel, resulting in small, faster code, or a more
> modern UI, but in both cases, better future-proofing for the next hot
> output/platform/runtime.
>
> If you are still reading, one more point:  Sometimes, it is time for a
> paradigm shift.  Back when the automobile was invented, someone came out
> with a mechanical horse, figuring that everyone knew how to use reins and
> would not want to learn how to use a steering wheel.  But it turned out
> that the automobile, despite the weird usability of the steering wheel,
> became the dominant trend.  People are proposing ways to do animation on
> the web that is different from Flash and those ways may be more portable to
> other platforms/runtimes.  So instead of coding the mechanical horse, it
> may be time to move people to something longer lasting. That's why Basic in
> Royale is all about strands and beads and PAYG, a completely new paradigm
> from Flex's one-component-set paradigm.  That was done on purpose, to make
> it easier for volunteers to contribute beads with less concern about
> impacting big complex components, so that we can migrate to other platforms
> by not having APIs that are too platform specific, etc.
>
> My 2 cents,
> -Alex
>
> On 10/22/19, 10:24 AM, "jasonhuang1...@gmail.com" <
> jasonhuang1...@gmail.com> wrote:
>
>     Hi Carlos,
>     I’m just very confused with platform specified Apis you mentioned. I
> think flash API is the base of everything, including flex. So we make flash
> API run everywhere, then all other projects/libs would run everywhere too,
> including flex. For our users they use exact same codes and target to
> multiple platforms, that is exact what “code once, run everywhere” means,
> isn’t it?
>
>     For different environments/platforms we just have to modify some of
> implementations while remaining the API (function signature, class,
> namespace) to be consistent.
>
>     Wasm runs in a sandbox of browsers, that means all run-time
> environments are provided by browsers, it has the same environment as JS
> dose. So for wasm, we still need to access DOM as usual, nothing special
> than JS. Thus, what JS could do, wasm may do so. What JS can’t do, wasm may
> not either.
>
>     Cheers
>     Jason
>
>     > 在 2019年10月23日,上午12:01,Carlos Rovira <carlosrov...@apache.org> 写道:
>     >
>     > Hi Kenny,
>     >
>     > For each platform there's ultimately a concrete API. So Royale ends
>     > translating to the real APIs. Users writes in Royale ensuring their
> codes
>     > are reliable over time no matter what platform you use or is
> trending.
>     >
>     > I'd want to write a form, a game or a whatever we want with Royale
> code and
>     > let compiler know how to output the best and optimized platform code
> we can.
>     >
>     > So Add WASM? we're all share that goal without doubt.
>     > About APIs I think is important we understand the multi target
> nature in
>     > Royale.
>     >
>     > I think the problem would be trying to bring the same Flash API, and
> make
>     > users code using that APIs, since that defeats the purpose of Royale.
>     >
>     > Maybe other option would be the same we're doing with emulation
> components.
>     > While Royale brings new APIs and new Code and concepts like PAYG,
>     > Strands/Beads,...
>     > We have MXRoyale to emulate Flex under the new code base that
> incorporates
>     > all the goodness of Royale, so people can compile a Flex project in
> Royale.
>     >
>     > So doing adding WASM to Royale in the current APIs, could allow
> create an
>     > emulation library (lets say instead MXRoyale, call it FlashRoyale)
> that
>     > will emulate Flash API in order to allow Flash projects compile with
> Royale
>     > compiler and output to WASM, JS, or SWF.
>     >
>     > Sound this like a real option?
>     >
>     > Carlos
>     >
>     >
>     >> El mar., 22 oct. 2019 a las 17:01, Kenny Lerma (<
> ke...@kennylerma.com>)
>     >> escribió:
>     >>
>     >> I didn't realize that Royale was actually converting
>     >> "org.apache.royale.events.Event" to "flash.events.Event" for the SWF
>     >> target.  It's the idea of one language for multiple targets.
> However, this
>     >> seems strange in that we are using ActionScript to begin with, but
> ditching
>     >> the naming convention.  Is this because of legal reasons or a need
> to
>     >> separate Royale from Flash all together?  I would imagine both.
> While I
>     >> greatly appreciate the efforts on the Flex side of things, I
> believe both
>     >> Jason and I are looking for the best route to fill the void of a
> graphics
>     >> rendering engine and/or the ability to bring in existing flash
> projects,
>     >> but compile to JavaScript.  Additionally, WASM gives us the
> performance we
>     >> need for these kinds of high animation projects. The path is a bit
> blurry
>     >> to integrating this with Royale.
>     >>
>     >> Ultimately, I think we need to add WASM to the compiler and build a
> Flash
>     >> API separate from Royale, but maybe there is a better route.
>     >>
>     >> Kenny
>     >>
>     >> On Tue, Oct 22, 2019 at 6:59 AM Carlos Rovira <
> carlosrov...@apache.org>
>     >> wrote:
>     >>
>     >>> Hi Jason,
>     >>>
>     >>> The scope of Flash was more wide and open than Flex. Flex was
> created to
>     >>> target Applications. Most of the time business applications
> composed by
>     >>> forms, data grids, lists, graphs and other visual data
> representations.
>     >>> While Flash can do that, productivity was very low in real world
> use
>     >> cases.
>     >>> So Flex was the perfect solution to get great visuals and
> renderings of
>     >>> that kind of business applications and get a productivity
> unmatched by
>     >>> other solutions.
>     >>>
>     >>> Since Royale was created from Flex concepts it tries to solve the
> same
>     >>> scope as Flex, but as we was able to use Flash pieces inside Flex
> and mix
>     >>> both, Royale don't want to "cut its own hands" and put a fence. I
> think
>     >> we
>     >>> all want Royale to expand limits and go beyond Flex limits.
>     >>>
>     >>> About APIs. If I understand correctly, others already go the route
> to
>     >> have
>     >>> "flash.*" APIs to make old Flash SWFs run in JS or WASM.
>     >>>
>     >>> IMHO, Royale should have its own API. For example if we choose the
> Event
>     >>> example in Roayle we have:
>     >>>
>     >>> org.apache.royale.events.Event
>     >>>
>     >>> and that makes Royale users be able to compile for SWF (that will
> in the
>     >>> end use "flash.events.Event"
>     >>>
>     >>> COMPILE::SWF
>     >>>    public class Event extends flash.events.Event implements
> IRoyaleEvent
>     >>>
>     >>> and for JS will use Google Closure event.
>     >>>
>     >>> COMPILE::JS
>     >>>    public class Event extends goog.events.Event implements
> IRoyaleEvent
>     >> {
>     >>>
>     >>> If you work in WASM, the org.apache.royale.events.Event, should
> expand
>     >> that
>     >>> class to what WASM specs will impose in the final implementation
> (don't
>     >>> know right now what's or maybe this could be a silly example and
> events
>     >> be
>     >>> managed by JS)
>     >>>
>     >>> So in resume. Working in WASM, would mean as well in working in
> some
>     >>> "display" ARQ that would introduce a whole way of drawing and
> animating
>     >> in
>     >>> Royale that not exists right now and that means write compiler,
> write
>     >>> classes that support SWF, JS and WASM... and more
>     >>>
>     >>> I'm right in this way of thinking? or maybe I'm wrong?
>     >>>
>     >>> Thanks
>     >>>
>     >>>
>     >>> El mar., 22 oct. 2019 a las 8:03, Alex Harui
> (<aha...@adobe.com.invalid
>     >>> )
>     >>> escribió:
>     >>>
>     >>>> Hi Jason,
>     >>>>
>     >>>> Volunteers in this project are welcome to work on whatever they
> want.
>     >>>>
>     >>>> The reason I am interested in Flex instead of Flash is because
> Flex was
>     >>>> designed to abstract away the Flash API, so Flex is going to be
> more
>     >>> easily
>     >>>> portable to different runtimes than Flash.  Supporting Flash will
> be
>     >> more
>     >>>> work than I have time and interest for.  I'm not sure we have the
>     >> number
>     >>> of
>     >>>> people to do it, or that they know Flash well enough to do it.
> Also,
>     >>> last
>     >>>> time we looked at Li Zhi's code, there were issues about the
> legality
>     >> of
>     >>>> the implementation.  Apache probably can't accept
> reverse-engineered
>     >>>> implementations.
>     >>>>
>     >>>> By focusing on Flex, we actually abstract away the rendering
> model.
>     >> MXML
>     >>>> does not dictate code flow.  Flex does not promise a deferred
> rendering
>     >>>> model based on frames.  We have emulated a fair amount of the
>     >> networking
>     >>>> and some of the IO, but I don't want to be obligated to support
> all of
>     >>> it.
>     >>>>
>     >>>> But that doesn't mean you shouldn't try.  The Flash implementation
>     >> might
>     >>>> be better off in a different repo outside of Apache unless there
> you
>     >> can
>     >>>> get more volunteers to pitch in and clear away any
>     >>>> legal/intellectual-property/licensing concerns.
>     >>>>
>     >>>> My 2 cents,
>     >>>> -Alex
>     >>>>
>     >>>> On 10/21/19, 9:01 PM, "Jason Huang" <jasonhuang1...@gmail.com>
> wrote:
>     >>>>
>     >>>>    Hi guys,
>     >>>>
>     >>>>    Now I see, we have same goals for delivering a comprehensive
> SDK
>     >> to
>     >>>> our
>     >>>>    users.
>     >>>>
>     >>>>    As for Flash APIs, for my understanding, it is AS3 language
>     >> build-in
>     >>>> basic
>     >>>>    library that provides basic Rendering, IO, networking, etc.
>     >>>>    The relationship of Flash APIs with AS3 is similar to DOM with
> JS,
>     >>> .Net
>     >>>>    with C#, stdlib with C++, etc. I did not actually compare AS3
> to
>     >> TS,
>     >>> I
>     >>>> meant
>     >>>>    without flash api support, AS3 would be much worse especially
> when
>     >> it
>     >>>> used
>     >>>>    for targeting web applications.
>     >>>>    To make Royale much more reliable, I suppose except high level
>     >> flash
>     >>>> APIs,
>     >>>>    such as MovieClip( timeline based), etc, we should at least
>     >> consider
>     >>>> basic
>     >>>>    IO, networking, rendering apis.
>     >>>>
>     >>>>    As for other projects that tried to emulating flash apis,
>     >>>>    SpriteFlexJS is a project that my friend Li Zhi  started 4
> years
>     >> ago,
>     >>>> our
>     >>>>    initial thought was testing the capabilities for FalconJX
> compiler,
>     >>>>    After this project, I started AJC project to officially
> emulating
>     >>> Flash
>     >>>>    APIs for commercial AS3 projects. During AJC development, we
> made
>     >> our
>     >>>>    own c++ version of Flash APIs( not finished all of them yet)
> to be
>     >> as
>     >>>>    accurate as possible, almost 98% same result as original flash
>     >> player
>     >>>> dose,
>     >>>>    regardless so many differences between DOM and flash player.
>     >>>>    OpenFL made all flash API available, but inside it went
> different
>     >>>>    approaching, graphics vector rendering, event flow, networking
> are
>     >>> all
>     >>>>    different than original flash player, thus made
>     >>>>    existing AS3 project impossible to use it without seriously
>     >> modifying
>     >>>>    source codes.
>     >>>>    Ruffle is another project that written in rust to emulate
> entire
>     >>> flash
>     >>>>    player,  here is its own roadmap
>     >>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fruffle-rs%2Fruffle%2Fwiki%2FRoadmap&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416867258&amp;sdata=cKIyl9Dc3%2FPGKDPgKXoX7OIwNLFSGrr0jjp%2FU9pBJEM%3D&amp;reserved=0
>     >>> ,
>     >>>> it is a totally different
>     >>>>    approaching that parsing SWF at runtime plugin(wasm)/ desktop
>     >> player
>     >>>> other
>     >>>>    than
>     >>>>    compiling AS3 from the sources once again. When it finished, it
>     >> would
>     >>>> be a
>     >>>>    good choice for exiting AS3 projects.
>     >>>>
>     >>>>    I suggest we get our hands on basic flash API implementations
> as
>     >> soon
>     >>>> as
>     >>>>    possible, how would you guys think?
>     >>>>
>     >>>>    Cheers
>     >>>>    Jason
>     >>>>
>     >>>>
>     >>>>    On Mon, Oct 21, 2019 at 5:05 PM Carlos Rovira <
>     >>> carlosrov...@apache.org
>     >>>>>
>     >>>>    wrote:
>     >>>>
>     >>>>> Hi Jason,
>     >>>>>
>     >>>>> to continue complementing the understanding of our goals. Royale
>     >>> has
>     >>>> the
>     >>>>> advantage to be prepared in theory to output to multiple targets
>     >>>> (SWF, JS,
>     >>>>> WASM, ...native iOS?, native Android?,....). Since Royale is an
>     >> SDK
>     >>>> it
>     >>>>> provides all the user need to build an app (compiler, framework,
>     >> UI
>     >>>> set,
>     >>>>> communications, reflection, XML,....).
>     >>>>>
>     >>>>> I think great power of your contribution is to make users that
>     >> was
>     >>>>> outputting JS or SWF be able to output WASM without changing
>     >> their
>     >>>> user's
>     >>>>> code.
>     >>>>>
>     >>>>> That's for me the main point of Royale for years to come, to make
>     >>>> users
>     >>>>> agnostic of technology trends. Royale will handle this for them,
>     >>>> adding the
>     >>>>> support so they don't need to change a single line of code in
>     >> their
>     >>>> apps.
>     >>>>>
>     >>>>> For example, imagine actual teams working with React to make a
>     >> new
>     >>>> app.
>     >>>>> That app has potential to grow as Flex apps did in the past. And
>     >> be
>     >>>> very
>     >>>>> big codebase. Then in few years, WASM should be the new trend and
>     >>>> making
>     >>>>> people migrate from JS to WASM. Maybe by that time React could
>     >>>> handle WASM
>     >>>>> output correctly or not, but due to fragmentation in libraries
>     >> and
>     >>>> code, I
>     >>>>> think that should not be an easy task. Royale instead since has
>     >> the
>     >>>> multi
>     >>>>> target at its Core should be able to reach that goal better and
>     >>>> faster with
>     >>>>> people like you.
>     >>>>>
>     >>>>> About Flash API. If we use our own royale based API that can
>     >> output
>     >>>> to the
>     >>>>> platform we want (instead of flash.*, think about in royale.*), I
>     >>>> think
>     >>>>> this has more power that bringing the older Flash API, since
>     >> you're
>     >>>> writing
>     >>>>> for a platform that is open and prepared for the future. As Alex
>     >>>> said,
>     >>>>> there's others already allowing flash APIs and using Royale
>     >>>> compiler, so if
>     >>>>> that's really what you want, you can plan to work between royale
>     >>> and
>     >>>> those
>     >>>>> projects. I think those are OpenFL and SpriteFlexJS.
>     >>>>>
>     >>>>> I think if you work in Royale for WASM, you can plan to make it
>     >>>> happen for
>     >>>>> Royale itself and for other projects depending on it... so more
>     >>>> users will
>     >>>>> be interested in that new power feature and will make Royale even
>     >>>> more
>     >>>>> interesting and appealing for companies and individuals looking
>     >> to
>     >>>> what
>     >>>>> tech for the future they should use.
>     >>>>>
>     >>>>> Maybe is important in this point to see if this new point of view
>     >>>> can be
>     >>>>> interesting to you or maybe that's not the way to envision the
>     >>>>> possibilities for all this stuff.
>     >>>>>
>     >>>>> Thanks!
>     >>>>>
>     >>>>> Carlos
>     >>>>>
>     >>>>>
>     >>>>>
>     >>>>> El lun., 21 oct. 2019 a las 8:31, Alex Harui
>     >>>> (<aha...@adobe.com.invalid>)
>     >>>>> escribió:
>     >>>>>
>     >>>>>> Royale is currently primarily focused on migrating Flex apps,
>     >>>> which is a
>     >>>>>> subset of all Flash apps.  There are a couple of other
>     >> non-Apache
>     >>>>> projects
>     >>>>>> looking at emulating the Flash APIs.  So if your app is pure
>     >>>> Flash, you
>     >>>>>> might want to contact those other projects.  The main
>     >> restriction
>     >>>> is
>     >>>>> pretty
>     >>>>>> much number of people on the project.  We're busy enough with
>     >>> Flex
>     >>>> apps
>     >>>>> and
>     >>>>>> not worrying about timelines and other Flash things.
>     >>>>>>
>     >>>>>> We are not really competing with TS.   We use AS3 and MXML
>     >>> because
>     >>>> that's
>     >>>>>> what the compiler can parse.  We output SWF and JS because
>     >> that's
>     >>>> what
>     >>>>> our
>     >>>>>> compiler can output.  It should be possible to allow TS in
>     >> Royale
>     >>>> apps if
>     >>>>>> that what volunteers want to add to the compiler.  We would
>     >>> gladly
>     >>>> accept
>     >>>>>> your contribution towards WASM output from the compiler.
>     >>>>>>
>     >>>>>> Hopefully all of these efforts can coexist.  I think the other
>     >>>> Flash
>     >>>>>> emulation projects are using the Royale compiler.  Royale can
>     >> the
>     >>>> home of
>     >>>>>> the compiler used by many projects.
>     >>>>>>
>     >>>>>> My 2 cents,
>     >>>>>> -Alex
>     >>>>>>
>     >>>>>> On 10/20/19, 6:51 PM, "Jason Huang" <jasonhuang1...@gmail.com>
>     >>>> wrote:
>     >>>>>>
>     >>>>>>    Hi,
>     >>>>>>    I understood what you concerned about
>     >> licensing/copyrights. I
>     >>>> won't
>     >>>>>> use the
>     >>>>>>    previous AJC approaching at all, but writing a new compiler
>     >>>> that
>     >>>>>> compiles
>     >>>>>>    AS3 codes to wasm format instead. So that would be a
>     >> totally
>     >>>>> different
>     >>>>>>    approach than I used to do.
>     >>>>>>
>     >>>>>>    As Alex mentioned "Royale currently has no intention of
>     >>>>>>    duplicating/emulation the Flash API.  We want new Royale
>     >> apps
>     >>>> to be
>     >>>>>> built
>     >>>>>>    on top of components instead of timelines and
>     >>> DisplayObjects".
>     >>>> For my
>     >>>>>>    understanding, we are just using AS3 as a typed
>     >>>>>>    language for building applications, nothing to do with
>     >>> porting
>     >>>>> various
>     >>>>>> AS3
>     >>>>>>    projects. Let's say if a AS3 project is purely developed
>     >>> based
>     >>>> on
>     >>>>> Flash
>     >>>>>>    API, in this case if it is willing to use Royale, so it has
>     >>> to
>     >>>> be
>     >>>>>>    re-written to adjust new APIs provided by Royale,  is that
>     >>>> correct?
>     >>>>>>
>     >>>>>>    if our goal is providing a brand new tool chain and apis
>     >>> other
>     >>>> than
>     >>>>>> helping
>     >>>>>>    existing  AS3 projects, I don't see a lot of advantages for
>     >>>> using AS3
>     >>>>>> over
>     >>>>>>    Type Script. Type Script has much more users than AS3 dose
>     >>>> today,
>     >>>>> plus
>     >>>>>> Type
>     >>>>>>    Script has its own compiler to wasm already, known as
>     >>> Assembly
>     >>>> Script
>     >>>>>>    compiler (
>     >>>>>>
>     >>>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAssemblyScript%2Fassemblyscript&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=Dh%2F5%2Bz5WKGK2Z8y7ogvynke228wgNR5ZHvxv5NNYz1A%3D&amp;reserved=0
>     >>>>>> ).
>     >>>>>>
>     >>>>>>    I really wanna put all my efforts in to Royale to make AS3
>     >> to
>     >>>> shine
>     >>>>> as
>     >>>>>>    other web based languages do,  I really wanna know your
>     >>> future
>     >>>>>> plans/goals/
>     >>>>>>    road map, and to find what exactly should I do with it.
>     >>>>>>
>     >>>>>>    Cheers
>     >>>>>>    Jason Huang
>     >>>>>>
>     >>>>>>
>     >>>>>>    On Mon, Oct 21, 2019 at 6:21 AM Alex Harui
>     >>>> <aha...@adobe.com.invalid
>     >>>>>>
>     >>>>>> wrote:
>     >>>>>>
>     >>>>>>> Hi Jason,
>     >>>>>>>
>     >>>>>>> Welcome.  I hope we find a way to work well with you.
>     >>>>>>>
>     >>>>>>> First, a slight correction to what Carlos said about
>     >>>> copyrights.
>     >>>>>> Just
>     >>>>>>> about everything of significance is copyrighted by a
>     >>> company
>     >>>> or
>     >>>>>> individual,
>     >>>>>>> so we're not looking for things "not under a copyright"..
>     >>>> But
>     >>>>> there
>     >>>>>> must
>     >>>>>>> be an Apache-compatible license to use that copyrighted
>     >>>> material.
>     >>>>>>>
>     >>>>>>> Second, Royale currently has no intention of
>     >>>> duplicating/emulation
>     >>>>>> the
>     >>>>>>> Flash API.  IMO, the goal of Royale isn't to propagate
>     >>> Flash
>     >>>> to
>     >>>>> other
>     >>>>>>> platforms, but to create some APIs that can migrate to
>     >>> other
>     >>>>>> platforms, to
>     >>>>>>> better future-proof new Royale applications.  We've
>     >>> emulated
>     >>>> a few
>     >>>>>> Flash
>     >>>>>>> APIs to help those migrating Flex projects, but we don't
>     >>>> have a
>     >>>>> goal
>     >>>>>> to
>     >>>>>>> emulate all of them.  We want new Royale apps to be built
>     >>> on
>     >>>> top of
>     >>>>>>> components instead of timelines and DisplayObjects.
>     >>>>>>>
>     >>>>>>> HTH,
>     >>>>>>> -Alex
>     >>>>>>>
>     >>>>>>> On 10/20/19, 9:06 AM, "Carlos Rovira" <
>     >>>> carlosrov...@apache.org>
>     >>>>>> wrote:
>     >>>>>>>
>     >>>>>>>    Hi Jason,
>     >>>>>>>
>     >>>>>>>    great to have you in the list proposing that plans.
>     >>> Since
>     >>>>> Royale
>     >>>>>> is
>     >>>>>>> multi
>     >>>>>>>    target with current support for SWF and JS, we really
>     >>>> want to
>     >>>>>> have
>     >>>>>>> others
>     >>>>>>>    and users asked many times about WASM support. So
>     >> WASM
>     >>>> is maybe
>     >>>>>> the
>     >>>>>>> most
>     >>>>>>>    requested and wanted new target in Royale. So, yes,
>     >> we
>     >>>> want
>     >>>>>>> contributors
>     >>>>>>>    that work in WASM target :).
>     >>>>>>>
>     >>>>>>>    Hope others in the project can give some words here
>     >> and
>     >>>> give
>     >>>>> his
>     >>>>>>> opinion.
>     >>>>>>>    In the meantime I think the most important thing is
>     >> to
>     >>>>>> understand as
>     >>>>>>> best
>     >>>>>>>    as possible for you how Apache projects work and that
>     >>> is
>     >>>> very
>     >>>>>>> different to
>     >>>>>>>    closed source and things driven by companies. It's
>     >>>> important
>     >>>>> that
>     >>>>>>> anything
>     >>>>>>>    you want to contribute is not under any copyright and
>     >>> is
>     >>>> new
>     >>>>>> code you
>     >>>>>>>    contribute to the project. Apache is all about open
>     >>>> source, so
>     >>>>>> is very
>     >>>>>>>    important that no company or individual owns the code
>     >>>> and be
>     >>>>>> always
>     >>>>>>>    available to the public and people can use under
>     >> Apache
>     >>>> License
>     >>>>>> v2.0
>     >>>>>>> rules.
>     >>>>>>>    I think you should check all you can about how Apache
>     >>>> works
>     >>>>> [1].
>     >>>>>>> Anything
>     >>>>>>>    you need to ask please do here.
>     >>>>>>>
>     >>>>>>>    The next thing important to this concrete project,
>     >>> Apache
>     >>>>>> Royale, is to
>     >>>>>>>    understand we're a community were we respect the work
>     >>> of
>     >>>> others
>     >>>>>> in the
>     >>>>>>>    community, and we expect the same from new members
>     >> and
>     >>>>>> contributors. So
>     >>>>>>>    although code and skills is important, fellowship,
>     >>>> respect and
>     >>>>>> other
>     >>>>>>> social
>     >>>>>>>    things are very important to us.
>     >>>>>>>
>     >>>>>>>    The way new contributors start working is through
>     >> Pull
>     >>>> Request
>     >>>>> in
>     >>>>>>> GitHub
>     >>>>>>>    (PRs), interacting in this list (and/or in the users
>     >>>> list if
>     >>>>> you
>     >>>>>> want)
>     >>>>>>> and
>     >>>>>>>    doing as you consider to help the project going on.As
>     >>>> well,
>     >>>>> this
>     >>>>>> is all
>     >>>>>>>    done freely as you consider and nobody can request
>     >>>> anything to
>     >>>>>> you
>     >>>>>>> since is
>     >>>>>>>    something we all do because we want.
>     >>>>>>>
>     >>>>>>>    I think to start is important that you try to expose
>     >> in
>     >>>> this
>     >>>>>> list how
>     >>>>>>> you
>     >>>>>>>    plan to implement WASM support in Royale so the rest
>     >> of
>     >>>> the
>     >>>>> team
>     >>>>>> can
>     >>>>>>> guide
>     >>>>>>>    you and discuss things for two reason. a) Guide you
>     >> to
>     >>>>> integrate
>     >>>>>> in the
>     >>>>>>>    best possible way, since you can have in mind some
>     >> path
>     >>>> and
>     >>>>> that
>     >>>>>> could
>     >>>>>>> be
>     >>>>>>>    not doable for different reasons: technical, wrong
>     >>> specs
>     >>>> that
>     >>>>>> defeats
>     >>>>>>> some
>     >>>>>>>    important Royale principles, or any other things, b)
>     >>>> save you
>     >>>>>> time. We
>     >>>>>>>    don't want you to spend lots of time, and reach a
>     >> point
>     >>>> of
>     >>>>>> merge, and
>     >>>>>>> then
>     >>>>>>>    others in the team say you is not possible to
>     >> integrate
>     >>>> for
>     >>>>> some
>     >>>>>>> reason of
>     >>>>>>>    design or compatibility with the global direction of
>     >>> the
>     >>>>> project.
>     >>>>>>>    So in resume, please try to write and explain here
>     >>> before
>     >>>>>> starting any
>     >>>>>>>    effort to avoid lose time. This will be by far more
>     >>>> efficient
>     >>>>>> and will
>     >>>>>>> save
>     >>>>>>>    you from any frustration in the future.
>     >>>>>>>
>     >>>>>>>    Other point is that we expect that you can accept
>     >>>> critics as
>     >>>>>> part of
>     >>>>>>> the
>     >>>>>>>    team work and this is important. Something that can
>     >>>> happen is
>     >>>>>> that
>     >>>>>>> what you
>     >>>>>>>    could have in mind something that can't be done for
>     >> any
>     >>>> reason
>     >>>>>> and it
>     >>>>>>> may
>     >>>>>>>    be difficult to accept the design of the community.
>     >> But
>     >>>> in
>     >>>>>> Apache all
>     >>>>>>>    things have to happen by consensus. That's the
>     >> "Apache
>     >>>> way".
>     >>>>>>>
>     >>>>>>>    Said all this, I really hope you find your way in our
>     >>>> community
>     >>>>>> and
>     >>>>>>> could
>     >>>>>>>    be the guy that make WASM be a reality in Royale. I
>     >>> know
>     >>>> the
>     >>>>>> effort is
>     >>>>>>> not
>     >>>>>>>    easy at all, maybe is a long run. I really think that
>     >>> if
>     >>>> you
>     >>>>>> bring
>     >>>>>>>    something that could make Apache Royale be the next
>     >>>> front end
>     >>>>>>> technology
>     >>>>>>>    that get to be massively used since the current ones
>     >>>> (like
>     >>>>> React,
>     >>>>>>> Angular
>     >>>>>>>    or Vue), will never have this kind of power feature.
>     >> If
>     >>>> you get
>     >>>>>> it, I
>     >>>>>>>    really would like to add WASM support to Jewel UI set
>     >>> for
>     >>>>>> example.
>     >>>>>>>
>     >>>>>>>    So, definitely, expecting to work with you and help
>     >> you
>     >>>> to make
>     >>>>>> this
>     >>>>>>> happen
>     >>>>>>>    :)
>     >>>>>>>
>     >>>>>>>    Best
>     >>>>>>>
>     >>>>>>>    Carlos
>     >>>>>>>
>     >>>>>>>    [1]
>     >>>>>>>
>     >>>>>>
>     >>>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.apache.org&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=ChwMTAKkf%2BwSGEXxJkYnIWNuhWkjsSlppu2%2BJ88wcuU%3D&amp;reserved=0
>     >>>>>>>
>     >>>>>>>
>     >>>>>>>
>     >>>>>>>
>     >>>>>>>    El dom., 20 oct. 2019 a las 6:30, Jason Huang (<
>     >>>>>>> jasonhuang1...@gmail.com>)
>     >>>>>>>    escribió:
>     >>>>>>>
>     >>>>>>>> Hi, everyone,
>     >>>>>>>>
>     >>>>>>>> I'm Jason Huang, I really like to work with you
>     >> guys
>     >>> to
>     >>>>>> improve and
>     >>>>>>> add new
>     >>>>>>>> features to Apache Royale.
>     >>>>>>>>
>     >>>>>>>> In early 2017, I started a project that compiling
>     >> AS3
>     >>>> to JS
>     >>>>> and
>     >>>>>>> interacting
>     >>>>>>>> with a WASM version of basic C++ re-written flash
>     >>>> runtime
>     >>>>>> apis. The
>     >>>>>>> project
>     >>>>>>>> known as AJC. The initial idea of this project is
>     >> to
>     >>>> help
>     >>>>>> existing
>     >>>>>>> AS3
>     >>>>>>>> projects to be able to run on the web without flash
>     >>>> player
>     >>>>>> plugin.
>     >>>>>>> In the
>     >>>>>>>> end of 2017, the project finally has its own SDK (
>     >>>> customized
>     >>>>>> Falcon
>     >>>>>>> JX
>     >>>>>>>> compiler, and customized emscripten sdk), a stable
>     >>>> customized
>     >>>>>> flash
>     >>>>>>> develop
>     >>>>>>>> IDE that has same experiences ( building,
>     >>>> debugging,etc) as
>     >>>>>> original
>     >>>>>>> one
>     >>>>>>>> that manage original as3 projects. Finally, the
>     >> only
>     >>>> thing
>     >>>>>> that left
>     >>>>>>> to do
>     >>>>>>>> is finishing the whole Flash API using c++ that may
>     >>>> run with
>     >>>>>> the both
>     >>>>>>>> environment that browser provided and native
>     >>> platforms
>     >>>> such
>     >>>>> as
>     >>>>>>> Windows,
>     >>>>>>>> Mac, Linux. In the middle of 2018, I finished most
>     >> of
>     >>>> crucial
>     >>>>>> apis of
>     >>>>>>>> flash, such as  the whole packages of
>     >>>> flash.display(hardware
>     >>>>>>> accelerated
>     >>>>>>>> rendering), flash.display3D, flash.events,
>     >> flash.net
>     >>> ,
>     >>>>>> etc,.and it
>     >>>>>>> was able
>     >>>>>>>> to meet all apis requirements from a commercial AS3
>     >>> ui
>     >>>> lib
>     >>>>>> known as
>     >>>>>>> flex
>     >>>>>>>> lite(
>     >>>>>>>
>     >>>>>>
>     >>>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fflexlite&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=n1OBimdNgudwSXdkx%2F3G49gC9mZiJ2ctkIaWWh9W0%2Fg%3D&amp;reserved=0
>     >>>>>> ),
>     >>>>>>> I successfully built all examples from
>     >>>>>>>> that lib to js and communicating with my wasm
>     >> version
>     >>>> of
>     >>>>> flash
>     >>>>>> apis.
>     >>>>>>>> Unfortunately, after that bad things happened to
>     >> me,
>     >>> I
>     >>>> had to
>     >>>>>> leave.
>     >>>>>>> Thus
>     >>>>>>>> AJC project has been suspended in  the middle of
>     >>> 2018.
>     >>>> The
>     >>>>> only
>     >>>>>>> thing left
>     >>>>>>>> to the public is a fork repo from my original one (
>     >>>>>>>>
>     >>>>>>>
>     >>>>>>
>     >>>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fshanewfx%2FAJC-Flash-WebAssembly-Examples&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=DokFZWwM1QP6jxjjJm7dc11E1doOOOsbn8RwuufIUio%3D&amp;reserved=0
>     >>>>>>> ).
>     >>>>>>>>
>     >>>>>>>> After 17 months, today, I am able to continue this
>     >>>> project
>     >>>>> once
>     >>>>>>> again. But
>     >>>>>>>> this time I decided to bring it to the public
>     >>>> entirely. And
>     >>>>>> working
>     >>>>>>> with
>     >>>>>>>> you guys should be more efficient and reliable.
>     >> After
>     >>>> all the
>     >>>>>> things
>     >>>>>>> I have
>     >>>>>>>> been doing with AJC, now I have a plan that compile
>     >>>> AS3 to
>     >>>>> wasm
>     >>>>>>> directly,
>     >>>>>>>> without w/r memories through embind api that much.
>     >> As
>     >>>>>> previously all
>     >>>>>>> as3
>     >>>>>>>> code being compiled to js first, then those js
>     >>> calling
>     >>>> every
>     >>>>>> single
>     >>>>>>> flash
>     >>>>>>>> api functions in wasm through memory reading and
>     >>>> writing,
>     >>>>> this
>     >>>>>> is
>     >>>>>>> very
>     >>>>>>>> consuming at runtime.
>     >>>>>>>>
>     >>>>>>>> I have few brief questions:
>     >>>>>>>> How you guys think about my plan?
>     >>>>>>>> What is the state of Royale? is it similar with
>     >>>> previous
>     >>>>>> falcon jx
>     >>>>>>> with
>     >>>>>>>> more tooling and frameworks added?
>     >>>>>>>> Did you guys implement a js version of flash apis?
>     >>>>>>>>
>     >>>>>>>> Cheers
>     >>>>>>>> Jason Huang
>     >>>>>>>>
>     >>>>>>>
>     >>>>>>>
>     >>>>>>>    --
>     >>>>>>>    Carlos Rovira
>     >>>>>>>
>     >>>>>>>
>     >>>>>>
>     >>>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=d%2FSxEcSCFwuEDX5sv2XXQC0YlWivS9RfK9F0SOFoUzk%3D&amp;reserved=0
>     >>>>>>>
>     >>>>>>>
>     >>>>>>>
>     >>>>>>
>     >>>>>>
>     >>>>>>
>     >>>>>
>     >>>>> --
>     >>>>> Carlos Rovira
>     >>>>>
>     >>>>
>     >>>
>     >>
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=d%2FSxEcSCFwuEDX5sv2XXQC0YlWivS9RfK9F0SOFoUzk%3D&amp;reserved=0
>     >>>>>
>     >>>>
>     >>>>
>     >>>>
>     >>>
>     >>> --
>     >>> Carlos Rovira
>     >>>
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416877251&amp;sdata=d%2FSxEcSCFwuEDX5sv2XXQC0YlWivS9RfK9F0SOFoUzk%3D&amp;reserved=0
>     >>>
>     >>
>     >
>     >
>     > --
>     > Carlos Rovira
>     >
> https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7Cfe31954d7a894f2e9de608d75714a065%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637073618416887244&amp;sdata=2knoFSikeJ2JMdleziAVGfLQdIxndoMqwi%2Bveia4ORQ%3D&amp;reserved=0
>
>
>

Reply via email to