Pregunta

Permítanme presentar el problema en primer lugar. Es necesario cargar todas las imágenes que he utilizado en mi proyecto externamente sin incorporar. Las imágenes están presentes ya sea en pieles o como iconos para los artículos en los árboles. Me encontré con la clase IconUtility aquí Yo era capaz de modificarlo y utilizarlo para árboles pero el problema es que no podemos utilizar iconutility para el mismo componente para establecer 2 pieles diferentes (como por un botón - upSkin downSkin). Yo no era capaz de pensar en una solución con iconutility. Es posible la simulación de inserción y crear una clase dinámica y regresar a la clase en tiempo de ejecución?

¿Fue útil?

Solución

lo más sencilla de lograr esto es crear uno / varios SWF que contiene sus activos, cargarlo, y después tire de las clases de allí (es decir, desde el dominio de aplicación SWF cargados) ...

existen múltiples soluciones para que:

  • versión de hardcore es cargar las imágenes en ByteArrays usando URLLoader, y luego crear una nueva ByteArray, que va a ser un archivo SWF, que contiene los elementos incorporados y las instrucciones necesarias para vincularlos con las clases ... puede que quieren tener un vistazo a la chispa de swfassist ...
  • un poco más simple y más performante (ya que sólo hace esto una vez), es hacer eso en el servidor ... Aqui puede
    • flex compilador
    • Uso swfmill
    • utilizar algunas bibliotecas para manipular SWF, como ming
    • hágalo usted mismo, con la mano ...:)

esperanza que ayuda

editar la segunda solución consiste en crear activos en el servidor, usando una herramienta adecuada ... o codificación de la herramienta sí mismo, sino que era más bien una broma ... .. :) . me di cuenta, el enlace al compilador Flex que estaba mal ... la idea sería simplemente conectarlo a su servidor web, y luego tener que compilar algunas de ActionScript, que va a hacer el embed ... por lo que sería generar una archivo de ActionScript como esto:

package {
    import flash.display.Sprite;
    import flash.utils.describeType;
    public class Assets extends Sprite {
        [Embed(source='asset_1_Location')]
        public static var asset_1:Class;
        [Embed(source='asset_2_Location')]
        public static var asset_2:Class;
        ...
        [Embed(source='asset_n_Location')]
        public static var asset_n:Class;    
        public function Assets() { }
        public static function getAll():Object {
            var ret:Object = { };
            for each (var x:XML in describeType(Assets).variable.(@type=="Class")) {
                var name:String =  x.@name;
                ret[name] = Assets[name];
            }
            return ret;
        }
    }
}

A continuación, tiene el compilador Flex compila ... cuando está cargado, extraer datos con LoaderInfo :: ApplicationDomain.getDefinition ( "Activos"). GetAll (), el cual le dará un mapa clave-valor con todas las clases necesarias. ..

con otras herramientas, que funcionaría de manera diferente, pero espero que esto aclare, cómo debería funcionar ...

en el servidor, se necesita un servicio, que va a construir estos SWF de activos para usted, y almacenar en caché ellos ... para que envíe un poco de solicitud POST, por ejemplo, con una matriz JSON de archivos / imágenes que necesita, y voy a dar vuelta el swf ... el servidor debe hacer el almacenamiento en caché apropiada por supuesto ...

esperanza, ya que ayuda a ...:)

greetz

back2dos

Otros consejos

Este era lo que estaba buscando ... por desgracia el autor afirma que no era capaz de utilizarlo para pieles botón

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top