Hola lista;

        Este fin de semana he estado probando unas cuántas cosillas nuevas
que tenía "pendientes" con Flash, como utilizar FAME (una pasada, la
verdad), y el tema que ahora me tiene un tanto desconcertado, usar shared
fonts.
Bueno, realmente lo que quiero es poder cargar las fuentes bajo demando, en
tiempo de ejecución; y buscando en la red, lo que he visto es que
recomiendan usar shared fonts.... (igual hay otro método mejor...)

        El caso es que tengo dos películas, una que es:
FontStandard07_51.fla
        Qué exporto a swf como
FontStandard07_51.swf

        Y que tiene en la biblioteca una fuente, exportada como:
Font-standard07_51-8-normal
(exportar para tiempo de ejecución, url: FontStandard07_51.swf)
        Y un símbolo con esta fuente embebida, exportado como:
mc_textfield_standard0751

        Después tengo una película dónde cargo esta otra, así:

<code>
this.stop();
var mcContainerTextField_mc:MovieClip;
mcContainerTextField_mc =
this.createEmptyMovieClip("insMCcontainerTextField",-100);
mcContainerTextField_mc.onEnterFrame = function() {
        var bytesLoaded_int:Number = this.getBytesLoaded();
        var bytesTotal_int:Number = this.getBytesTotal();
        trace(this.getBytesLoaded());
        trace(this.getBytesTotal());
        trace("bytesTotal_int: " + bytesTotal_int);
        if (bytesTotal_int > 0) {
                trace("bytesTotal_int > 0 : " + bytesTotal_int);
                if (bytesLoaded_int == bytesTotal_int) {
                        trace("cargado..." + bytesTotal_int);
                        //trace(bytesLoaded_int);
                        _root.textFieldLoaded(this);
                        this.onEnterFrame = undefined;
                }
        }
};
mcContainerTextField_mc.loadMovie("FontStandard07_51.swf");
var newTextFormat_tf = new TextFormat();
function textFieldLoaded(rMC_mc:MovieClip){
        rMC_mc.onEnterFrame = undefined;
        newTextFormat_tf.font = 'Font-standard07_51-8-normal';
        newTextFormat_tf.size = 8;
        newTextFormat_tf.color = 0x000000;
        trace(newTextFormat_tf);
        var newText_txt = _root.createTextField("insNewText", 125, 10, 10,
100, 100);
        _root.insNewText.text = "Hello World!!!";
        _root.insNewText.autoSize = 'left';     
        _root.insNewText.textColor = 0x000000;
        _root.insNewText.setTextFormat(newTextFormat_tf);
        _root.insNewText.embedFonts = true;
        trace(_root.insNewText.getTextFormat());
        trace(_root.insNewText.text);
        trace(_root.attachMovie("mc_textfield_standard0751", "insNewText2",
30));
}
</code>


Lo primero que me sorprende es que el loader del mcContainerTextField_mc no
funciona; eso puedo suponer que es porqué al cargar sobre él la película
externa, "machaca" su evento onEnterFrame (tiene que hacerlo porque no me
sigue trazando nada cuándo se carga la película); con lo cuál en la película
que tiene la fuente, simplemente llamo a 
_root.textFieldLoaded(this); 
para parar el onEnterFrame (que en realidad ya está parado), y además
ejecutar las acciones que me interesan cuándo se carga la fuente.

        Como veis en la función, lo único que hago es crear un objeto
TextFormat, y un objeto TextField; bien, pues la historia es que pasa
absolutamente de mi.. No aparece nada en pantalla. Lo más curioso del caso
es que si ejecuto este .fla en modo de depuración, tanto el objeto
TextFormat como la nueva instancia textfield insNewText aparecen, con sus
propiedades correctas, etc etc, pero NO aparecen en pantalla....

        No se si es que no se usan así las librerías compartidas, o que para
hacer lo que yo quiero (cargar una fuente externa, y después usarla en mi
película principal), hay otra forma de hacerlo y así no se puede hacer....

        Agradecería cualquier indicación :)

        Un saludo.


----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a