Hi Fréderic,

Just to be clear, the main goal of Royale is to provide a Flex-like application 
development workflow, but not to be 100% backward compatible with Flex.  Flex 
itself was an attempt to abstract away the intricacies of Flash and similarly, 
Royale is not focused at all on providing Flash APIs.

So, the migration of a Flex app to Royale involves either using the Emulation 
components as much as possible (still a work in progress) or rewriting the UI 
to use Royale component sets like Jewel.  Where your application has a direct 
dependency on Flash, that code will definitely need to be changed.  But if you 
have good separation of concerns between your UI and your business logic, you 
should find that your business logic should be almost 100% re-usable.  And that 
last sentence is why Royale should be a lower-effort way to get off of 
Flash/AIR than rewriting and debugging your business logic.

So, if your app has custom SWCs containing source code written by you, the SWC 
should be re-usable in Royale if it isn’t dependent on Flash.  If there are 
Flash dependencies, you will need to tweak the code to remove the Flash 
dependency.  The error about BitmapAsset is probably because there are embedded 
assets.  Royale does not support embedding of graphical assets at this time.  
Not sure if we will in the short term as it isn’t clear there is a significant 
technical advantage to embedding like there was in Flash.

A Flex SWC cannot be used “as-is” since all Royale SWCs must contains 
transpiled JS files from the source AS files.  So you must re-compile all of 
your SWCs with the Royale Compiler.  And fix any issues around Flash 
dependencies and workaround any Flex dependencies we haven’t supported yet in 
Royale.

I have not used VSCode myself, but you’ll have to set up library projects for 
each of your SWCs, get them to compile cleanly, and then try compiling the main 
app.

I’ve been migrating TourDeFlex to Royale.   I found that there were a couple of 
common embedding patterns.  One was “inline-MXML” as in:

  <mx:Image source=”@Embed(‘assets/foo.png’)” />

I just removed the embedding for now:

  <mx:Image source=”assets/foo.png” />

The other common pattern was in AS such as:

  [Embed(“assets/foo.png”)]
  var fooPNG:Class;

I think all instances I found were being assigned as the source for an Image 
component, so it was simple enough to transform that to:

   var fooPNG:String = “assets/foo.png”;

I thought about trying to get the compiler to auto-convert these patterns, but 
I’m not sure it would be worth the effort.

Anyway, try to set up your library projects and remove Flash dependencies and 
eventually it should all compile and start to run without Flash.  I’m sure 
you’ll have lots more questions.  Don’t be afraid to ask.

HTH,
-Alex

From: Piotr Zarzycki <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Wednesday, September 26, 2018 at 6:48 AM
To: "[email protected]" <[email protected]>
Subject: Re: Library SWC (library path)

I don't think so - at least if you would like to transpile your code to JS. 
That's good that you are getting this kind of errors. It means that probably 
compiler is trying to transpile and cannot pass some code. I believe you have 
two paths:

1) Rewrite your UI part of app to Royale and transpile AS3 code
2) You can use Emulation components [1] to make proper build of your app with 
transpilation to JS. - From that point you could slowly make UI looks better.

I bet that no one tried to Emulate FileStream yet! :) If something doesn't 
exists here [2][3] you probably can add it to make your app satisfied.

You can generate API report (here instruction [1]) to see what actually you are 
using in your app, look on the list in [2][3] and fill gaps by making pull 
requests.

[1] 
https://github.com/apache/royale-asjs/wiki/emulation-components<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fwiki%2Femulation-components&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=0UYx%2Fq%2BZ1iP1XDQ%2Bf7r7AnLmn7%2BAx%2BeF7eT6J3uY6bk%3D&reserved=0>
[2] 
https://github.com/apache/royale-asjs/blob/develop/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fblob%2Fdevelop%2Fframeworks%2Fprojects%2FMXRoyale%2Fsrc%2Fmain%2Froyale%2FMXRoyaleClasses.as&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=FPLsJmxbH%2FyIurZa0rhfECNo8oN%2FOC%2BgHNrU98bQVyc%3D&reserved=0>
[3] 
https://github.com/apache/royale-asjs/blob/develop/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fblob%2Fdevelop%2Fframeworks%2Fprojects%2FSparkRoyale%2Fsrc%2Fmain%2Froyale%2FSparkRoyaleClasses.as&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=vXx7fonz%2B9dRQfJIbFQVvmFSfFBfMZt9osaOPcISU8A%3D&reserved=0>

Thanks,
Piotr

śr., 26 wrz 2018 o 15:39 Fréderic Cox 
<[email protected]<mailto:[email protected]>> napisał(a):
If I do it with source-path I'm getting around 3K errors like "The definition 
of base class BitmapAsset was not found or Call to a possibly undefined method 
FileStream etc... so I think that answers your last question :-)

I was expecting to be able to use the existing Flex SWC's, is this not possible?

On Wed, Sep 26, 2018 at 3:33 PM Piotr Zarzycki 
<[email protected]<mailto:[email protected]>> wrote:
This is probably why it's not working. I'm not an expert in that, but first 
what I would tried is create Royale library. However instead linking library, 
can you link source code ?
"source-path": [
"src",
"mylibrary/src"
],

Is this pure AS3 code without dependency to Flash ?

Thanks,
Piotr

śr., 26 wrz 2018 o 15:21 Fréderic Cox 
<[email protected]<mailto:[email protected]>> napisał(a):
I tried external-library-path but if I do not use js-library-path I get compile 
errors "Access of possibly undefined property .."

EnalityFlexLibrary is an existing Flex library.

On Wed, Sep 26, 2018 at 2:57 PM Piotr Zarzycki 
<[email protected]<mailto:[email protected]>> wrote:
Hi Frederic,

Have you tried external-library-path ? There is some explanation how 
js-library-path working [1]. However EnalityFlexLibrary is a Flex library or 
did you create Royale swc ?

[1] 
http://apache-royale-development.20373.n8.nabble.com/Difficulties-with-using-in-project-JS-version-of-Royale-swc-tp5999p6015.html<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-royale-development.20373.n8.nabble.com%2FDifficulties-with-using-in-project-JS-version-of-Royale-swc-tp5999p6015.html&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=X81J0CoavI3JEFjneg%2FJvFTZCXYtCgFqtZmdkOrOhIQ%3D&reserved=0>

Thanks,
Piotr

śr., 26 wrz 2018 o 14:49 Fréderic Cox 
<[email protected]<mailto:[email protected]>> napisał(a):
Can anyone help me on this? Why is this not working? The path to the SWC is 
correct.

<?xml version="1.0" encoding="utf-8"?>
<js:Application 
xmlns:fx="http://ns.adobe.com/mxml/2009<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.adobe.com%2Fmxml%2F2009&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=dY9HjzEBCNavsbm8on0JOhqb2wWMhsoPAJqkyPmCqoc%3D&reserved=0>"
 
xmlns:js="library://ns.apache.org/royale/express<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fns.apache.org%2Froyale%2Fexpress&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=rubUeugJqDHyeTrfTJKs23UEtQMW8NeWI9gT9YDIRj8%3D&reserved=0>"
 applicationComplete="applicationCompleteHandler(event)">

<fx:Script>
<![CDATA[
import org.apache.royale.events.Event;
import com.enality.utils.ServerUtil;
// import com.enality.EnalityData;

private function applicationCompleteHandler(evt:Event):void{
// alert(EnalityData.rootURL);
ServerUtil.setServerSettings();
// alert(EnalityData.rootURL);
}
]]>
</fx:Script>

<js:initialView>
<js:View>
<js:Label text="Hello EnalityCMS!" x="100" y="100" />
</js:View>
</js:initialView>


</js:Application>

{
"compilerOptions": {
"source-map": true,
"targets": [
"JSRoyale"
],
"js-library-path": [
"/Users/frederic/Desktop/Exuvis/CityFashion/EnalityFlexLibrary/bin/EnalityFlexLibrary.swc"
],
"library-path": [
"/Users/frederic/Desktop/Exuvis/CityFashion/EnalityFlexLibrary/bin/EnalityFlexLibrary.swc"
],
"html-output-filename": "index.html"
},
"files": [
"src/EnalityCMS.mxml"
]
}

Error I'm getting =

using SWC: 
/Users/frederic/Desktop/Exuvis/CityFashion/EnalityFlexLibrary/bin/EnalityFlexLibrary.swc
Could not find file for class: com.enality.utils.ServerUtil
Error: File not found: com.enality.utils.ServerUtil

On Wed, Sep 26, 2018 at 2:37 PM Fréderic Cox 
<[email protected]<mailto:[email protected]>> wrote:
However I can't seem to reference code from inside the .swc. Here is my 
asconfig.json file:

{
"compilerOptions": {
"source-map": true,
"targets": [
"JSRoyale"
],
"library-path": [
"/Users/frederic/Desktop/Exuvis/CityFashion/EnalityFlexLibrary/bin/EnalityFlexLibrary.swc"
],
"html-output-filename": "index.html"
},
"files": [
"src/EnalityCMS.mxml"
]
}

On Wed, Sep 26, 2018 at 12:44 PM Fréderic Cox 
<[email protected]<mailto:[email protected]>> wrote:
OK I found it, info about this on 
https://github.com/BowlerHatLLC/vscode-nextgenas/wiki/asconfig.json#library-path<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FBowlerHatLLC%2Fvscode-nextgenas%2Fwiki%2Fasconfig.json%23library-path&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=Ta%2BwH3fe5os2JhmdoMSsxJ361lCBrpyfNBP%2FlbTFvX0%3D&reserved=0>

On Wed, Sep 26, 2018 at 12:12 PM Fréderic Cox 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

I've managed to create my first Hello World app using Apache Royale. Now I'm 
wondering how can I link existing .swc's? I have a bunch of library projects 
which have assets, .as code files and .mxml code files. Is it possible to link 
those .swc files in an Apache Royale project (I'm using VSCode)? I want to be 
able to use the API's from the library in my new ApacheRoyale project so I can 
keep using the same libraries I used when working in Flash Builder with Flex 
for AIR.

Thanks for the info!

Best regards,

Fréderic


--

Piotr Zarzycki

Patreon: 
https://www.patreon.com/piotrzarzycki<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=d1e8r%2BNj3vmPceksMOhb%2B%2FUapJ%2BTZE%2FKIHt3cKVXLlM%3D&reserved=0>


--

Piotr Zarzycki

Patreon: 
https://www.patreon.com/piotrzarzycki<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=d1e8r%2BNj3vmPceksMOhb%2B%2FUapJ%2BTZE%2FKIHt3cKVXLlM%3D&reserved=0>


--

Piotr Zarzycki

Patreon: 
https://www.patreon.com/piotrzarzycki<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7C9b86923da4504bdb44d508d623b6c099%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636735665153216547&sdata=d1e8r%2BNj3vmPceksMOhb%2B%2FUapJ%2BTZE%2FKIHt3cKVXLlM%3D&reserved=0>

Reply via email to