Hello :)
Premier feedback sur le classmapping de base... ils ont rien touché..
que dalle... bref toujours le même problème avec le SSAS qui ne gère
pas les registerClass sur des fonctions anonymes ! Du coup pas
possible de faire du classmapping sur des classes avec un namespace
( myPackage.MyClass ! )
# Classe simple en AS3
package test
{
import vegas.core.CoreObject ;
public class UserVO extends CoreObject
{
public function UserVO( name:String=null )
{
if ( name != null )
{
this.name = name ;
}
}
public var name:String ;
}
}
# Exemple dans Flash CS3 :
import flash.events.NetStatusEvent ;
import flash.net.NetConnection ;
import flash.net.registerClassAlias ;
import flash.net.Responder ;
import test.UserVO ;
var rtmpUrl:String = "rtmp://localhost/test" ;
var u:UserVO = new UserVO( "eka" ) ;
trace(u + " : " +
u.name ) ;
registerClassAlias( "UserVO", UserVO ) ;
var netStatus:Function = function( e:NetStatusEvent ):void
{
var info:Object =
e.info ;
trace(info.code + " : " + info.description + " : " + info.level ) ;
nc.call( "test" , responder, u ) ;
}
var result:Function = function( ...args:Array ):void
{
var r:* = args[0] ;
trace("result : " + r + " : " +
r.name ) ;
}
var status:Function = function( ...args:Array ):void
{
var error:* = args[0] ;
trace("status : " + error ) ;
for ( var prop:String in error )
{
trace(prop + " : " + error[prop] ) ;
}
}
var responder:Responder = new Responder( result , status ) ;
var nc:NetConnection = new NetConnection() ;
nc.addEventListener( NetStatusEvent.NET_STATUS , netStatus ) ;
nc.connect( rtmpUrl ) ;
# main.asc dans une application test/ sur le serveur :
function UserVO( name )
{
if ( name != null )
{
this.name = name ;
}
}
UserVO.prototype.name = null ;
application.registerClass( "UserVO", UserVO ) ;
Client.prototype.test = function( o )
{
trace("test : " + o ) ;
return o ;
}
application.onAppStart = function ()
{
trace("application start") ;
}
application.onAppStop = function ()
{
trace("application stop") ;
}
application.onConnect = function ( client )
{
trace("connect client : " + client) ;
application.acceptConnection( client ) ;
}
application.onDisconnect = function( client )
{
trace("disconnect client : " + client) ;
}
On peut tester de faire une classe avec une fonction anonyme et on
obtient le même message d'erreur que dans FMS2.... au final bah les
problèmes persistent et Adobe se contre fou pour le moment de fixer ce
genre de problème ! Dans tous les cas vu qu'il n'y a aucun moyen de
les contacter pour leur donner notre feedback sur ce genre de
problème... on va pas aller très loin :)
Maintenant faut que je teste le classmapping avec un byteArray mais je
ne sais vraiment pas comment faire vu que je ne vois aucun outil pour
réaliser un byteArray côté serveur.. à suivre donc...
EKA+ :)