EMULATION

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

EMULATION

alina kazi-2

Hi Alex,

Can you please explain emulation ?

How do they will work?

How they will be helpful to create our Royale Application?

 

Thanks,

Alina

 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: EMULATION

Alex Harui-2
Hi Alina,

Sorry, I forgot to respond to your question about that earlier.

An Emulation is any attempt to make something look like something real but isn't.  For example, there is an airplane that astronauts use to learn about zero gravity.  The airplane flies on a special trajectory that emulates zero gravity for a few minutes even though everyone in the airplane is really still in earth's atmosphere and subject to earth's gravitational pull.

We are going to do something similar to make porting your application easier.

Today, if you have in MXML:

<mx:Application>
  <mx:Button label="Foo" />
</mx:Application

These three lines result in the running of thousands of lines of code that eventually call Flash APIs.  We want to get those same three lines working without Flash.

One way to do that would be to emulate Flash APIs.  That would require, basically, rewriting the Flash player in JavaScript.  Some folks have tried to do that.  Nobody has been completely successful and it is a ton of work and also opens the door to lots of support issues.  Once you say you can emulate a Flash API, there are probably a billion SWFs that use that API along with dozens of other Flash APIs and making them work for all billion SWFs is a scary proposition.  Even Adobe does not want to go there.

Another way is to migrate the entire Flex framework to JavaScript.  We would have to find every call to Flash in the Flex framework and replace that code with something else.  This is doable, but also a ton of work.  There is a lot of code to port and the underlying framework code is tuned to work with Flash.  And there is a similar support issue:  If you say you are replication the Flex APIs as-is, there are probably a million SWFs that use Flex APIs.  We could go there, but there aren't enough committers on the project with enough time to make it happen soon enough for you.

So what Harbs and now Doug have done is replace their three lines with Royale lines.  That is a bunch of work on their part.  They have to touch the code in a lot of places.  But their results will be as optimal as possible since it will use Royale APIs that have been tuned to work in the browser.

However, I think there is a middle ground between migrating the entire Flex framework and having you touch a lot of code in your app.  And that is to only take the APIs you use and implement them in subclasses of Royale components with Flex API names.  That makes it an Emulation.  We are not trying to get 90% of code in the Flex framework to run in the browser.  Instead we are taking a higher-level approach.  Royale has an Application class.  You are using mx.core.Application.  I can create a class in Royale called mx.core.Application and have it extend a Royale Application class and implement the few APIs you are using but I will be copying very little code from the Flex mx.core.Application.  That's because Royale apps don't have to have a SystemManager with a preloader  in frame 1 and your code doesn't seem to care if mx.core.Application extends LayoutContainer which extends Container.  All your app cares about is that <mx:Application> holds the main screen and some other stuff.

Hope that explains it better.  You can see our progress by following the feature/MXRoyale branch.  Once Peter and I get something to actually run in this branch, then we will explain to others (including you) how to help create these emulation components.  So if you haven't got the code from GitHub to build, that's still your main problem because you will need to be able to build code in order to help create these emulation components.

Thanks,
-Alex

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 2:52 AM
To: "[hidden email]" <[hidden email]>
Subject: EMULATION

Hi Alex,

Can you please explain emulation ?

How do they will work?

How they will be helpful to create our Royale Application?

 

Thanks,

Alina

 

 

 

Reply | Threaded
Open this post in threaded view
|

RE: EMULATION

alina kazi-2

Hi Alex,

 

That’s great..

 

Fetched all(3) folders from git 2 days earlier , while executing “ant all” or “ant” or “maven …..” Some Errors are occurred.

During the execution of ant all , Auto download wasn’t working So,Downloaded many files manually as the url was present right before the error every time and copying file to folder path that is also mention .

Now getting Error in mirror.json downloading.

https://www.dropbox.com/s/gv9wcvixr9mkcv9/error%20executing%20ant.png?dl=0

 

Thanks,

Alina

 

From: Alex Harui [mailto:[hidden email]]
Sent: Thursday, March 08, 2018 10:17 PM
To: [hidden email]
Subject: Re: EMULATION

 

Hi Alina,

 

Sorry, I forgot to respond to your question about that earlier.

 

An Emulation is any attempt to make something look like something real but isn't.  For example, there is an airplane that astronauts use to learn about zero gravity.  The airplane flies on a special trajectory that emulates zero gravity for a few minutes even though everyone in the airplane is really still in earth's atmosphere and subject to earth's gravitational pull.

 

We are going to do something similar to make porting your application easier.

 

Today, if you have in MXML:

 

<mx:Application>

  <mx:Button label="Foo" />

</mx:Application

 

These three lines result in the running of thousands of lines of code that eventually call Flash APIs.  We want to get those same three lines working without Flash.

 

One way to do that would be to emulate Flash APIs.  That would require, basically, rewriting the Flash player in JavaScript.  Some folks have tried to do that.  Nobody has been completely successful and it is a ton of work and also opens the door to lots of support issues.  Once you say you can emulate a Flash API, there are probably a billion SWFs that use that API along with dozens of other Flash APIs and making them work for all billion SWFs is a scary proposition.  Even Adobe does not want to go there.

 

Another way is to migrate the entire Flex framework to JavaScript.  We would have to find every call to Flash in the Flex framework and replace that code with something else.  This is doable, but also a ton of work.  There is a lot of code to port and the underlying framework code is tuned to work with Flash.  And there is a similar support issue:  If you say you are replication the Flex APIs as-is, there are probably a million SWFs that use Flex APIs.  We could go there, but there aren't enough committers on the project with enough time to make it happen soon enough for you.

 

So what Harbs and now Doug have done is replace their three lines with Royale lines.  That is a bunch of work on their part.  They have to touch the code in a lot of places.  But their results will be as optimal as possible since it will use Royale APIs that have been tuned to work in the browser.

 

However, I think there is a middle ground between migrating the entire Flex framework and having you touch a lot of code in your app.  And that is to only take the APIs you use and implement them in subclasses of Royale components with Flex API names.  That makes it an Emulation.  We are not trying to get 90% of code in the Flex framework to run in the browser.  Instead we are taking a higher-level approach.  Royale has an Application class.  You are using mx.core.Application.  I can create a class in Royale called mx.core.Application and have it extend a Royale Application class and implement the few APIs you are using but I will be copying very little code from the Flex mx.core.Application.  That's because Royale apps don't have to have a SystemManager with a preloader  in frame 1 and your code doesn't seem to care if mx.core.Application extends LayoutContainer which extends Container.  All your app cares about is that <mx:Application> holds the main screen and some other stuff.

 

Hope that explains it better.  You can see our progress by following the feature/MXRoyale branch.  Once Peter and I get something to actually run in this branch, then we will explain to others (including you) how to help create these emulation components.  So if you haven't got the code from GitHub to build, that's still your main problem because you will need to be able to build code in order to help create these emulation components.

 

Thanks,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 2:52 AM
To: "[hidden email]" <[hidden email]>
Subject: EMULATION

 

Hi Alex,

Can you please explain emulation ?

How do they will work?

How they will be helpful to create our Royale Application?

 

Thanks,

Alina

 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: EMULATION

Alex Harui-2
Hi Alina,

I'm not sure why you are having problems with the downloads.  Could be your distance from the actual servers or some issue with Ant.  What version of Ant are you running?

The mirror.json part is just trying to download this file apache-flex-sdk-pixel-bender-1.0.0-bin.zip into the "in" folder.  Try doing that manually and see if the build goes past that point.

Thanks,
-Alex

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 9:28 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: EMULATION

Hi Alex,

 

That’s great..

 

Fetched all(3) folders from git 2 days earlier , while executing “ant all” or “ant” or “maven …..” Some Errors are occurred.

During the execution of ant all , Auto download wasn’t working So,Downloaded many files manually as the url was present right before the error every time and copying file to folder path that is also mention .

Now getting Error in mirror.json downloading.

https://www.dropbox.com/s/gv9wcvixr9mkcv9/error%20executing%20ant.png?dl=0

 

Thanks,

Alina

 

From: Alex Harui [[hidden email]]
Sent: Thursday, March 08, 2018 10:17 PM
To: [hidden email]
Subject: Re: EMULATION

 

Hi Alina,

 

Sorry, I forgot to respond to your question about that earlier.

 

An Emulation is any attempt to make something look like something real but isn't.  For example, there is an airplane that astronauts use to learn about zero gravity.  The airplane flies on a special trajectory that emulates zero gravity for a few minutes even though everyone in the airplane is really still in earth's atmosphere and subject to earth's gravitational pull.

 

We are going to do something similar to make porting your application easier.

 

Today, if you have in MXML:

 

<mx:Application>

  <mx:Button label="Foo" />

</mx:Application

 

These three lines result in the running of thousands of lines of code that eventually call Flash APIs.  We want to get those same three lines working without Flash.

 

One way to do that would be to emulate Flash APIs.  That would require, basically, rewriting the Flash player in JavaScript.  Some folks have tried to do that.  Nobody has been completely successful and it is a ton of work and also opens the door to lots of support issues.  Once you say you can emulate a Flash API, there are probably a billion SWFs that use that API along with dozens of other Flash APIs and making them work for all billion SWFs is a scary proposition.  Even Adobe does not want to go there.

 

Another way is to migrate the entire Flex framework to JavaScript.  We would have to find every call to Flash in the Flex framework and replace that code with something else.  This is doable, but also a ton of work.  There is a lot of code to port and the underlying framework code is tuned to work with Flash.  And there is a similar support issue:  If you say you are replication the Flex APIs as-is, there are probably a million SWFs that use Flex APIs.  We could go there, but there aren't enough committers on the project with enough time to make it happen soon enough for you.

 

So what Harbs and now Doug have done is replace their three lines with Royale lines.  That is a bunch of work on their part.  They have to touch the code in a lot of places.  But their results will be as optimal as possible since it will use Royale APIs that have been tuned to work in the browser.

 

However, I think there is a middle ground between migrating the entire Flex framework and having you touch a lot of code in your app.  And that is to only take the APIs you use and implement them in subclasses of Royale components with Flex API names.  That makes it an Emulation.  We are not trying to get 90% of code in the Flex framework to run in the browser.  Instead we are taking a higher-level approach.  Royale has an Application class.  You are using mx.core.Application.  I can create a class in Royale called mx.core.Application and have it extend a Royale Application class and implement the few APIs you are using but I will be copying very little code from the Flex mx.core.Application.  That's because Royale apps don't have to have a SystemManager with a preloader  in frame 1 and your code doesn't seem to care if mx.core.Application extends LayoutContainer which extends Container.  All your app cares about is that <mx:Application> holds the main screen and some other stuff.

 

Hope that explains it better.  You can see our progress by following the feature/MXRoyale branch.  Once Peter and I get something to actually run in this branch, then we will explain to others (including you) how to help create these emulation components.  So if you haven't got the code from GitHub to build, that's still your main problem because you will need to be able to build code in order to help create these emulation components.

 

Thanks,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 2:52 AM
To: "[hidden email]" <[hidden email]>
Subject: EMULATION

 

Hi Alex,

Can you please explain emulation ?

How do they will work?

How they will be helpful to create our Royale Application?

 

Thanks,

Alina

 

 

 

Reply | Threaded
Open this post in threaded view
|

RE: EMULATION

alina kazi-2

Hi Alex,

I am using Apache Ant(TM) version 1.10.1 compiled on February 2 2017 Ant Java Version: 1.8

After Downloading file manually still issue is not resolved.

 

I am reinstalling the operating system Again.

 

Thanks,

Alina

 

From: Alex Harui [mailto:[hidden email]]
Sent: Friday, March 09, 2018 10:55 AM
To: [hidden email]
Subject: Re: EMULATION

 

Hi Alina,

 

I'm not sure why you are having problems with the downloads.  Could be your distance from the actual servers or some issue with Ant.  What version of Ant are you running?

 

The mirror.json part is just trying to download this file apache-flex-sdk-pixel-bender-1.0.0-bin.zip into the "in" folder.  Try doing that manually and see if the build goes past that point.

 

Thanks,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 9:28 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: EMULATION

 

Hi Alex,

 

That’s great..

 

Fetched all(3) folders from git 2 days earlier , while executing “ant all” or “ant” or “maven …..” Some Errors are occurred.

During the execution of ant all , Auto download wasn’t working So,Downloaded many files manually as the url was present right before the error every time and copying file to folder path that is also mention .

Now getting Error in mirror.json downloading.

https://www.dropbox.com/s/gv9wcvixr9mkcv9/error%20executing%20ant.png?dl=0

 

Thanks,

Alina

 

From: Alex Harui [[hidden email]]
Sent: Thursday, March 08, 2018 10:17 PM
To: [hidden email]
Subject: Re: EMULATION

 

Hi Alina,

 

Sorry, I forgot to respond to your question about that earlier.

 

An Emulation is any attempt to make something look like something real but isn't.  For example, there is an airplane that astronauts use to learn about zero gravity.  The airplane flies on a special trajectory that emulates zero gravity for a few minutes even though everyone in the airplane is really still in earth's atmosphere and subject to earth's gravitational pull.

 

We are going to do something similar to make porting your application easier.

 

Today, if you have in MXML:

 

<mx:Application>

  <mx:Button label="Foo" />

</mx:Application

 

These three lines result in the running of thousands of lines of code that eventually call Flash APIs.  We want to get those same three lines working without Flash.

 

One way to do that would be to emulate Flash APIs.  That would require, basically, rewriting the Flash player in JavaScript.  Some folks have tried to do that.  Nobody has been completely successful and it is a ton of work and also opens the door to lots of support issues.  Once you say you can emulate a Flash API, there are probably a billion SWFs that use that API along with dozens of other Flash APIs and making them work for all billion SWFs is a scary proposition.  Even Adobe does not want to go there.

 

Another way is to migrate the entire Flex framework to JavaScript.  We would have to find every call to Flash in the Flex framework and replace that code with something else.  This is doable, but also a ton of work.  There is a lot of code to port and the underlying framework code is tuned to work with Flash.  And there is a similar support issue:  If you say you are replication the Flex APIs as-is, there are probably a million SWFs that use Flex APIs.  We could go there, but there aren't enough committers on the project with enough time to make it happen soon enough for you.

 

So what Harbs and now Doug have done is replace their three lines with Royale lines.  That is a bunch of work on their part.  They have to touch the code in a lot of places.  But their results will be as optimal as possible since it will use Royale APIs that have been tuned to work in the browser.

 

However, I think there is a middle ground between migrating the entire Flex framework and having you touch a lot of code in your app.  And that is to only take the APIs you use and implement them in subclasses of Royale components with Flex API names.  That makes it an Emulation.  We are not trying to get 90% of code in the Flex framework to run in the browser.  Instead we are taking a higher-level approach.  Royale has an Application class.  You are using mx.core.Application.  I can create a class in Royale called mx.core.Application and have it extend a Royale Application class and implement the few APIs you are using but I will be copying very little code from the Flex mx.core.Application.  That's because Royale apps don't have to have a SystemManager with a preloader  in frame 1 and your code doesn't seem to care if mx.core.Application extends LayoutContainer which extends Container.  All your app cares about is that <mx:Application> holds the main screen and some other stuff.

 

Hope that explains it better.  You can see our progress by following the feature/MXRoyale branch.  Once Peter and I get something to actually run in this branch, then we will explain to others (including you) how to help create these emulation components.  So if you haven't got the code from GitHub to build, that's still your main problem because you will need to be able to build code in order to help create these emulation components.

 

Thanks,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 2:52 AM
To: "[hidden email]" <[hidden email]>
Subject: EMULATION

 

Hi Alex,

Can you please explain emulation ?

How do they will work?

How they will be helpful to create our Royale Application?

 

Thanks,

Alina

 

 

 

Reply | Threaded
Open this post in threaded view
|

Re: EMULATION

Alex Harui-2
Hi Alina,

I think you've downloaded a nightly build at some point.  To workaround the pixel bender problem, try copying all .pbj files from the nightly to the same folders in royale-asjs.

HTH,
-Alex

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 10:42 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: EMULATION

Hi Alex,

I am using Apache Ant(TM) version 1.10.1 compiled on February 2 2017 Ant Java Version: 1.8

After Downloading file manually still issue is not resolved.

 

I am reinstalling the operating system Again.

 

Thanks,

Alina

 

From: Alex Harui [[hidden email]]
Sent: Friday, March 09, 2018 10:55 AM
To: [hidden email]
Subject: Re: EMULATION

 

Hi Alina,

 

I'm not sure why you are having problems with the downloads.  Could be your distance from the actual servers or some issue with Ant.  What version of Ant are you running?

 

The mirror.json part is just trying to download this file apache-flex-sdk-pixel-bender-1.0.0-bin.zip into the "in" folder.  Try doing that manually and see if the build goes past that point.

 

Thanks,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 9:28 PM
To: "[hidden email]" <[hidden email]>
Subject: RE: EMULATION

 

Hi Alex,

 

That’s great..

 

Fetched all(3) folders from git 2 days earlier , while executing “ant all” or “ant” or “maven …..” Some Errors are occurred.

During the execution of ant all , Auto download wasn’t working So,Downloaded many files manually as the url was present right before the error every time and copying file to folder path that is also mention .

Now getting Error in mirror.json downloading.

https://www.dropbox.com/s/gv9wcvixr9mkcv9/error%20executing%20ant.png?dl=0

 

Thanks,

Alina

 

From: Alex Harui [[hidden email]]
Sent: Thursday, March 08, 2018 10:17 PM
To: [hidden email]
Subject: Re: EMULATION

 

Hi Alina,

 

Sorry, I forgot to respond to your question about that earlier.

 

An Emulation is any attempt to make something look like something real but isn't.  For example, there is an airplane that astronauts use to learn about zero gravity.  The airplane flies on a special trajectory that emulates zero gravity for a few minutes even though everyone in the airplane is really still in earth's atmosphere and subject to earth's gravitational pull.

 

We are going to do something similar to make porting your application easier.

 

Today, if you have in MXML:

 

<mx:Application>

  <mx:Button label="Foo" />

</mx:Application

 

These three lines result in the running of thousands of lines of code that eventually call Flash APIs.  We want to get those same three lines working without Flash.

 

One way to do that would be to emulate Flash APIs.  That would require, basically, rewriting the Flash player in JavaScript.  Some folks have tried to do that.  Nobody has been completely successful and it is a ton of work and also opens the door to lots of support issues.  Once you say you can emulate a Flash API, there are probably a billion SWFs that use that API along with dozens of other Flash APIs and making them work for all billion SWFs is a scary proposition.  Even Adobe does not want to go there.

 

Another way is to migrate the entire Flex framework to JavaScript.  We would have to find every call to Flash in the Flex framework and replace that code with something else.  This is doable, but also a ton of work.  There is a lot of code to port and the underlying framework code is tuned to work with Flash.  And there is a similar support issue:  If you say you are replication the Flex APIs as-is, there are probably a million SWFs that use Flex APIs.  We could go there, but there aren't enough committers on the project with enough time to make it happen soon enough for you.

 

So what Harbs and now Doug have done is replace their three lines with Royale lines.  That is a bunch of work on their part.  They have to touch the code in a lot of places.  But their results will be as optimal as possible since it will use Royale APIs that have been tuned to work in the browser.

 

However, I think there is a middle ground between migrating the entire Flex framework and having you touch a lot of code in your app.  And that is to only take the APIs you use and implement them in subclasses of Royale components with Flex API names.  That makes it an Emulation.  We are not trying to get 90% of code in the Flex framework to run in the browser.  Instead we are taking a higher-level approach.  Royale has an Application class.  You are using mx.core.Application.  I can create a class in Royale called mx.core.Application and have it extend a Royale Application class and implement the few APIs you are using but I will be copying very little code from the Flex mx.core.Application.  That's because Royale apps don't have to have a SystemManager with a preloader  in frame 1 and your code doesn't seem to care if mx.core.Application extends LayoutContainer which extends Container.  All your app cares about is that <mx:Application> holds the main screen and some other stuff.

 

Hope that explains it better.  You can see our progress by following the feature/MXRoyale branch.  Once Peter and I get something to actually run in this branch, then we will explain to others (including you) how to help create these emulation components.  So if you haven't got the code from GitHub to build, that's still your main problem because you will need to be able to build code in order to help create these emulation components.

 

Thanks,

-Alex

 

From: Alina Kazi <[hidden email]>
Reply-To: "[hidden email]" <[hidden email]>
Date: Thursday, March 8, 2018 at 2:52 AM
To: "[hidden email]" <[hidden email]>
Subject: EMULATION

 

Hi Alex,

Can you please explain emulation ?

How do they will work?

How they will be helpful to create our Royale Application?

 

Thanks,

Alina