27 november 2006
Dit artikel gaat ervan uit dat je Actionscript Met Eclipse met flashout hebt draaien. Omdat er op de OSFlash maillijst(engels) wat vragen waren over remoting starten met FAME of met de MTASC Compiler, is dit artikel geschreven.
Let op:
Voor je start, zorg dat je webserver met amfphp beta 1.0 locaal draait en je eclipse omgeving klaar is voor FAME.
Welnu, er zijn een paar veranderingen nodig in de MM classes voor remoting. De stappen die nodig zijn om het te laten werken zonder error meldingen zijn de volgende.
Open de ‘NetServiceProxy.as’ uit je Macromedia calles map/mx/remoting/ en maakt de volgende veranderingen.
Sluit de file.
Open ‘RecordSet.as’ , uit dezelfde remoting map. Ga naar regel 404 en verander ‘return’ in ‘return null’.
Open nu Eclipse en maak jezelf een Actionscript project. Zet je classpath naar je package folder (in mijn geval de ‘src’ map).
We doen even de standaard helloWorld class om te testen. Deze class bevat de ge-assimileerde _root van Aral Balkan en bevat een main entry punt waarmee je de applicatie bouwt.
/* AMF 'hello World' voorbeeld actionscript 2 versie purpose: Voorbeeld file AMF 1.0 and FAME file: HelloWorld.as */ //import remoting spul import mx.remoting.Service; import mx.remoting.PendingCall; //dan de Responder interface import mx.rpc.Responder; import mx.rpc.RelayResponder; class com.nederflash.HelloWorld extends MovieClip { //on stage private var recieved_txt:TextField; private var addEventListener:Function; //vars die de gateway en de service vasthouden var service:Service; var gatewayURL:String; private function HelloWorld( target ) { Flashout.log("HelloWorld is gestart"); // Assimilate the target like Aral did before see http://flashant.org target.__proto__ = this.__proto__; target.__constructor__ = HelloWorld; this = target; Flashout.log("HelloWorld onLoad called"); //set je correcte url and create the service gatewayURL = "http://localhost/services/gateway.php"; service = new Service ( gatewayURL, null , "helloWorld", null, null ); doSayHello(); } //the service sayHello public function doSayHello(){ Flashout.log("doSayHellO gestart"); var pendingCall:PendingCall = service.sayHello(); pendingCall.responder = new RelayResponder( this, "onResultOperation", "onStatusOperation"); Flashout.log( "pendingCall = " pendingCall ); } /* -events */ public function onResultOperation(evtObj:Object){ Flashout.log( "INFO::onResultOperation->evtObj.result :" evtObj.result ); createTextField( "recieved_txt", 10000, 10, 10, 100, 20 ); recieved_txt.text = evtObj.result; } public function onStatusOperation(evtObj:Object){ Flashout.log( "INFO::onStatus->status operation geroepen" ); } //hoofd ingang main public static function main ( ) { var helloWorld:HelloWorld = new HelloWorld( _root ); } }
Maak zelf een nieuwe file en noem deze helloWorld.flashout.
Let op:
Je dient in het flashout venster nog de paden te zetten naar je swf en naar je ‘main’ class. Om dat te doen kijk je in het flashoutvenster onderaan bij de tabs. Daar vind je ‘Compilation status/preferences. wanneer je geen lege swf hebt neergezet, gebruik dan bij de MTASC ‘additional’ tab het commando (in het flashoutScreen bij Compilation status/preferences).
-header 300:300:20
Je geeft daarmee aan dat de swf nog gemaakt moet worden met de maten 300 breed en 300 hoog met een framerate van 20.
Geniet van een Open source remoting swf an het drukken van Compile.