Download Adobe Flex Sdk 4.5.1

0 views
Skip to first unread message
Message has been deleted

Brie Hoffler

unread,
Jul 14, 2024, 11:13:07 AM7/14/24
to onvezasa

Another option for you might be Apache Royale. This is the evolution of Flex Framework, which allows AS3 code transpile to Javascript/HTML5. Although not perfect, it is an easy way to migrate legacy projects, to keep them running.

Download Adobe Flex Sdk 4.5.1


Download https://vittuv.com/2yLW3D



Is it feasible for end users to install your application locally, rather than accessing it via a web browser? (Implies little or no interaction between your Flex app and its containing HTML/JS page..). This the answer is yes then the migration becomes a lot simpler as you can either use AIR (per another answer) or you can use a packaged solution to contain and deploy your application as-is (next-to-no work for you, but it's a commercial solution so costs money..)

Are you happy keeping the source code in MXML/AS3, or would you prefer to move all of this to another language (TypeScript or JavaScript)? If you want to keep the code in MXML/AS3 - and reuse most of it - then Apache Royale is the choice as this has the transpiler to turn MXML/AS3 into JavaScript. If you don't want to use MXML/AS3 then you need to choose a new TS/JS framework..

Do you have a lot of calls to the Flash APIs, or just to the Flex APIs? Apache Royale do support a lot of functionality that is equivalent to things in Flash (events, utils etc) but mostly it's focussed on the Flex APIs. There are even efforts to try to get a near 1:1 mapping between the Flex components and new Royale ones so that the porting effort is even less. But Flash APIs will often need to be manually converted (e.g. we created a number of implementations in Royale for the flash.media.* classes).

The more I've used Royale, the more I've come to like it. There's a bit of a learning curve to start with but when you realise that any JavaScript component can also be accessed from this, it becomes quite powerful. It's best to provide wrappers for these sorts of things (in the same way that you can get TypeScript definitions for them) as then you get the benefits of the type checking etc from the toolchain.

I am in the process of migrating a massive enterprise web app from Flash / Flex to Apache-Royale. For a large app with complex business logic, the Apache-Royale framework has been a huge help. Although some of the component logic is different, it is similar enough that you can swap pretty easily once you are on top of the learning curve. The fact that I was able to save most of the business logic and application structure saved my project from being a deep rewrite that would've taken much longer. I would say that if you app is big and complex, Apache-Royale might be your best solution for an economic port.

I think Flex died a few years ago I am afraid. I was a flex developer back in the day. I must say the transition for me from Flex /Actionscript to React was tough. I did find the similarity between mark up langauge (e.g. MXML or JSX (React)) and coding language (Actionscript or Javascript(React)) helped a bit. If you have a good handle on Javascript that will help, if you don't learn the basics. Using React or another framework means using the tooling as well, a bundler (usually webpack) , you'll need a working knowledge of Babel as well. I'd go for React because I am biased and its very very popular. Let me know if you'd links any links I found useful.Finally, I would say , just avoid Flex -> JS tools , just suck it up, smile and learn the stuff that's eating the web....

It is a big undertaking to migrate a Flex project to HTML/Javascript. First, if your user base is ok with a desktop application (rather than running your app in the browser), you could skip the migration and use Adobe AIR to package the app.

If the app is required to run in a browser, you need to translate it to a modern framework such as Angular, React or Vue. I investigated these frameworks in detail and concluded that Angular/Typescript was the closest to Flex and the best choice for my migration project, however part of this choice is personal preference. My experience is:

It is a big learning curve unfortunately. As a first step, learn/write a small project in either Angular or Vue. Both have TypeScript native and it is close to AS3. From there, you will understand better how to strategize your migration.

The FlexEvent.ADD constant defines the value of the type property of the event object for an add event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.ADD_FOCUS_MANAGER constant defines the value of the type property of the event object for an addFocusManager event. This event is dispatched from an IFocusManagerContainer when its focusManager is assigned. The properties of the event object have the following values:

The FlexEvent.CONTENT_CREATION_COMPLETE constant defines the value of the type property of the event object for a contentCreationComplete event. The properties of the event object have the following values:

The FlexEvent.ENTER_FRAME constant defines the value of the type property of the event object for an Event.ENTER_FRAMER event. Adding a listener to ENTER_FRAME on the SystemManager will add a listener for the Event.ENTER_FRAME event on the stage, if access if allowed, or the SystemManager if access the the stage is not allowed. The listener should expect to receive Event.ENTER_FRAME events.

The FlexEvent.ENTER_STATE constant defines the value of the type property of the event object for a enterState event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.EXIT_STATE constant defines the value of the type property of the event object for a exitState event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.FLEX_WINDOW_ACTIVATE constant defines the value of the type property of the event object for a flexWindowActivate event. Similar to the flash.events.AIREvent.WINDOW_ACTIVATE except it is dispatched in both Flash and AIR when a Flex window or popup is activated. This event is dispatched from the focusManager managing focus in that container. The properties of the event object have the following values:

The FlexEvent.FLEX_WINDOW_DEACTIVATE constant defines the value of the type property of the event object for a flexWindowDeactivate event. Similar to the flash.events.AIREvent.FLEX_WINDOW_DEACTIVATE except it is dispatched in both Flash and AIR when a Flex Window or popup is deactivated. This event is dispatched from the focusManager managing focus in that container. The properties of the event object have the following values:

Dispatched when a Flex application finishes initialization. You use this event when creating a custom download progress bar. This event is always dispatched once by the Preloader class, and is the last event that the Preloader dispatches. When this event is dispatched, the event listener should dispatch an Event.COMPLETE event.

A download progress bar must dispatch a complete event after it has received an init_complete event. The complete event informs the Preloader that the download progress bar has completed all operations and can be dismissed.

A download progress bar can perform additional tasks, such as playing an animation, after receiving an init_complete event, and before dispatching the complete event. Dispatching the complete event should be the last action of the download progress bar.

Dispatched when the Flex application completes an initialization phase, as defined by calls to the measure(), commitProperties(), or updateDisplayList() methods. This event describes the progress of the application in the initialization phase. You use this event when creating a custom download progress bar. The FlexEvent.INIT_PROGRESS constant defines the value of the type property of the event object for a initProgress event.

The FlexEvent.NAVIGATOR_STATE_LOADING constant defines the value of the type property of the event object for a navigatorStateLoading event. The properties of the event object have the following values:

The FlexEvent.NAVIGATOR_STATE_SAVING constant defines the value of the type property of the event object for a navigatorStateSaving event. The properties of the event object have the following values:

The FlexEvent.READY constant defines the value of the type property of the event object for a ready event. This event is dispatched by the BitmapImage and spark Image classes to denote that the assigned image source has fully loaded. The properties of the event object have the following values:

The FlexEvent.REMOVE constant defines the value of the type property of the event object for an remove event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.RENDER constant defines the value of the type property of the event object for an Event.RENDER event. Adding a listener on the SystemManager will add a listener for FlexEvent.RENDER events on the stage or the SystemManager if the application does not have access to the stage. The listener will also generate an Event.RENDER event. The listener function should expect to receive Event.RENDER events.

The FlexEvent.STATE_CHANGE_COMPLETE constant defines the value of the type property of the event object for a stateChangeComplete event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.STATE_CHANGE_INTERRUPTED constant defines the value of the type property of the event object for a stateChangeInterrupted event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.TRANSITION_END constant defines the value of the type property of the event object for a transitionEnd event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

The FlexEvent.TRANSITION_START constant defines the value of the type property of the event object for a transitionStart event. This event will only be dispatched when there are one or more relevant listeners attached to the dispatching object.

7fc3f7cf58
Reply all
Reply to author
Forward
0 new messages