Nuevo logo para Black Mass Records

He aquí el rediseño del logo para la discográfica y distribuidora coruñesa Black Mass Records. Black Mass puede ser un sello pequeño (aún), pero sus ediciones son brillantes (Funeral Bitch, Machetazo, Domains,Banished From Inferno..), y en general todas tienen un grafismo muy cuidado, ¡será un orgullo ver este logo impreso ... leer más

Asphyx- Camiseta 25 aniversario

Han pasado ya ni más ni menos que 25 años desde  la formación de los holandeses Asphyx, y esto ha coincidido con la publicación de su nuevo (y por lo que he leído, acojonante)  disco "Deathhammer" Ayer se celebró la presentación de dicho album en Holanda y hoy en Alemania. En ... leer más

Hellspawn Zine #9

Y una vez más, el Hellspawn vuelve a la carga, y aunque ya me encargué de la portada del número anterior, al bueno de Javi  Bastard parece que le gustó y ha repetido  dibujante :D La ilustración sigue la línea cronológica de las aventuras de  Mr. G, en las primeras portadas ... leer más

Glorificatio Mortis Fest

Marthyrium siguen dando cera por tierras galaicas, una vez más acompañados por los grandes Noitébrega (que por cierto, tienen nueva demo disponible vía Final Embrace Records ) y como invitados de honor los sevillanos Andhord. El sábado 26 de Mayo en la sala Filomatic de A Coruña por 5 € de ... leer más

La Congregación de insultadores de Jesucristo

Diseño para el cartel de un concierto que promete ser memorable: GRAVE DESECRATOR (Brasil), DECAPITATED CHRIST (Barcelona) y WAR-HEAD (Croacia) estaremos derrumbando la sala  Rock and Pop de Madrid el día 17 de Marzo. Y aquí el dibujo limpio: Para que veais una muestra de lo que se cocerá allí esa noche, por ... leer más

Your Creepy Design

Hoy voy a dejar un poco el autobombo para recomendaros una iniciativa del bueno de Juan Luis, el señor de la ensalada de carne. Resulta que se le ha ocurrido crear una cortinas de baño con los diseños  de algunos artistas conocidos como Luisma (guitarra de Haemorrhage y el dibujante ... leer más

 

A veces tenemos que hacer llamadas desde flash a archivos externos en un servidor y esto es un solor de cabeza a la hora de depurar. Si estos archivos son estáticos y  no hay problema, pero ¿ que pasa cuando tienes que hacer pruebas atacando a archivos php o asp en un servidor local y luego cambiar dicho servidor?
Habría que modificar todas las rutas de absoluta a relativa  cada vez que quieras testear en el server local, y eso es un tostón y pérdida de tiempo importante .


Pero hay una forma fácil de conseguir que cuando estemos testeando con el IDE de Flash (o Flash Develop o el que sea): la propiedad playerType de la clase flash.system.Capabilities. Esta propiedad puede devolvernos:

  • StandAlone, si se está reproducciendo en un reproductor ejecutable.
  • External, si se reproduce desde el IDE o desde el reproductor de flash del sistema.
  • PlugIn, si se trata de un plugin de navegador.
  • ActiveX, si se ejecuta mediante el control Active X de Internet Explorer

Vamos a poner un ejemplo, yo tengo que hacer una llamada absoluta dentro del entorno de mi programa de desarrollo para que los phps que pido me funcionen, pero cuando lo suba y pruebe desde navegador quiero que la llamada sea relativa a donde esté alojado.

La idea es declarar antes de la llamada una variable de host, que variará dependiendo de si el flash se reproduce desde el entorno de pruebas  o no

Por ejemplo:

var host:String;
if(Capabilities.playerType == "External"){
		host="http://localhost/mipagina/";
	}else{
		host="";
	}
var request:URLRequest=new URLRequest(host+"datos.php");

De esta forma no tendremos que andar cambiando las llamadas cada 2 por 3, que hacerlo en un archivo es facil, pero en un sitio completo en flash con varios .swf  puede ser un suplicio

Tags: , ,

Posted by Cesar - 31/05/11 - 0 comments

 

La verdad es que poca gente de la que conozco que se dedica a desarrollar en flash conoce la existencia o se ha interesado en indagar en las posibilidades de JSFL (JavaScript Flash) y la cantidad de tiempo que puede ahorrarnos.
En general es debido a que el JSFL es más útil para personas que utilizan más la interfaz gráfica del programa que no a los que se dedican a programar todo en Classes.
Os voy a mostrar 2 scripts que a mí me ayudan bastante, sobretodo cuando tengo que generar banners y cosas así, que requieren de la utilización de muchos objetos (assets) y tiene que ser una cosa rápida.
Por ejemplo: Imagínaos que tengo un montón de símbolos en la librería que he de mover al escenario, y controlarlos mediante actionscript. Habría que ir dando un nombre a cada instancia, y eso se hace pesado, sobretodo porque seguramente ese nombre sea casi igual al del símbolo.
La solución en este caso es crear un archivo .jsfl (con cualquier editor de texto) con este script:

for(i in fl.getDocumentDOM().selection){
var libname=fl.getDocumentDOM().selection[i].libraryItem.name
fl.getDocumentDOM().selection[i].name =libname.toLowerCase();
fl.getDocumentDOM().selection[i].name =
fl.getDocumentDOM().selection[i].name .replace(/\s/g,"") ;
fl.trace("Instancia de "+libname+" renombrada como :"+
fl.getDocumentDOM().selection[i].name); }

Y una vez ejecutadp automáticamente todos los movieclips anónimos tendrán un nombre de instancia

Quizás esto se quede corto y lo que necesitemos sea importar un montón de objetos al escenario y convertirlos todos en movieclips. Para ello he creado este otro script que va seleccionando cada objeto del escenario y pidiendo un nombre para convertirlo en MovieClip,guardarlo en librería y renombrar la instancia como en el ejemplo anterior. Bastante más cómodo que andar dándole al F8, añadir nombre, y cambiar el nombre de instancia a mano.

var elementos= fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements ;
for(i in elementos ){
fl.getDocumentDOM().selectNone();
elementos[i].selected = true;
if(typeof(fl.getDocumentDOM().selection[0].libraryItem)=="object"){
var simbolo = prompt("Escribe un nombre de símbolo para la selección");
if(simbolo==null){break;}
simbolo=simbolo.charAt(0).toUpperCase() + simbolo.slice(1);
var Movieclip = fl.getDocumentDOM().convertToSymbol("movie clip", simbolo, "top left");
fl.trace("Nuevo MovieClipcreado:" +simbolo);
fl.getDocumentDOM().selection[0].name =
fl.getDocumentDOM().selection[0].libraryItem.name.toLowerCase();
fl.getDocumentDOM().selection[0].name =
fl.getDocumentDOM().selection[0].name.replace(/\s/g,"_") ;
fl.trace("Instancia de "+ fl.getDocumentDOM().selection[0].libraryItem.name
+ " renombrada como :"+fl.getDocumentDOM().selection[0].name);
}
}

Una de los mayores problemas que encontramos es a la hora de guardar los archivos .jsfl de forma que aparezcan en el menú Comandos de la UI de Flash y no tener que llamar a mano al script mediante “ejecutar comando”. Lo “lógico” sería guardarlo en C:\Program Files\Adobe\Adobe Flash CS4\es\First Run\Classes (o algo parecido dependiendo del sistema operativo), pero no es así, en Vista/W7 la carpeta de comandos almacenados es C:\Users\usuario\AppData\Local\Adobe\Flash CS4\idioma\Configuration\Commands



Tags: ,

Posted by Cesar - 28/01/11 - 1 comment