actionscript-3 - que - usos de adobe flash
Flash Movies y ActionScript: detenga el trabajo de video sin conexión (2)
Publiqué una pregunta sobre superusuario que parece tener una respuesta relacionada con el código, así que aquí va. Tengo un problema; Necesito compartir videos en línea, pero necesito encontrar la manera de detenerlos por completo o, al menos, dificultar que las personas los descarguen y los vean en línea. Soy consciente de que si fuera posible, Hollywood ya lo habría hecho, pero tengo una idea ...
Hace algunos años tropecé con un video en newgrounds.com, un sitio para que los animadores de flash publiquen su contenido para que los usuarios lo califiquen, realicen comentarios y comenten, un lugar donde pasé horas descargando videos para reproducirlos en la escuela (oh, la ironía. ..), pero recuerdo que un video fue diferente. Después de descargar y abrir el archivo .swf, detuvo la reproducción y mostró un cuadro que decía "Lo siento, esta animación se creó para ser vista en newgrounds.com. ¡Puedes encontrarla allí en cualquier momento!". Estaba enojado en ese momento, pero ahora me dio una idea ...
¿Hay alguna manera de que pueda obtener la animación para verificar la ubicación / directorio actual del archivo que se está reproduciendo, de modo que si se descubre que se está reproduciendo desde una computadora física en lugar del servidor desde el que se jugó, detiene la reproducción? ¿¿¿completamente???
Esta funcionalidad se llama "Bloqueo del sitio". Puedes googlear ese término para más información. Aquí hay un enlace al Blog de juegos AS3 "Emenuelle Ferronato" con un tutorial sobre cómo sitelock un archivo.
http://www.emanueleferonato.com/2008/03/10/how-to-sitelock-a-flash-movie/
El blog proporciona el código en AS2, así que lo actualicé a continuación usando AS3. Este código necesita tener acceso al escenario, y debe llamar a "sitelock (urls_allowed)" en el punto donde se debe realizar la verificación de bloqueo.
urls_allowed = ["www.emanueleferonato.com", "www.triqui.com"];
sitelock(urls_allowed);
function sitelock(urls_allowed) {
lock = true;
domain_parts = stage.loaderInfo.url.split("://");
real_domain = domain_parts[1].split("/");
domain.text = real_domain[0];
for (x in urls_allowed) {
if (urls_allowed[x] == real_domain[0]) {
lock = false;
}
}
if (lock) {
stage.alpha = 0;// make sure this function has access to the stage.
}
}
Puede obtener la URL en la que se reproduce el SWF (generalmente la ubicación de la página, si está incrustada en HTML) a través de stage.loaderInfo.url
, creo. Entonces, puedes verificar eso contra la URL de tu sitio.
Esto puede ser engañado, sin embargo. Podría configurar un vhost en mi máquina que probablemente podría imitar la dirección de su sitio en loaderInfo
lo que me permitiría reproducirlo. Sería mejor utilizar una forma de DRM que esto. DRM es, en general, mucho más difícil de descifrar que falsificar una URL.