Search Flex Components Free

Custom Search

December 9, 2007

AMFPHP - The Flashiest PHP Class Library Yet

from: amfphp docs. The second page of this document includes an overview of using web services with amfphp. For even more up to date information, please visit us on the AMFPHP message board.

AMFPHP Manual

Flash Remoting is client/server framework designed to ease data exchange between a server and the Flash client, using AMF, an exchange format inspired by SOAP.

AMFPHP is the open-source Flash Remoting gateway for PHP.

The need for Remoting

Let’s say you want to exchange data between Flash and a server. A common method is to use XML. Actionscript has a built-in XML parser, so you can load XML files directly from the server and read the data that’s inside. But what if you wanted to get data from a database? What developers used to do is create, for example, a PHP page, connect to a database, make a query, loop through its elements, create a long XML string out of the data, and send it back to Flash. Back in Flash, the inverse process would be done: get back Flash-readable data from an XML file by working to the DOM.

What’s wrong with this process? Well it is a tremendous waste of time; a lot of resources are wasted figuring out what schema to use, implementing code on server and client, and debugging. All of this for the purpose of constructing something on the server that you immediately destruct on the client side.

Enter Flash Remoting

Flash remoting is a toolkit including a server gateway, components, actionscript classes and a debugger. On the Flash side, you have a bunch of actionscript classes that handle decoding and encoding data. You have a gateway on the server side that also encodes and decodes messages and acts as a dispatcher to call the required service. Data is exchanged in the AMF format, which is a binary format inspired by SOAP. The gateway and the actionscript classes translate data into this neutral format, and this allows language specific data to be exchanged transparently. The bottom line: exchanging data between Flash and the server is fast and simple.

AMFPHP versus other implementations of Remoting

Most implementations of Flash Remoting (with the notable exception of FlashORB) use Remoting-specific objects and structures on the server side. For example, MM’s .NET implementation uses ASObject to wrap actionscript objects, and ColdFusion has a Flash struct to handle things like pagesize.

AMFPHP, on the other hand, was created with interoperability in mind, and hence does not use Flash-specific objects or keywords. The classes created for the AMFPHP framework are standard looking PHP classes with a methodTable attribute that won’t interfere if you plan to use these classes for other purposes. Actionscript variables are transferred very naturally as outlined in handling datatypes.

AMFPHP is a real, interoptable Remoting gateway, unlike language-specific solutions like PHPObject. That means that it’s easy to migrate applications that were made for ColdFusion, Java or .NET remoting to the AMFPHP framework: the Actionscript is basically unchanged.

Finally, a distinguishing feature of AMFPHP is the complementary service browser, which allows you to view your service specs using a web browser. The system even generates Actionscript for you, making it much easier to get started if you are a Remoting beginner.

AMFPHP Development Team -
Complete documentation: http://www.amfphp.org/docs/

Read Full Documentation >> Data Binding Components in Flash MX 2004 Pro: browsing a catalog

Our goal is simple: to browse a two level catalog of products (cold cuts and spanish ham). Users can select one family of products and see the details of each item in the selected catalog. Our data source is a MySQL database and we will be using PHP to access the database and output xml data to the flash application. In total there are 5 families of products and 31 products, each product has it's own image.

To follow this article you will need to have a local Web Server running PHP and MySQL (which are freely available). If you do not have a local server running PHP, you can download an automatic package for installing it on your platform, or download Apache, MySQL, and PHP seperatly and manually install them. Auxiliary instructions for Mac users and Windows users are available in the Technical reference area of flash-db. And the most important: Flash MX 2004 Pro. Make sure to download/buy the Pro version since the standard version does not include the data components.

Here are the files you will need in order to follow this tutorial.

If you are an experienced actionscriptor and have some familiarity with dynamic data in Flash MX, then you may want to jump to the Quick Start Guide. Otherwise Read On >>.

All question will be answered on the Flash-db Message Board.

Using the Flash MX 2004 Web Service Classes

Flash MX 2004 comes with two client side methods for connnecting to web services. The first is by using the web service connector component, the second is by using the web service classes. This tutorial deals with the web service classes, which can be found in the mx.services package. These classes can only be used with ActionScript and are not visual like the connector component. We'll be covering the WebService, PendingCall, Log, and SOAPCall classes in this tutorial.

The main advantage of using the web services class over the web service connector component is that you have a bit more control over the interaction between flash and the service, and the debugging is also more in-depth. The downside is that it can be more time consuming and binding the results to other components is not as easy as with the connector component. We'll be covering the connector component in the next tutorial in this series.

Both of the two methods for connecting to web services in Flash MX04 have a couple of disadvantages. The main being that it can be really slow when returning larger datasets. The reason for this is that, even with the mx2004 speed improvments, it can take a lot of processor power to convert the returned xml into flash actionscript objects. There are a couple of ways to mask this slow performance, such as turning on doLazyDecoding, but overall when returning large result sets from a web service it is a far better solution to go with Flash Remoting. Flash remoting will return the result set as AMF instead of XML which has a much faster transfer speed (much more compressed) and does not need to be converted to flash actionscript (as it already is).

The second disadvantage of using the new built in client side web service features of flash mx 2004 are the security features. In order to use a web service that is not located on the same server, the owner of that service would need to place a cross domain policy file allowing the flash movie access to it's service. This in a way defeats the purpose of web services, as shown by the following quote.

A simple way for any programming language from any server, device, other application, etc - to communicate with any other server, device, application in any programming language. - Intro to webservices tutorial.

To illustrate this point - what would be the chance of Amazon or Google implementing a cross domain policy file so that www.someSite.com could use flash to access there web services... () One thing to note: This security feature is only required when the movie is published and placed on a server, locally or in the flash authoring environment there are no restrictions. Using Flash Remoting with web services will eliminate this issue.

Lets get started
This tutorial covers one sample actionscript file. To start we go over the basic code needed, then add more code for different features as we move on. The tutorial will not be going over what to do with the returned data in flash, only how to get it there. To get started:

1: Open up flash mx 2004 and create a new flash document.
2: Drag a button component onto the stage and give it an instance name of result_btn.
3: ***Most Important***: You must include the WebService Classes, these are contained within a SWC file and must be present in your library in order to use the web services classes api. To include them:
Select the Classes library by selecting Windows > Other Panels > Common Libraries > Classes. Then drag an instance of the WebServicesClasses onto the stage.
And that's it for setup, the most important part is to drag an instance of the WebServicesClasses onto the stage (or into the documents library).

We are going to be testing with the Flash-db Company information service (that is also referenced in the ActionScript Dictionary). You can find out more details on this service here.

Another good way to find out information on any service is by using the Web Services Panel, which can be found at: Window > Development Panels > Web Services. To become familar with the web service that we will be using. Open up this panel and add in the following WSDL file: http://www.flash-db.com/services/ws/companyInfo.wsdl. It should look something like the following.

Using the remoting connector in Flash MX Professional 2004: editing a table

Goals and requirements

Our goal is to edit and update a catalog of products (cold cuts and spanish ham). Users will be able to load a list of products, and then edit and update the list. Our data source is a MySQL database and we will be using amfphp (Flash remoting for PHP) to communicate with it. You will need to have a PHP enabled server, MySQL, the Remoting Components for Flash MX 2004>> and amfphp >>. The remoting connector is available here >>. You will need to use the remoting connector found on that link as it is the only remoting component compatible with ActionScript 2.0. If you are unfamiliar with what we are talking about, it is recommended to first read: Hello World Remoting >>, an introduction to Remoting through amfphp as well as the Amfphp documention >>, which is found here >>. You may also want to review the data binding tutorial, which can be found here >>, before preceding.

The example files for this tutorial can be found here: examples files. You may want to look them over before moving all. You will need to own Flash MX Professional 2004 (or trial version) to open up the files and continue on with this tutorial. You'll also need to have the Flash 7 player installed to view the below example.

Below is the working movie. Select a cell, modify the data and press update button. The view results button will display a non editable table containing the new data. When finished testing, please press the reset button so the list is returned to the default settings.

Cell Renderer API: components inside a Datagrid

Goals


This example shows how you can use components inside the the datagrid. If you have not worked with data binding before, it is recommended to first read the following Browsing a Catalog >>.

In this example a checkbox, combobox and a custom icon is used inside the datagrid component. The flash mx 2004 documentation briefly explains how to add components to a cell using the Cell Renderer API, but it is difficult to understand and use. Luckily there is an example that we can use as a base to expand upon (mx.controls.cells.CheckCellRenderer). By following how this works it is not difficult to figure out how to add other components to a cell.

Before starting, download the example file >>

Here is our working movie. This is meant to be as simple as possible while still providing an example you can play around with.

Flash Communication and Flash Remoting login

Goals and requirements

If you're not confident with Remoting (amfphp) neither FlashCom, then perhaps is not a good idea to begin with this.

Our goal is to build a login system to a FlashCom application querying a database to match user/pass. Since FlashCom doesn't have directly access to databases, we will use it in conjunction with Flash Remoting (amfphp) to aces it. If you don't have the FlashCom server, download the free development edition from Macromedia site >>. You need also to have a PHP enabled server, MySQL and amfphp >>. If you don't know what's amfphp is, we suggest to read first: Hello World Remoting >>, an introduction to Remoting trough amfphp, that also explains how to setup the environment. Before starting, download the example files >> (this file keeps the folder structure)

IMPORTANT: If neccesary, modify the path to your gateway in main.asc. Modify also that gateway.php and inc_sql.php to match your needs.

Here´s our working movie, just a simple login. Use Username: test and Password: test

Loading data into Flash

Goals

All around this tutorial, we will explore different ways of loading data into Flash. We are involved with dynamic content. Once you have your hard code movie, is time to move to a new scenario where data comes from outside world: a file or a database, this is the door for that Macromedia calls RIA, Rich Internet Applications. Whit out dynamic data, we can't think in real applications, but when we're able to talk to server side, we're just in the beginning of a new way of doing things ...
Trough this tutorial we will move always based on the same example: loading some image, a title and a comment about it, or with multiple data. a couple of images, titles and comments. Doesn't matter which file we use to store the external data: our goal is to load this piece of info and show into our movie. Remoting example use more data since is a more faster and advanced way of doing this.

This tutorial is divided into several parts, and if you have some knowledge, you can skip parts and go right away to the method you're looking for.

1. General loading principles
2. Loading data from text files
3. Loading data from XML files
4. Loading data from databases using name/value pairs (PHP and ASP examples)
5. Flash Remoting (AMFPHP and Coldfusion examples)

Download examples files >>>

Saving data from Flash

Goals

This tutorial is closely related to the previous "Loading data into Flash using AS3 ", in fact, is like the second part of the rewriting of the original tutorial writed for AS2 :). So if you're not familiar with loading external data, read it first. In this second part, we will explore different ways of saving data into an external file. Again we're involved with dynamic content. The outside resource could be a text file or a database: now we know how to read it, so save is our next step. Reading and saving data allows our application to be a real front-end where the user can interact a lot of outside resources.
Trough this tutorial we will move always based on the same example: saving a Title, a comment and the name of an image using a Flash form. Doesn't matter which file we use to save data: our goal is to save this piece of info. We will use different back-end language: PHP and ColdFusion.

This tutorial is divided into several parts, and if you have some knowledge, you can skip parts and go right away to the method you're looking for.

1. Saving foundation
2. Saving data to text files
3. Saving data to Shared Objects
4. Saving data to databases using name/value pairs (php-cfm code)
5. Saving data to databases using Remoting (amfphp-CFM) examples

Download examples files >>>

Flash Remoting Connector Component

This summary is not available. Please click here to view the post.

An Introduction to Flash Remoting

What is Flash Remoting?
Flash Remoting allows flash movies to call remote server side applications, passing parameters and recieving requests, without knowledge of the server side. The calls are usually named Remote Procedural Calls (RPCs), and transfer serialized, type-persistent objects directly between the server and a Flash MX client. Developers on both sides (flash and server) collaberate on ways of calling methods in order to build the system. With AMF (Action Message Format) the exchange of information is faster and allows you to pass objects (not only name/value pairs) between Flash and the server in binary format. This allows you to easily develop complex applications that rely on an efficient way of sending and recieving data.


Flash Remoting was first available as a native ColdFusion feature, then extended to .Net and J2EE Application Servers. But recently one of the Forum Administrators here in Flash-db (Wolfgang aka Musicman) exposed the binary format of the AMF packet. This opened the door for the AMFPHP Project, where developers have been building an open source library to port Flash Remoting to PHP. This project will allow Flash developers to use Flash remoting in a PHP environment, and with (almost) the same functionality as Macromedia's version. Other developers have also begun to port flash remoting to other languages such as Java (see http://www.openamf.org/) and Perl (see http://www.simonf.com/flap/)

You can follow also an interesting discussion about Flash Remoting here

Visit the amfphp flash remoting message board for up to date (amfphp is still in development) and helpful tips (amfphp can either be really easy or really hard to setup and use the first time). The latest version (1.2 as this writing) can be downloaded from amfphp site.

Requirements

To run this example you need

- A web server running with php support (or ColdFusion server if you want to check ColdFusion example)
- Amfphp. You can download from http://www.amfphp.org
- Remoting AS2 classes from http://www.macromedia.com/software/flashremoting/downloads/components/.

If you want to use Java, check HelloWorld with Openamf tutorial. Here's our working example and the source files:

Transitions effects in Flash 8

This tutorial is closely related to the previous "Image filter and jpg output in Flash 8", in fact, it's a new approach to BitmapData class, one of the most important additions in Flash 8. With this new Class (and related ones) pixel manipulation is a fact. In this example, we build a basic photo gallery to show different transitions between images. All of this transitions were possible with previous version, but the intense CPU usage makes almost impossible to run it on non ultrapowerfull machines. I remember myself hanging my machine trying impossible effects. Let's me give you an example.

The dissolve effect (break the image in little squares that randomly fly out) in this example use 1500 clips. In the old way, you need to duplicate 1500 times a MovieClip holding the image, then mask each clip and offset the inner image to match source. This old way increase the CPU usage at a level that froze your machine (based on image dimensions) With Flash 8, you can simply copy 10*10 pixels grid from source and make them fly out whit out such a penalization. Nice ...

Ok, here's our working example (requires Flash Player 8) Download the example files (require Flash 8) and continue reading

Download examples files >>>

Uploading files with Flash 8

Those trying workarounds to upload files in Flash in previous versions (like the Yamago component with all the cross-browser issues) will be finally happy: with Flash 8, native support exists! This example shows how to use the new FileReference class to upload a file to a server. Nothing difficult, but pay attention: you always need some server script yo store the file in the server. Flash can't upload the file by itself, and instead needs a back-end language to do the server side job.

You should have Flash Player 8 installed to follow this example. Here's our working movie (all files will be deleted, so don't expect that they remains on the server)

Loading data helper classes

Goals

When using back end stuff like database or just simply scripts that save files, use web services or Flash remoting, usually we are involved in the repetitive task of using different LoadVars objects to send and receive data. Once received, we parse and use it. I often get involved in this kind of task and decided to create some wrapper class to avoid repetitive code, and also simplify things. So this simply classes deal with external data: simple variables loaded trough a LoadVars object, data coming from web services or trough Remoting

The three classes implement a queue, so successive calls are dispatched in order, one after the other. This could be no the intention in some situations, so don't use this class if you want to load all at once (using multiple LoadVars object or Pending Calls when using web services or Remoting) In some cases, multiple calls could competes for bandwidth when using large results (some web services returns huge large XML documents or Remoting services large recordsets) so I usually try to resolve in order. The general idea is to make a call and pass a function as the receiver making the process shorter: one call, one function. This doesn't mean that you don't need to parse the results, since each case is different than others, but less code is necessary for the mechanism, and those not comfortable with LoadVars, Web services, Remoting (or just to type much like me) will be happy

Below three movies as example: on the left, one movie loading data using ten successive calls, on the right, a movie loading a list of web services offered by xmethods, and below them the HelloWorld Remoting example using the remotingProvider class

Hello World with Openamf

This summary is not available. Please click here to view the post.

Dragable buttons (Flash 7 or above for the example)

Because of a recent question on the boards, I decided to make this quick tutorial. This example covers some basic aspects of Actionscript. It includes Arrays, for loops, basic functions, and some simple buttons. There are no requirements for this tutorial. I've used components because they do a good job of displaying the actions. Feel free to use any button or movieClip you want. If you don't use components, then you won't easily see the disabled state of the buttons but it will have no effect on the functionality.

As for the usage, it's very simple, just click and drag a button. You will see that the button you drag stays above the others and the others deactivate. I thought this might be a useful script for games or online applications that deal with draggable movieClips. It is very simple, but with a basic array and some simple functions, we can create a powerful script. Not only can you use this "as is", but it can be modified quite easily. Thank you and enjoy.

Here are the example files >> and here is our working movie.

To send a form flash/php and answer HTML with AMPFPHP

This tutorial is consequence of the previous tutorials that I have published, since many requests arrived to me to about being able to use the form without the need to activate global_register, which suppose a problem in many servers with globals deactivated for security reasons (default configuration in php 4.x). With this form you will be able to send from any server who admits php without more requirements of configuration than having AMFPHP library (so just upload amfphp distribution) Here in Flash-db you will find An Introduction to Flash Remoting. Also we will not have problems with the levels in which we load our form, since it is not necessary to indicate it in php, Remoting will handle the server side talk in any level.

Here's our form to illustrate the idea:

Download the Source Files

Fire effect class

Introduction
Before Flash 8 we made fire mainly by drawing flames and animating every frame. We have use some programs like Photoshop or other that make animated gif's or into Flash itself. We have achived big .fla size, little reality because of repeating frames and even low customization. Thanks to Ken Perlin and his Perlin noise function, gives mankind opportunity programmatically to create nature texture like wood, water, marble, fire, clouds ..... Perlin noise function is added to Flash 8 AS2 which allow us to make realistic textures and by using Flash animating engine make them alive.

Making Fire programmatically takes 4 planning steps. Here's our working example and the source files:


Download example files >>>

Continue reading to know how the effect works

Loading data into Flash using AS3

The same but a different flavour

Ok, here am I again rewriting this tutorial, an old topic but important when writing dinamyc applications. Loading data makes movies change, is the foundation for what we call RIA (Rich Internet Applications) With the new AS3 version of ActionScript, Adobe encourages developpers to write classes instead of code splitted in many frames. Anyway you can script the "old way", that means just with some lines on a frame ... anyway we will take the easy approach, those will OOP knowledge will convert easy this lines to a class while others using timeline scripting could use as it is.

Goals

All around this tutorial, we will explore different ways of loading data into Flash. We are involved with dynamic content. Once you have your hard code movie, is time to move to a new scenario where data comes from outside world: a file or a database, this is the door for that Macromedia calls RIA, Rich Internet Applications. Whit out dynamic data, we can't think in real applications, but when we're able to talk to server side, we're just in the beginning of a new way of doing things ...
Trough this tutorial we will move always based on the same example: loading some image, a title and a comment about it, or with multiple data. a couple of images, titles and comments. Doesn't matter which file we use to store the external data: our goal is to load this piece of info and show into our movie. Remoting example use more data since is a more faster and advanced way of doing this.

This tutorial is divided into several parts, and if you have some knowledge, you can skip parts and go right away to the method you're looking for.

1. General loading principles
2. Loading data from text files
3. Loading data from XML files
4. Loading data from databases using name/value pairs (PHP example)
5. Flash Remoting (AMFPHP and Coldfusion examples)

Download examples files >>>

Saving data from Flash using AS3

Goals

This tutorial is closely related to the previous "Loading data into Flash using AS3 ", in fact, is like the second part of the rewriting of the original tutorial writed for AS2 :). So if you're not familiar with loading external data, read it first. In this second part, we will explore different ways of saving data into an external file. Again we're involved with dynamic content. The outside resource could be a text file or a database: now we know how to read it, so save is our next step. Reading and saving data allows our application to be a real front-end where the user can interact a lot of outside resources.
Trough this tutorial we will move always based on the same example: saving a Title, a comment and the name of an image using a Flash form. Doesn't matter which file we use to save data: our goal is to save this piece of info. We will use different back-end language: PHP and ColdFusion.

This tutorial is divided into several parts, and if you have some knowledge, you can skip parts and go right away to the method you're looking for.

1. Saving foundation
2. Saving data to text files
3. Saving data to Shared Objects
4. Saving data to databases using name/value pairs (php-cfm code)
5. Saving data to databases using Remoting (amfphp-CFM) examples

Download examples files >>>

Flash Remoting with AS3

Remoting and amfphp

If you don't know what Remoting is, probably you can read the introduction of AS2 tutorial . The short history is: a way of invoke RPC (Remote Procedure Calls) on server and share data in a binary format. Is the best structured and faster way to work when developing RIAs. Indeed, AS3 trough Flash and Flex opens new ways of sending data to and back, and this will be the focus of this tutorial.
Amfphp have been upgraded and now support AMF3 (Flex specs for amf) and it's easier to be installed, while it comes with a new service browser developed in Flex. If you compile your PHP library with a special C extension, parsing routine can become extremely fast and also your average, check this article. Client side is probably a little cumbersome due to strong typing in AS3, but was simplified with the use of NetConnection as the base class.

Requirements

- A server running PHP (easy to install bundled packets on apachefriends site) PHP 5+ needed for type checking on server side for VO examples
- amfphp 1.9 beta 2
- Flash 9 (Flash example) and Flex 2 Builder (Flex example)
- Charles for debugging

Relevant topics

This tutorial is divided into three little parts, and if you have some knowledge, you can skip the first simple example and go to VO example with Flash or Flex. Since many examples on using Flex with amfphp can be finded around there (even using advance techniques like mapping multiple data to class instances trough ArrayColection), not much on using Flash with the same features it's easy to find. Will be Flex the tool for heavy developers while Flash more oriented to design? I'm not totally agree, and as Flash fan will continue to use it as much as possible.
So our topics

1. Amfphp installation
2. Debugging with Charles
2. Basic example of loading/saving
3. Passing VOs to Remoting using Flash
4. Passing VOs to Remoting using Flex

Determining the first visible item in a Flex Tree control



layout="vertical"
verticalAlign="middle"
backgroundColor="white">


import mx.events.FlexEvent;
import mx.events.ScrollEvent;
import mx.utils.ObjectUtil;

private function tree_creationComplete(evt:FlexEvent):void {
tree.expandChildrenOf(xmlDP, true);
getFirstVisibleTreeItem();
}

private function tree_scroll(evt:ScrollEvent):void {
getFirstVisibleTreeItem();
}

private function getFirstVisibleTreeItem():void {
node = tree.firstVisibleItem as XML;
}
]]>





































dataProvider="{xmlDP}"
labelField="@label"
showRoot="false"
width="50%"
rowCount="6"
scroll="tree_scroll(event);"
creationComplete="tree_creationComplete(event);" />

width="50%"
height="100%"
editable="false"
text="{node.toXMLString()}" />


Using an Array as a data provider in a Flex Tree control

The following code shows you how you can use an Array as a data provider for a Tree control in Flex.

Full code after the jump.

Continue reading ‘Using an Array as a data provider in a Flex Tree control’

Sorting XML documents using an XMLListCollection

The following example shows how you can sort an XML document by converting it into an XMLListCollection and applying a sort. You can also easily reverse the current sort by calling the SortField object’s reverse() method and refreshing the XMLListCollection object.

Full code after the jump.

Continue reading ‘Sorting XML documents using an XMLListCollection’

Changing the appearance of the locked column separator skin for a DataGrid control in Flex 3

The following example shows how you can set the verticalLockedSeparatorSkin style in MXML and ActionScript to control the appearance of the vertical locked separator skin when setting the lockedColumnCount property on a Flex Datagrid control.

Full code after the jump.

Continue reading ‘Changing the appearance of the locked column separator skin for a DataGrid control in Flex 3′

Changing the appearance of the locked column separator skin for a DataGrid control in Flex 3

The following example shows how you can set the verticalLockedSeparatorSkin style in MXML and ActionScript to control the appearance of the vertical locked separator skin when setting the lockedColumnCount property on a Flex Datagrid control.

Full code after the jump.

Continue reading ‘Changing the appearance of the locked column separator skin for a DataGrid control in Flex 3′

Installing the Flex Skin Design Extensions for CS3 from Adobe Labs

The Flex Skin Design Extensions are a set of extensions for various Adobe Creative Suite 3 applications (notably Flash, Photoshop, Illustrator, and Fireworks) that allow you to easily create skins for various Flex components and other assets (such as cursor manager, drag manager, etc.)

To quote the Flex Skin Design Extensions page on the Adobe Labs site:

Flex 3 helps designers and developers to more easily work together by enabling you to import skins that were created in the Adobe Creative Suite 3 products, including Photoshop, Illustrator, Flash, and Fireworks. New extensions are available below for each of these CS3 products that will allow you to create and export Flex component skins that can then be consumed using the Flex Builder Skin Import Wizard.

Basically, the workflow is install the extension for the various products (each extension’s install instructions are different, so make sure you read the read me files), create a skin in CS3 program, and then import the skin into Flex Builder using the super-handy Import Skin Artwork wizard? Sound easy? You betcha!

Since I have Flash CS3 Professional installed and handy at home, we’ll take a look at the workflow.

First, head over to the Flex Skin Design Extensions page on the Adobe Labs site and download the MXP file for the “Flex Skin Design Extension for Flash”. Before you can install the extension, you should have Flash CS3 and the Adobe Extension Manager CS3 already installed. Don’t have a copy of Adobe Flash CS3 (*gasp*)? Well, head over to http://www.adobe.com/go/tryflash and download a 30 day trial version (downloading requires an Adobe account — check out the Flash CS3 system requirements). If you don’t already have the Extension Manager installed, you can download the Adobe Extension Manager CS3 (version 1.8). Extension Manager 1.8 includes support for the Dreamweaver CS3, Fireworks CS3, and Flash CS3 releases.

To install the MXP, simply double-click to launch the Adobe Extension Manager. The Extension Manager will bring up an end user license agreement for the Flex Skinning Templates extension which you must read and accept before proceeding. After clicking the Accept button, the extension is installed, and you can close the Extension Manager application.

Again, to quote the Flex Skin Design Extension for Flash section of the Flex Skin Design Extensions page on the Adobe Labs site:

These templates, in conjunction with the Flash Component Kit, enable you to create and export a skin in Flash CS3 and then import it into Flex Builder using the Skin Import Wizard. To install the Flash Component Kit, follow the readme instructions found in the /frameworks/flash-integration/ folder in the Flex 3 SDK.

Flex 3.0 Business Ideas upto 100

One of my friends is a party animal and wants to learn those latest hip hop dance. So he bought this learn to dance video. This brand new instructional dance video teaches him how to dance in nightclubs and other nightlife venues. The problem he had is that the music and dancing encapsulate nightlife entertainment venues and yet very few people know how to dance. He said in the clubs most hold themselves back, and nearly everyone wishes they could somehow learn or get a lot better.To those guys going to clubs, not for the sake of being a good dancer alone, but to become more attractive to the opposite sex and feel less socially awkward. He said this new DVD will offer the solution. Actually it’s indeed kinda fun just watching it.

It strike me after watching this video is that when you are learning dancing, you really don’t care too much about the models or the teachers. What you really care about are the moves, the elegance, smoothness and the confidence on the floor. All those come from the details collaborated combination of body parts movement. That’s why people buy video so that they can watch it over and over again. With video, you can rewind, backward, forward, slow frame, etc. However, the angles are fixed and you can’t see it from different angle to get more detail and precise movements. So really you have to use your imagination quite often.

Now, what if a application is developed using, say, Flex/AIR, offered online or offline. All the moves are extracted from the learn to dance video and 3D-tize it. When you are learning the move, not only you can go back and forth. You turn it to different angles to see other side of the body parts within the same move. This way you can totally focus on mimic the move rather than doing some guess work as well. You can see this technology can be used beyond the dance learning.

Too bad so far there isn’t anything like this. So, to my friend the best choice available is the dance video he bought. Good luck and happy party!

Microsoft Silverlight Live Search site with Flex 3.0

Started from Popfly, Microsoft startes using separated (from microsoft.com) internet domain names (even domain, i.g. *.ms) to prompt its products and technologies. Here goes again with Silverlight. They released the beta version of the Silverlight based Live Search, Tafiti. Once you tried you would know that you won’t use it any further for your daily internet search. The whole site really just for the sole purpose, demonstrating Silverlight technology. For that matter, it does a very good job.

Once you are on, just type in a word, the search results will be brought back on a popping board in animated way. No advertisement around here. There are two views to show the results. Another one is tree view. Of cause it’s highly useless except it does show Silverlight’s animation and 3D alike capabilities. There are not whole lots bells and whistles but it does give you a grown-up RIA tool kind of feeling. Pure technically I think it indeed posts a threat to Flash based RIA product family. From general RIA stand point, it’s a good thing.

Flex 3.0 Ruby on Rails RIA SDK from Adobe

A week after the my post on the releasing of Flex addin for Ruby on Rails from the Midnight Coders, Adobe announced the Ruby on Rails RIA SDK.

the SDK is released as opensource project. It comes with a good example that actually using the WebORB for Ruby on Rails from the Midnight Coders. This opensource project is currently hosted on Google Code, where you can check out the code via Subversion.

I love Ruby on Rails. A fully integrated Flex on Rails will be a godsend tool for RIA web developers. Go for it.

Flex needs Learn from Ruby on Rails

I’m a Ruby on Rails (RoR) fun too. Flex (or later Apollo) as a commercial product, even the framework is free, could learn from a lot from Ruby on Rails.

Ruby on Rails started with a “bang” on great deal of quick and simplicity for rapid agile development. Then the ecosystem grows fast and strong. People start adapting Ruby on Rail based on the good amount of reusable “stuffs”. The DRY (don’t repeat yourself) concept really makes RoR HOT. Let’s see what Flex can learn from these reusable “stuffs”.

gem :: the Gem is actually Ruby way of extending the core Ruby engine with more functions and features. All other opensource scripting language such PHP or Perl have something like this. A gem is installable module and can be managed by the ruby utility, gem. There are standard way of distribute it, using repository, etc. Mapping it to Flex, we need something similar for ActionScript level extension sharing system. Do we have it? Maybe not yet. Adobe can play a important role on this. It’s all about a healthy ecosystem, for all tools using ActionScript.
Rails Engine :: This is the rails extension right into the Rails guts. Not a recommended way of sharing. We don’t want to directly change the Flex framework. Adobe of cause can play with it to provide more integrated extension (like the Charting).
Rails Plugin :: This is the best part of Rails. Similar to gem for Ruby, Plugins give clear and clean extension to Rails, with standards for plugin development, distribution and management. To Flex, the developer community really needs a way to share reusable code, not in the copy-paste way. Yes, from either Flash or Flex, you can build component for sharing, but it just seems this traditional “VB control” approach is not that community friendly anymore.
Rails Component :: Forget about this.
Rails Helper :: Helpers keep Rails view (UI) lean and clean and DRY. While Plugin could cover all part of MVC, Helper helps mainly for the view. The management and distribution of Helper is loosely like sharing lib, or just tag along with a Plugin. Since Flex/Flash is very visual, there could be room to share effects, theme, skin the Rails helper way.
Anyway, Flex is not Ruby or Ruby on Rails. Copy and Paste is no sure way to build a healthy ecosystem. However, all the popular opensource language or frameworks did it, might as well Flex. How do you think?

Flex On Ruby on Rails | Flex for Rails Developers

I love RIA technologies and Ruby on Rails. I always think combination of the these two could be greatest system framework. I’m glad Adobe recognizes that too, so do a few great guys. Here are the examples:
Integrating Flex 2 and Ruby on Rails
This Adobe article was written by Derek Wischusen from flexonrails.net. This is a full example writing including all the source code and the details on how it works. Very good start point to understand the beauty and power of the dual, Flex and Ruby on Rails.

When using Flex you have several options to choose from for back-end server software. So why might you want to choose Rails? Ruby on Rails, like Flex, is a well thought out, elegantly simple framework. As you will see, Rails uses code generation and metaprogramming to make it incredibly easy to integrate with a database using almost no SQL code. Furthermore, when you use Rails, you also get to use Ruby, a programming language that is both extremely powerful and easy to use. Using Flex and Ruby on Rails, you will be able to get more done with less code.

Flex + Rails + Ruby = RIA Nirvana.

I can’t agree more.

Combining the Power of Flex2 and Ruby on Rails
This is a combination of both vediocast and podcast. It’s a interesting way of delivering technology content itself. I’m not it’s good way of getting hand on something but rather a entertainment of learning to love a piece of great technology.

RubyOnRails and Flex
Stuart Eccles from liverail.com posted the mini serial article on the integration of Ruby on Rails and Flex. Here they are, Part 1 — Part 2 — Part 2 Extra Time. Just remind you they are not some quick blog posts. Those are lengthy technical details step by step. If you know both technologies, you’d love these. Thank you!

Flex On Ruby on Rails
Automating the communication between the client and server. It’s written by Harris Reynolds. The server technology it used is WebORB by Midnight Coders (www.themidnightcoders.com). This WebORB approach is somewhat different because the server side has been handled by not just spiting out XML, rather, a more robust engine. If you are considering a big scale serious application, this could be solution for you.

Flex for Rails Developers
If you are looking for a Flex + Ruby community, then http://flex.org/ruby is the place. The greatest part of this community is that you can pick up a bunch of components for your Flex Ruby experiment.

Flexible Rails
Peter Armstrong’s Flexible Rails is a site that prompts his ebook, Flexible Rails, which costs $20. Besides the book, there are good amount of information and sources relate to Flex and Rails.

RailsLog Visualizer
I’ve mentioned this couple of times, only because this tool is still evolving, now on Adobe AIR too. Well, it’s not really integrating with Rails, however, it’s close to Rails enough to be listed here.

RESTFul Rails from Flex
If you have no idea what RESTFul means, then you probably is not in the Rails camp. In that case, you might know what DRY means either. But never mind, this article will help you some. It’s not long but very very thoughtful approach for Flex and Rails integration.

Adobe Flex SDK for Rails
Yes, Adobe is still very trendy and hype and it does Rails too with Flex. They put it open source on Google Code.

WebORB for Ruby on Rails
WebORB for Rails is server-side technology enabling connectivity between Flex and Flash Remoting clients and Ruby on Rails applications. WebORB for Rails can be installed as a plugin into any Rails application to expose Ruby classes as remote services. The product provides a complete implementation of the Adobe’s AMF0 and AMF3 messaging protocols and thus supports any Flash Remoting or Flex client. This is a very serous product that you can take it as great solution for a real application.

Here are a few articles from them: Invoking Ruby objects with .

RubyAMF
People doing Flash might familiar with AMFPHP, the open source Flash Remote framework allows Flash or Flex communicate with PHP backend. RubyAMF does the same thing for Ruby. Like WebORB, it’s not directly involved with Rails but it provides the fundamental building block to enable high performance Flex Rails integration, beyond XML messaging.

How to Learn Flex?

Finally I come back again. Too busy in getting several Flex projects out of doors. But believe me, I didn’t keep my head down. I am watching the RIA expanding rapidly. I’m reading the conventional media when they are catching up and playing the buzz word ‘RIA’. I am laughing at the war between AJAX and Flex camp. I see developers walking around and wondering, “what’s up with the whole Flex thing!” I’m imagining a bunch of developers typing in the keywords, RIA or Flex into google and trying to get on the RIA ride. I’m surprised that Google brings my sleeping flex site to 6/10 PageRank. Need more proves of a big thing is coming, or is landed?

So, you want to learn Flex?

I call out all flexers. let’s make some roadmaps for whoever wants to learn Flex. Some may say there are plenty of resources already, go digging. But I’ll argue for my dear flexer-wana-bes, “yes dude, but where should I start with?”

Now I turn my head to my dear eager and frustrated flexer-wana-bes. First my friend, who are you?

So today Let’s figure out all the starting point for our Learning Flex Roadmap - So You Want To Learn Flex.

J2EE Developers
.Net (Windows) Developers
Opensource Web Developers
Flash Media Designers
Flash Application Developers
die-hard ColdFusion Developers
All-in-one developers
None GUI System Developers
programmer-wana-bes (gona be hard, but I’ll give it a try)
Are there more distinguished groups of people we want list them here? As you may figure, the roadmaps are really for those who will do the coding and create Flex application with bare hands. For those who will not get hands dirty, just visiting Macromedia will do.

Related Flex Tutorials