Este es un truco MUY sencillo para impedir que un usuario pueda visualizar nuestros archivos SWF de forma individual.
Por ejemplo: Tenemos un CD-ROM con una película principal formada a partir de varios archivos SWF externos situados dentro de una carpeta. Nuestra intención es impedir que alguien pueda abrir esta carpeta y visualizar estos archivos externos uno a uno (ya que estos SWF son pequeños trozos de un conjunto y su visualización individual no sería correcta)
El truco consiste en crear un MovieClip que ocupe toda la extensión de la pelicula (por ejemplo, un rectángulo de color negro) que esté situado en primer plano, y que por lo tanto oculte el contenido real del SWF.
Este MovieClip también podría contener un texto de aviso: "Este archivo SWF es un contenido externo de la aplicación 'aplicacion.exe' y no debe visualizarse individualmente. Por favor navegue por la película principal para visualizarlo.".
De esta manera si el usuario abre el SWF visualizará este mensaje de aviso. En cambio desde nuestra película principal haremos que al cargar el archivo externo, a través de código, este MovieClip sea invisible con lo que se visualizará el contenido sin problema.
El código para cargar el archivo externo y ocultar el MovieClip de aviso desde nuestra película principal sería este:
Código :
var contenedor:MovieClip = this.createEmptyMovieClip("contenedor", this.getNextHighestDepth()); var precarga:MovieClipLoader = new MovieClipLoader(); var cargador:Object = new Object(); cargador.onLoadInit = function(mc:MovieClip) { mc.ocultador_mc._visible = false; }; precarga.addListener(cargador); //----------------------------- precarga.loadClip("archivo2.swf", contenedor);
(el MovieClip de aviso del archivo externo tiene que llevar el nombre de instancia ocultador_mc.)
Lógicamente este no es un truco de seguridad para proteger el contenido de nuestros archivos SWF. Cualquiera puede descompilar el archivo y saltarse esta protección. Este truco únicamente pretende avisar al usuario de que no debe visualizar el archivo externo individualmente sino que lo ha de visualizar navegando desde la película principal.
PD. A este truco se le puede añadir el truco de cambiar la extensión de los ficheros a .bin o .reg (cualquier extensión reconocida por el sistema operativo serviría). Flash cargará estas películas correctamente, pero el usuario no podrá abrirlas dándole doble click.
mmm.... hace poco hice algo similar, ah esta de mas ponerlo , basado en la misma lógica Por:eveevans
muy util y simple. Buen aporte... Por:Adrian.Coria_blog
Hasta que al fin me animo a mandar un mensaje ejejeje. Muy bueno el truco yo también estuve pensando en eso la semana pasada y lo único que se me ocurrio fue cambiarle la extensión a los archivos que están en la otra carpeta (ejm: /carpeta/pelicula.dll) ó simplemente sin extensión asi el usuario no podrá abrir el swf. Por:Javier Pascual D._blog
me explican eso de los cambios de extension.. flash lee ese tipo de extension de un .bin en vez de .swf
Muchas gracias.. lo probare... Por:cristian..._blog
Buenísimo truco. Justo estoy en esto de multiples swf que debo llamar desde la pelicula principal, Gracias viejazo! Por:Osvaldo_blog
Considero infantil, el bloquear un swf para el usuario, ya que estan "impidiendo" de alguna forma al usuario, el libre uso de la informacion que se le esta dando, si el problema esta en que el usuario no visualice bien la pelicula abriendo alguno de esos swf individualmente, entonces hay muchas otras soluciones mejores y a mi parecer mas efectivas, vamos que un usuario promedio, no se la pasaria abriendo archivos que le parezcan extraños... Y, obviamente, tambien seria lo suficientemente listo para saber que, fuera del ejecutable principal que se le haya indicado abrir, la aplicacion funcionaria de forma incorrecta, y por otra parte, un usuario experimentado indagaria entre esos archivos, cuando necesite alguna informacion especifica de la aplicacion, es simplemente un atajo a su objetivo. Por:Alfonso_blog
a ver... considero que cada uno es dueño de sus trabajos, si yo quiero q vea alguien alguna animacion, pues vere la forma para q el usuario lo vea
Si considero q mi usuario puede ver mis animaciones, pero NO verlas individualmente SOY libre de hacer cuantas maravillas quiera, pueda y desee hacer.
por ultimo, si supieras donde estan mis animaciones??? eso quiere decir q estarias decopilando para ver las rutas de las mismas???
aparte, aqui somos muy serios como para tomar las cosas infantilmente Por:eldervaz
Vamos compatriota eldervaz . Para Alfonso ese truco no se trata de esconder a los diseñadores y/o programadores y eso de pensamiento de usuario normal MMM...(cuando yo no sabia ni un ketchup de programas me la pasaba indagando y sin saber trataba de abrir programas x ejm de los videojuegos, ejeje pensaba que podía sacarme la musica de fondo para grabar en cd o los carros como foto)Este truco es para que tu presentación se vea un poco más profesional NO PARA ESCONDERLO, ENTRE NOSOTROS y si fuera asi entonces no hubiera mandado el truquillo!!! Pues ojalá le sirva a alguien esto como de igual forma yo aprendi algunas cosas en este sitio web Por:Javier Pascual D_blog
Eldervaz, cual es la ventaja que tu tendrias al limitar el acceso a tu animacion?. Sí claro esta que todos somos libres de hacer lo que queramos, pero ¿para que? solamente (y con disculpa del autor que tiempo invirtio en esto) es algo que no tiene en realidad una finalidad notable dentro de tu pelicula.
Y Javier, con un punto a mi favor, tu mismo has aceptado "que cuando eras novato" indagabas en los archivos para ver si sacabas algo de provecho de ahi. Pues bien, asi mismo sabias que un archivo de los que vieras ahi no te iba a funcionar solito. Y, tambien si encontraste algun wav en alguna carpeta para escucharlo despues (o algun archivo similar), habras quedado muy satisfecho por haberlo extraido, cosa que no hubiera pasado si el autor hubiera pensado en "darle un enfoque mas profesional" ofuscando sus archivos o haciendoles mengurges raros dentro de las extensiones o en su codificacion (y que realmente el enfoque "profesional" en ese aspecto quedaria ignorado por el publico en general). Por:Alfonso_blog
primero, mantener mis archivos seguros e intentar un poco la pirateria
segundo, cualquiera q vea esos archivos, pues tardaria un poco o quizas nunca se entere q son swf
tercero, solo es una opcion, nunca lo hice hasta ahora, pero creo q a cualquiere le INCOMODA que le pirateen o copien algo
a estas alturas, creo que es imposible proteger nuestras películas, debido a los decompiladores y a gente que cuando quiere hacer algo a la mala, simplemente lo va a lograr...
para proteger tus películas individuales, también puedes poner un pequeño script en los archivos a cargar:
if ( this == _root) { unLoadMovie(this) }
de esta manera si alguien carga tu movie individualmente, esta se descargará automáticamente Por:francisco @ dospuntocero.
asi es mi estimado francisco, unas de las cosas q puedes usar ademas de tus lineas (por cierto existe las etiquetas "code") puedes hacer un domain para q solo se ejecute en tu dominio, algo asi:
Código :
var my_lc:LocalConnection = new LocalConnection(); function detectaDominio() { if (my_lc.domain() == "localhost") { trace(true); } else { unloadMovie(this); } } detectaDominio();
Hola, soy novata en flash y espero que me ayuden con un problema, he intentado llamar un swf que se encuentra en otra carpeta (de hecho es otro proyecto completo) desde otro swf, pero no condigo ligarlos, utilicé loadMovieNum... y después lo conseguí con getURL... pero esto, por supuesto lo ejecuta en el explorador web, el inconveniente que tengo es que no ejecuta los videos (flv) que tengo en ese otro proyecto, espero que puedan ayudarme. Por:Sarai_blog