Comunidad de diseño web y desarrollo en internet online

Conocer el nombre del swf o exe que se está ejecutando

Citar            
MensajeEscrito el 22 Oct 2008 01:58 pm
Muy buenas a tóos y tóas.

Estoy liado con un problemilla al que no le encuentro solución. He buscado en los foros y nada, así que aquí lanzo la preguntilla.

Imaginaros que hacemos una película flash (AS2) para publicarla tanto en swf como en exe. Por algún motivo, desde dentro de la película necesitamos saber su nombre (por ejemplo "miPelicula.swf" o "miPelicula.exe".

¿Hay algún método que nos devuelva esa propiedad? En Director tenemos el "moviePath", que sería el equivalente al "_url" de flash y el "movieName", para el que no encuentro equivalencia en flash. He probado con la propiedad "_name", pero me parece que no sirve para esto. ¿Alguien me puede ayudar?

Gracias

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Oct 2008 03:54 pm
Prueba con:

Código ActionScript :

trace(_root._url)

Saludos!:wink:

Por Fusel

Claber

339 de clabLevel



Genero:Masculino  

Madrid (España)

safari
Citar            
MensajeEscrito el 22 Oct 2008 10:31 pm
Flash player no tiene ningún control del sistema, para lo que deseas te recomiendo MDM Zinc, por cierto para que desean conocer el nombre del archivo?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Oct 2008 07:15 am
El nombre del archivo es necesario porque se cargan un montón de variables desde txt externos. Estos txt los preparan personas ajenas al proyecto y que no son técnicos, sino guionistas (por eso no se usa un xml). Dichos txt llevan el nombre de la película, puesto que así lo tenemos todo automatizado y no hay que entrar en los .fla para modificarlos. Si la película se llama "miPeli.swf", al arrancar, automáticamente, busca en su misma ruta un fichero llmado "miPeli.swf.txt" o "miPeli.exe.txt" y lo carga. La solución que ha dado Fusel es la que utilizo actualmente: cojo la url y de ahí extraigo el nombre de la película. Cuando lo hago funcionar como swf, todo funciona a la perfección. El problema surge con los proyectores .exe. La ruta se me llena de caracteres raros (ya que por diversos motivos, dichas rutas pueden contener cualquier caracter español, o sea, tildes, eñes, diéresis...). Lo que pensaba hacer era, conociendo el nombre de la peli, forzar directamente la carga de su correspondiente txt.

De todas formas, haciendo diversas pruebas, he visto que eso tampoco me sirve. El problema real es que, si bien el swf me coge la ruta perfectamente (con acentos y demás) el .exe no lo hace así. He traceado los códigos que recoge el .exe en la ruta y he visto lo siguiente:

Antes de cada carácter "raro" me aparece el carácter "A" con la tilde de la ñ encima (stringToCharCode 195) y después un código de carácter extraño que no se corresponde con el carácter real que debería aparecer en la ruta.

Me imagino que, si bien el swf me coge la ruta en ANSI, el exe me la coge en unicode o algo así, porque los caracteres que aparecen son rarísimos.

He hecho a mano un traductor para los caracteres españoles porque no sé en qué se basa el .exe para meter los caracteres extraños que os comento en la ruta. Así, una vez cogida la ruta, la descompongo en códigos de carácter con el stringToCharCode y cuando encuentro el código 195 (el de la A con la tilde de la ñ) sustituyo el siguiente código por el ANSI que le corresponde según la siguiente equivalencia que me he currado:

Si en la ruta que me da el exe aparece el código 177 lo cambio por el ANSI de la ñ;
Si en la ruta que me da el exe aparece el código 161 lo cambio por el ANSI de la á;
Si en la ruta que me da el exe aparece el código 169 lo cambio por el ANSI de la é;
Si en la ruta que me da el exe aparece el código 173 lo cambio por el ANSI de la í;
Si en la ruta que me da el exe aparece el código 179 lo cambio por el ANSI de la ó;
Si en la ruta que me da el exe aparece el código 186 lo cambio por el ANSI de la ú;
Si en la ruta que me da el exe aparece el código 188 lo cambio por el ANSI de la ü;

Si en la ruta que me da el exe aparece el código 8216 lo cambio por el ANSI de la Ñ;
Si en la ruta que me da el exe aparece el código 129 lo cambio por el ANSI de la Á;
Si en la ruta que me da el exe aparece el código 8240 lo cambio por el ANSI de la É;
Si en la ruta que me da el exe aparece el código 141 lo cambio por el ANSI de la Í;
Si en la ruta que me da el exe aparece el código 8220 lo cambio por el ANSI de la Ó;
Si en la ruta que me da el exe aparece el código 353 lo cambio por el ANSI de la Ú;
Si en la ruta que me da el exe aparece el código 339 lo cambio por el ANSI de la Ü;

Funciona, pero no deja de ser una chapucilla.

Lo que también me descuadra es que aparecen caracteres con código más allá del 255 (353, 8220...)

¿Se os ocurre alguna pista para saber qué codificación de ruta está usando el .exe y hacer un traductor "automático" y no "manual" como el que he hecho?

Lo digo porque puede ser que en el futuro necesite incorporar en las rutas otros caracteres no estándar, como la ô, la ä, etc.

Si supiera el tipo de codificación, me imagino que podría hacer un traductor que detectara todos los caracteres "raros" y los tradujera a caracteres "normales".

Muchas gracias.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 23 Oct 2008 10:11 am
Lo mejor para estos casos es que trabajes con XML o bases de datos y como las personas que van a trabajar son guionistas se debe crear una interfase de acorde con su nivel que actualice la base de datos o el XML, esta es la mejor forma y la más organizada que veo, de lo contrario te podrías encontrar con muchos problemas.

Ahora lo que te sucede que el exe no te devuelve la ruta completa de tu película de una manera correcta puede estar dado a que tu windows no es en español, de lo contrario te debería mostrar bien los caracteres del castellano, es esto cierto? o tu windows es en español.

De todas formas postea uno de los strings que te devuelve la propiedad _url de uno de los ejecutables.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Oct 2008 11:47 am
El Windows es un Vista Home Premium 32, original y en perfecto castellano (Español, España, Alfabetización tradicional).

Esta es la url que detecta el exe.
file:///D|/Trabajos/I%5FñÑüá/pruebaAS.exe

la url real es:
file:///D|/Trabajos/I_ñÑüá/pruebaAS.exe

Obviamente es un nombre de carpeta "jodío" para comprobar las lecturas.

el código %5F se corresponde a la barra baja. De dónde se saca el resto, es un misterio.

Gracias

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 23 Oct 2008 04:48 pm
Es extraño, por casualidad estás guardando el nombre del archivo en algún fichero y después al revisarlo es que ves este problema?, porque lo he probado y al tomar la propiedad _url e insertarla en un campo de texto se ven todos los caracteres sin problemas.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Oct 2008 06:15 am
No, no se guarda el nombre en ningún fichero. Para verificar, lo que hago es, en el primer frame, asignar la _url a una variable y esta variable, a un campo de texto que me muestre la ruta.

Si el swf lo hiciera también mal, pensaría que tengo algo en el sistema operativo que me está "jodiendo", pero el swf lo hace bien. Es el exe compilado por el flash el que lo hace mal. Por otro lado, si quito cualquier caracter "raro" de la ruta, el exe ya me lo coge bien pero, como he comentado anteriormente, se me hace necesario poder usar caracteres "extraños". Con la chapucilla que he comentado en un post anterior se solventa el problema, pero no deja de ser un parche y me resulta frustrante no saber por qué el exe me "guarrea" la url y no ser capaz de hacer un sistema automático de conversión de la url.

Gracias.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Oct 2008 11:46 am
Hola,

existe un componente de Flash ( que tendras que buscar por internet para descargar) que se llama XRay. es una maravilla, te dice todas las variables,clases y elementos ( distribuidos por niveles) que se cargan al ejecutar la pelicula. ademas te especifica que tipo de dato es, entre otras muchas cosas.

ademas puedes jugar con audio y editar imagenes.

para usarlo debes meterlo en la libreria de componentes, arrastrar el icono al escenario, abrir un swf (que tiene el componente, para operar con el) y ya por fin lanzas tu pelicula. en el panel de salida te aparecera si se ha conectado bien, y el tiempo que tardo en realizar la operacion, y mientras en el swf del Xray sale todo lo demas.

Es muy util cuando tienes muchas variable y el debugger se cuelga ;)

Por malenka_x

54 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Oct 2008 11:49 am
¡Coñe! eso hay que probarlo. A lo mejor me viene bien.

Muchas gracias

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Oct 2008 12:00 pm
de nada ;)

Por malenka_x

54 de clabLevel



 

msie
Citar            
MensajeEscrito el 24 Oct 2008 12:41 pm
@CidDeMizar, lo más extraño es que el exe me devuelve el path sin problemas y el SWF en el html es el que cambia los caracteres por lo que tendría que trabajar con utf-8, pero es increible lo que te sucede porque es al revés. Con qué versión de Flash trabajas?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Oct 2008 10:26 pm
Trabajo con flash 8 profesional, también original, por lo que queda descartado que si fuera una versión "educativa" pudiera tener mal metida su "medicina" o algo así.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 25 Oct 2008 07:40 am
No creo que sea la versión de flash porque yo tenga el CS3, me parece que es del sistema, trata de probar el exe en varios pc y testea el resultado.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 25 Oct 2008 10:38 pm
Probaré en otros PCs como tú dices. Ya te contaré el lunes, a ver si saco algo en claro. Muchísimas gracias por las molestias.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Oct 2008 07:28 am
Ya he probado en otros PCs con win XP profesional, Vista 32 home y Vista 32 enterprise. Sigue ocurriendo lo mismo y el path que me devuelve el exe en todos los casos también es el mismo (si fuera distinto entonces ya pensaría que el sistema operativo es el causante de todo). Con este resultado, ya no sé qué pensar, si es el flash, si es el SO, si soy yo que soy un "negao" programando...

En fin, muchas gracias a todos por vuestro interés y ayuda. Por lo menos, con el "parche" que me curré tego solventado el temita (por ahora).

Un saludo.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Oct 2008 09:44 am
Sitúa un link de tu exe para testearlo en mi sistema, yo te enviaré otro y tu lo testeas en el tuyo, así saldremos de duda en cuanto a Sistemas y versiones de flash player.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 27 Oct 2008 09:52 am
Ahora es cuando viene la pregunta del inexperot: ¿Cómo hago lo del link? ¿Dónde tengo que subir el exe y sus ficheros asociados para que puedas acceder a ellos?

Perdón si las preguntas parecen un tanto estúpidas, pero es que no sé cómo hacerlo.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Oct 2008 12:32 pm
Perdon...quizas es una estupidez lo que sugiero...pero, probaste poner en la primera lines de código, del primer fotograma esta línea: System.useCodepage=true;

Por DataGestion

15 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 27 Oct 2008 12:47 pm
Sí DataGestion. La verdad es que normalmente tengo puesto el System.useCodepage en true, pero ya desesperado con esto, probé de las dos formas (en true y en false) y nada, más de lo mismo, que el flash me seguía "chuleando". Gracias de todas foras.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Oct 2008 12:57 pm
probaste guardar el txt. como unicode?

Por DataGestion

15 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 27 Oct 2008 01:01 pm
Sí. el TXT lo he guardado como ANSI, como unicode, como UTF-8 y como UTF-16 (fíjate hasta dónde llega ya mi desesperación). El resultado siempre ha sido el mismo: El flash mostrándome su mano cerrada, con el dedo corazón totalmente erguido.

Si se te ocurre algo más, te lo agradezco.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Oct 2008 01:16 pm
Si sólo queres conocer el nombre del archivo, no necesitas conocer el path.
podes ir desde el último caracter hacia atras y encuando encuentres "/" slash..ya tenes el nombre del archivo.
Eso, claro, si no necesitas conocer el path.
Si necesitas conocerlo, podria ser que lo supieras antes, y se lo agregas a "mano", algo asi como: "pathconocido"+nombrequevariguaste.txt

no?

Si no te ayuda decime y pensamos otra cosa o si te viene bien la idea pero no sabes cómo hacerla avisame y te ayudo.

Por DataGestion

15 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 27 Oct 2008 01:31 pm
inf_txt.text=_root._url;
inf_str=inf_txt.text;
cant=inf_txt.length;
for (i=cant;i>=0;i--){
a=inf_str.substr(i-1,1);
if (a=="/"){
in2_txt.text=inf_str.substr(i,inf_str.length);
break;
}
}

asi averigue el nombre del .exe

Por DataGestion

15 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 27 Oct 2008 02:04 pm
Sí, todo eso ya lo he hecho. El problema real, como he comentado en un post anterior, es que el exe no me encuentra ni el txt ni los ficheros externos (de voz y vídeo) porque no reconoce la ruta. Aunque ponga el nombre de los ficheros a cargar directamente (sin ruta ni nada), no los encuentra porque la ruta "real" no se corresponde con la ruta que él "detecta". Lo solventé haciendo un "traductor" a mano, pero no me gusta esa solución porque es pan para hoy y hambre para mañana.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Oct 2008 09:50 pm
@CidDeMizar, sube tus archivos a tu servidor mismo o a un hosting gratuito de internet, después tomas el link a tus archivos y los pones entre tags de URL:

Código :

[url]http://tu_servidor/tus_archivos.rar[/url]

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 27 Oct 2008 10:00 pm

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Oct 2008 03:25 am
Pregunta al proveedor si te está permitiendo ejecutar programas con extensión .exe pues ...seria raro que si te dejara, aunque no lo sean si vos cambias la extencion de un .doc y le pones .exe mi servidor no te premite trabajar con ese archivo ...es una proteccion usual para que no puedas ejecutar virus.

Me llama la atencion la dirección: file:///D|/Trabajos/I%5FñÑüá/pruebaAS.exe

Parece que lo estas ejecutando en modo local...probaste en un servidor eso?

Por otra parte... proba poner en el campo texto embed y elegir: Upercase, Lowercase, numerals, puntuation y Latin I...en el campo texto, y fijate si te lo toma correcto.

Mis pruebas no las puedo hacer con un .exe.

A modo de anecdota, en JavaScript es usual tener eso que vos llamas "chapusilla", tambien se hace un "diccionario" que haga la trasnformacion, de manera que tiendo a creer que es posible que en Flash no te quede más remedio.

Sin embargo... la mejor soluciones la base de datos con un CMS que te sugirieron...lograr que un monton de escritores se pongan de acuerdo en aprender una forma de escribir un txt para que sea levantado en flash es un metodo que escapa a mi lógica...

Si aun no tenes implementado ese "sistema", la sugerencia es que no lo inicies, te va a costar mucho más ese método y va a generar muchos errores humanos es mças facil generar un sistema con base de datos en el que directamente ingresen lo que quieran a donde quieran.

Esto ultimo es un comentario desde el punto de vista de metodologia, pues me parece que "enseñar" a gente que no es programadora a "armar" un txt que sea leido por flash es como un gran problema futuro, en atencion de esos archivos, en revision, etc.

Perdon la intromision por este comentario.

Por DataGestion

15 de clabLevel



Genero:Femenino  

msie7
Citar            
MensajeEscrito el 28 Oct 2008 07:16 am
PARA ELCHININET:
Aquí tienes el link:

http://www.redoxmultimedia.com/pruebas/PruebaAS.rar

PARA DATAGESTION:
El fichero se debe ejecutar en local, no en internet. El swf, tanto en local como en internet funciona corrctamente. El problema venía con el exe solamente.

En cuanto a lo de los TXT, es un sistema que lleva implementado en mi empresa desde hace años, por eso lo mantenemos, ya quelos guionistas ya están habituados a la estructura del txt y los integradores, que son el último paso de la cadena de poducción, también.

Cuando yo empecé, sugerí cambiar el sistema, pero me dijeron que, como ya tenían un ritmo alto de trabajo con el sistema actual, preferían dejarlo como estaba (ya sabes lo que pasa en informática: si algo funciona, mejor no lo toques).

Muchas gracias a los dos.

Por CidDeMizar

81 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Oct 2008 07:21 am
ELCHININET: tu exe funciona perfectamente en mi sistema. Me crecen los enanos. Ahora sí que no tengo ni repajolera idea de lo que está pasando. Espero tu prueba de mi fichero.

Por CidDeMizar

81 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.