Comunidad de diseño web y desarrollo en internet online

Embeber o importar archivo js en un swf?

Citar            
MensajeEscrito el 04 Dic 2010 09:27 pm
Hola amigos!!

Existe alguna manera de incrustar o importar un archivo js y luego ejecutarlo para acceder a sus funciones

Ya googlee un poco, pero lo unico que encontre fue esto:

Código :

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script language="javascript" type="text/javascript">
        <!--
            function addBlu(a, b) { return (a+b); }
        -->
    </script>
</head>
</html>

import flash.html.HTMLLoader;
import flash.net.URLRequest;
import flash.events.Event;

var html:HTMLLoader = new HTMLLoader();
html.load(new URLRequest("callJS.html"));
html.width = 0;
html.height = 0;
html.addEventListener(Event.COMPLETE, onLoaded);

addChild(html);

function onLoaded(e:Event) :void
{
    trace("result (4+8) : "+e.target.window.addBlu(4, 8));
}


aquí: http://forums.adobe.com/thread/712194

Pero eso es en air, se puede lo mismo pero en as3 de flex?

Ya intente con "ExternalInterface.call(...)" poniendo el archivo js en el html donde se ejecuta mi aplicacion flash y funciona excelente, pero lo que quiero conseguir es evitar que si alguien guarda la pagina, el archivo js no se guarde, por eso lo de incrustar o importar el js desde otro lugar pero dentro del swf.

Saludos.

Por px87

Claber

141 de clabLevel

1 tutorial

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Dic 2010 11:42 am
No puedes incrustar JS en un archivo swf, de hecho el JS accede al DOM del navegador, no tiene sentido fuera de ese contexto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 02:19 pm
Puedes inyectar el código en el navegador desde tu código en as3, usando esa técnica, podrías tener ese texto guardado en cualquier parte, como puede ser una base de datos por ejemplo.

Código ActionScript :

private var mi_funcion:String = 
            "document.insertScript = function ()" +
            "{ " +
                "if (document.myfunction==null)" +
                "{" +
                    "myfunction = function (a,b)" +
                    "{" +

         "return a + b;" +
                  "}" +
                "}" +
            "}";

//pones esto en el complete_handler de la aplicación
ExternalInterface.call(mi_funcion);

//con esto la llamas
private function callMyFunction(a:int,b:int):int
{
   return ExternalInterface.call("my_function", a,b);
}


Espero que haya quedado claro :)

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

chrome
Citar            
MensajeEscrito el 06 Dic 2010 02:44 pm
Según entiendo la intención es meter todo junto (y no tener nada externo) ... no veo la ventaja de la BD. De todas formas, si las llamadas son suficientemente genéricas, puedes copypastear todo el JS en AS y probar si funciona (en un browser claro) usandeo Externalnterface.call o incluso navigateToURL

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:16 pm
Excelente Xyrer, suena a que funciona :P

Gracias Jorge por las respuestas... a que te refieres con "no veo la ventaja de la BD"?

Saludos.

Por px87

Claber

141 de clabLevel

1 tutorial

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:19 pm
Ok, si te sirve no dije nada ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:21 pm
entiendo, creo que Jorge habla de que quieres tener todo dentro del código as3 y por eso podría no ser útil llamar el código como un string desde la BD.
Yo me refería a que podrías tener las funciones de JS en campos de una BD para poder cambiarlas sin modificar el swf y aún así el usuario no podría guardarlo, o incluso, si decompilaran tu swf, no tendrían acceso al código JS ;)

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

chrome
Citar            
MensajeEscrito el 06 Dic 2010 03:43 pm
De nuevo muchas gracias al soporte tecnico en línea de cristalab, que rapido contestan!!! :P

Es un script que no tiene mucha relevancia, creo que con tenerlo dentro swf es más que suficiente.

De nuevo muchas gracias.

Por px87

Claber

141 de clabLevel

1 tutorial

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Dic 2010 03:52 pm
oops, una corrección, debería ser

Código ActionScript :

return ExternalInterface.call("myfunction", a,b);

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

chrome

 

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