Foros del Web » Creando para Internet » Flash y Actionscript »

Cargar SWF en modo binario en AIR y acceder a sus funciones o metodos

Estas en el tema de Cargar SWF en modo binario en AIR y acceder a sus funciones o metodos en el foro de Flash y Actionscript en Foros del Web. Buen día amigos de foros del web! pues eso! tengo los bytes de un SWF cargados en un byteArray, y ese array se lo cargo ...
  #1 (permalink)  
Antiguo 11/04/2013, 16:59
 
Fecha de Ingreso: abril-2012
Mensajes: 9
Antigüedad: 12 años, 7 meses
Puntos: 0
Exclamación Cargar SWF en modo binario en AIR y acceder a sus funciones o metodos

Buen día amigos de foros del web! pues eso! tengo los bytes de un SWF cargados en un byteArray, y ese array se lo cargo a un loader con loadBytes, todo bien... una vez cargado en el loader puedo acceder a las propiedades del SWF como son versión del AS, la versión del SWF.. hasta las medidas del canvas del SWF, pero no puedo acceder a las funciones del mismo, la función a la que quiero acceder esta declarada como publica, al loader le establezco el loaderContext con el parámetro allowLoadBytesCodeExecution como true! pero aun así no accedo a las funciones! les pongo el código que hace esto:

Código:
var lc:LoaderContext = new LoaderContext();
lc.allowLoadBytesCodeExecution = true;
lc.allowCodeImport = true;
            
loadMovie = new Loader();
loadMovie.contentLoaderInfo.addEventListener(Event.COMPLETE, cargado);
loadMovie.loadBytes(bytes, lc); // bytes es el byteArray cargado con el SWF

private function cargado(evt:Event):void
{
trace(loadMovie.contentLoaderInfo.actionScriptVersion); //<-- Esta linea funciona! me devuelve los datos del SWF aqui verifico la version del AS y probe con AS2 Y AS3 y veo que coincide correctamente
loadMovie.content.prueba(); //prueba es la función publica a la que quiero acceder y esta en el SWF cargado en el byteArray y siempre se genera el error en esta linea!
         
}
Este codigo en especifico me devuelve el error: Error: Call to a possibly undefined method prueba through a reference with static type flash.display:DisplayObject.

Agradezco la ayuda que me puedan brindar!
Saludos y que tengan un buen día!
  #2 (permalink)  
Antiguo 24/04/2013, 16:34
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 18 años
Puntos: 10
Respuesta: Cargar SWF en modo binario en AIR y acceder a sus funciones o metodos

Hola...a ver si te sirve esto:

Código Actionscript:
Ver original
  1. import flash.display.Loader;
  2. import flash.system.LoaderContext;
  3. import flash.events.Event;
  4. import flash.net.URLRequest;
  5. import flash.utils.ByteArray;
  6. import flash.display.MovieClip;
  7. import flash.net.URLLoader;
  8. import flash.display.DisplayObject;
  9. import flash.system.ApplicationDomain;
  10. import flash.net.URLLoaderDataFormat;
  11.  
  12.  
  13. var bytes:ByteArray = new ByteArray();
  14. var lc:LoaderContext = new LoaderContext(false,ApplicationDomain.currentDomain);
  15. lc.allowLoadBytesCodeExecution = true;
  16. lc.allowCodeImport = true;
  17.  
  18. var url:URLLoader = new URLLoader(new URLRequest("boxes.swf"));
  19. url.dataFormat = URLLoaderDataFormat.BINARY;
  20. url.addEventListener(Event.COMPLETE, function (e:Event){
  21. var loader:Loader = new Loader();
  22. loader.loadBytes(url.data,lc);
  23. loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (e:Event){
  24.  
  25.  
  26. var starship = loader.content["starship"];
  27. stage.addChild(starship);
  28. starship.test();
  29.  
  30.  
  31. });
  32.  
  33.  
  34. });


starship es un movieclip que se carga en pantalla con nombre de instancia starship y que está junto a otros elementos en boxes.swf.

test() es una función dentro de starship.

Si te sirve de algo, puedo pasarte el zip por privado para que veas que funciona.
  #3 (permalink)  
Antiguo 30/04/2013, 06:34
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 18 años
Puntos: 10
Respuesta: Cargar SWF en modo binario en AIR y acceder a sus funciones o metodos

De nada...

Etiquetas: as3, binario, externo, loader, swf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.