Por Marcos Gonzalez Sancho
Pues para variar cada instalación de Eclipse me tengo que comer con patatas el escaso soporte que hay para flash lite en cuanto a las clases especiales con las que cuenta, y más concretamente con ExtendedKey y SharedObject, que tiene algunas diferencias interesantes con respecto al trabajo habitual con sharedObjects en Flash convencional.
No es la primera vez que os hablamos de esto, pero algunos links ya no funcionan, asi que para no perderlo de vista, lo posteo aqui y que quede para la posteridad. Con esto ya no deberíamos tener excusas para usar Eclipse con FDT cuando hacemos proyectos en Flash Lite (doy por hecho que en proyectos de envergadura media / grande se DEBE programar con clases, y rompo nuevamente una lanza en contra de la leyenda urbana que corre por ahi de que las clases consumen más memoria… esto es un post pendiente del Sr. Elecash y mio, que seguro que algún día ve la luz).
Aquí os dejo las definiciones necesarias para ExtendedKey y para SharedObject y dónde se han añadir los correspondientes ficheros en el entorno de Eclipse + FDT, para que no nos den la lata con clases no encontradas.
ExtendedKey.as
(fichero que ha de ir ubicado en: ruta_instalacion_eclipse\configuration\com.powerflasher.fdt.core\.config\core\as2)
intrinsic class ExtendedKey
{
static var SOFT1:String = "soft1";
static var SOFT2:String = "soft2";
static var SOFT3:String = "soft3";
static var SOFT4:String = "soft4";
static var SOFT5:String = "soft5";
static var SOFT6:String = "soft6";
static var SOFT7:String = "soft7";
static var SOFT8:String = "soft8";
static var SOFT9:String = "soft9";
static var SOFT10:String = "soft10";
static var SOFT11:String = "soft11";
static var SOFT12:String = "soft12";
}
SharedObject.as
(este fichero ya existe en la ruta anteriormente mencionada para ExtendedKey, pero hay que hacerle algunas modificaciones, quedando finalmente como se muestra a continuación)
dynamic intrinsic class SharedObject
{
static function deleteAll(url : String):Void;
static function getDiskUsage(url : String):Void;
static function getLocal(name : String, localPath : String) : SharedObject;
static function getRemote(name : String, remotePath : String, persistence : Object):SharedObject;
// Flash Lite 2.x or higher
static function GetMaxSize() : Number;
static function addListener(objectName:String, notifyFunction:Function) : Void;
static function removeListener(objectName:String) : Void;
// end Flash Lite special functions
function flush(minDiskSpace : Number) : Object;
function clear() : Void;
function close() : Void;
function connect(myConnection : NetConnection) : Boolean;
function getSize() : Number;
function onStatus(infoObject : Object) : Void;
function onSync(objArray : Array) : Void;
function send(handlerName : String) : Void;
function setFps(updatesPerSecond : Number) : Boolean;
var data : Object;
}
Van en negrita las mofidicaciones, que han sido seleccionadas de la documentación oficial de Adobe Flash Lite 2.x. Ojo con el atributo dynamic, que no se ve mucho, pero es una realidad.
Ale, ahora se que tengo a mano esto cada vez que reinstale Eclipse, o alguien me lo consulte. Por otro lado, por si alguien tiene alguna versión más antigua de Eclipse, en algunas no viene fscommand2 o viene como FSCommand2. Esto lo puedes encontrar en: ruta_instalacion_eclipse\configuration\com.powerflasher.fdt.core\.config\topLevel, en el fichero TopLevel.as
Asegúrate de que en él está la línea:
function fscommand2(command:String, parameters:Object):Void;
Espero que a alguno le sea de utilidad, pero yo no soporto warnings chorras o errors falsos en la lista de problemas de Eclipse… soy un neurótico, lo reconozco…
Sobre el uso y buen uso de SharedObjects
Y ya que estamos que lo tiramos, unos cuantos enlaces e información interesante sobre el uso de SharedObjects en Flash Lite:
Comentarios recientes