AS3 / Flex2 Arrays tipados
Dos posibles soluciones al tipado fuerte para arrays ( TypedArray )
Flex2:
-
[ArrayElementType("String")]
-
public var newStringProperty:Array;
Flex2 / AS3:
-
// sacado de: http://livedocs.macromedia.com/labs/as3preview/docs/00000087.html#120171
-
package
-
{
-
{
-
private var dataType:Class;
-
-
public function TypedArray ( typeParam:Class, ...args )
-
{
-
dataType = typeParam;
-
var n:uint = args.length
-
{
-
var ulen:uint = dlen
-
if (ulen != dlen)
-
{
-
throw new RangeError("Array index is not a 32-bit unsigned integer ("+dlen+")");
-
}
-
length = ulen;
-
}
-
else
-
{
-
for (var i:int=0; i <n; i++)
-
{
-
// type check done in push()
-
this.push(args[i])
-
}
-
length = this.length;
-
}
-
}
-
-
{
-
var passArgs:TypedArray = new TypedArray(dataType);
-
for (var i:* in args)
-
{
-
// type check done in push()
-
passArgs.push(args[i]);
-
}
-
return (super.concat.apply(this, passArgs));
-
}
-
-
AS3 override function push(...args):uint
-
{
-
for (var i:* in args)
-
{
-
if (!(args[i] is dataType))
-
{
-
args.splice(i,1);
-
}
-
}
-
return (super.push.apply(this, args));
-
}
-
-
AS3 override function splice(...args):*
-
{
-
if (args.length> 2)
-
{
-
for (var i:int=2; i<args.length; i++)
-
{
-
if (!(args[i] is dataType))
-
{
-
args.splice(i,1);
-
}
-
}
-
}
-
return (super.splice.apply(this, args));
-
}
-
-
AS3 override function unshift(...args):uint
-
{
-
for (var i:* in args)
-
{
-
if (!(args[i] is dataType))
-
{
-
args.splice(i,1);
-
}
-
}
-
return (super.unshift.apply(this, args));
-
}
-
}
-
}
Delegando eventos en JavaScript :: Delegate.create()
Siguiendo el rollo del post anterior, en el que queríamos ejecutar un callback de un evento en el ámbito de una clase concreta, pues otra manera mucho más cómoda de hacerlo para un desarrollador ActionScript sería con una clase Delegate para JavaScript.
La adaptación sería esta:
-
/* Delegate.create
-
* Ejecuta una función en el contexto del objeto original
-
* @param obj(Object) el objeto dónde ejecutar la función [func]
-
* @param func(Function) referencia a la función a ejecutar
-
* @param params(Array) array de parámetros que enviamos a func
-
*/
-
Delegate = {
-
create: function (obj, func, params)
-
{
-
var f = function()
-
{
-
return func.apply(obj, params);
-
};
-
return f;
-
}
-
}
Y un ejemplo:
-
Delegate = {
-
create: function (obj, func, params)
-
{
-
var f = function()
-
{
-
return func.apply(obj, params);
-
};
-
return f;
-
}
-
}
-
-
function clazz()
-
{
-
this.msg = "¡Estoy en clazz!";
-
this.f();
-
}
-
clazz.prototype.f = function ()
-
{
-
var img = new Image();
-
img.onload = Delegate.create(this, this.callback, ["param1", "param2"]);
-
img.src = "on.gif";
-
}
-
clazz.prototype.callback = function(p1, p2)
-
{
-
alert( this.msg );
-
alert( p1 );
-
alert( p2 );
-
}
-
var c = new clazz();
Eventos javascript dentro de clases
En javascript, cuando desde dentro de una clase registramos un evento y queremos que dentro del callback de dicho evento sigamos dentro del ámbito de la clase simplemente no existe manera de hacerlo...
Siempre que se registra un evento a un elemento, el ámbito de su callback es el mismo elemento.
La librería javascript prototype nos viene con una función (la homóloga de mx.utils.Delegate.create() de AS2.0) que nos permite hacer tal cosa.
Sería así:
-
Event.observe(this.mi_elemento, 'click', this.mi_metodo.bindAsEventListener(this), false);
Enlaces de interés: * Prototype And The This Keyword * Prototype.js * The this keyword
Comunicación AS3 AS2
Interesante artículo de Peter Ent en el que explica como comunicar un una aplicación hecha para FlashPlayer 9 con un swf hecho para Player 6, 7 u 8 cargado en dicha aplicación.
Para los que no pueden esperar avanzo que la clave está en la clase LocalConnection().
Enlace al post: * Using ActionScript 2 SWFs with Flex 2
AS3.0 y AVM2 a fondo
Gary Grossman nos cuenta como sacar provecho de AS3 y la nueva máquina virtual (AVM2 ) mediante ejemplos.
* AS3 Tuning [via andre-michelle]
Google Browser Sync
Extensión para Firefox que permite sincronizar cuentas (favoritos, passwords, historial, cookies, tabs y ventanas) entre ordenadores:
Página del proyecto: * Google Browser Sync [vía sephiroth]
bugs/soluciones para FP9
Se ha publicado un listado de problemas/soluciones en el desarrollo para Flash Player 9.
Flash Player TechNote: * Flash Player 9 Emerging Issues [via moock]
flashextensibility :: directorio de recursos JSFL
El sitio flashextensibility ha abierto como repositorio open source de scripts JSFL.
Sin duda un buen sitio para los que gustan extender las características del IDE de Flash.
Enlace al sitio: * flashextensibility
Talleres de verano Sublash 2006 ( IV edición )
IV edición Talleres de verano Subflash 2006.
Este año no va a ser menos. En Subflash se está organizando la quedada Flashera veraniega.
Esta vez se hace en Asturias. Otros años se hizo en Teruel (2003), Madrid (2004) y Barcelona (2005). El año que viene puede que se haga en tu ciudad!! :)
pero por si acaso no es así... si eres desarrollador web, quieres conocer a otros de tu tribu, asisitir a charlas interesantes, y estas libre el fin de semana del 18, 19 y 20 de Agosto de 2006 rellena el formulario del microsite del evento: http://www.subflash.com/talleres/2006/
Por cierto, uno de los talleres lo impartiré yo mismo:
- Flex 2 será gratis pero vale mucho,
muestra del framework de Flex 2: Como indica el nombre el taller será un repaso de los componentes y funcionalidades que lleva el framework de Flex2. Una visita guiada por los componentes y por todas las funcionalidades que hacen de Flex2 una gran herramienta. Apto para todos los públicos :)
Otros talleres serán:
- Dirección de Arte en Proyectos
- Flash y dispositivos Móviles
- Sistemas de representación de redes
sociales y de información
- AJAX
Lugar Talleres: en el Ciber Centro La Lila. Oviedo, Asturias. Alojamiento: en un albergue de Lugo de Llanera, muy cercano a Oviedo. Fechas Fin de semana del 18, 19 y 20 de Agosto de 2006. Precio Opción Completa - 65€ (aprox) Opción Asturias - 48€ (aprox) Opción Oyente - GRATUITA Inscripciones http://www.subflash.com/talleres/2006/php/inscripciones.php
ActionStep tiene blog
El framework ActionStep ya tiene blog: http://www.actionstep.org/











