Así aprovecho para felicitar a Juan por un excelente artículo, y
excelente trabajo :)

        La verdad es que el tema de precarga de fuentes es muy
interesante... Lo que no me gusta nada es que no se pueda cambiar el
TextFormat de un campo de texto que ya tengas dibujado por el IDE.. Me
parece muy limitado en eso, pero bueno, supongo que es que aún no se les ha
dado "la brasa" suficiente a Macromedia para que pongan eso a funcionar como
dios manda..

        La verdad es que cuánto más profundizo en Flash, y sobre todo al
trabajar con OOP, veo que esta gente de Macromedia ha hecho un semilenguaje
OOP, y no terminan de hacer algo realmente serio.. A ver si con la compra de
Adobe mejoran, y son un poquito más serios, porque vamos... Hay cosas que
claman al cielo; prefería tener 5 clases que funcionasen BIEN, que no 50.000
que estén funcionando a medias como ahora mismo..

        Por ejemplo, un removeMovieClip no lanza una exception, si no
consigue borrar un MC en el Stage... Ni practicamente ninguna clase lanza
ningún tipo de exception, con lo cuál el try catch throw solo te sirve para
TUS clases.. Lo cual me parece un cachondeo, lógicamente.

        Después, muchos de los métodos devuelven Void, según la
documentación, o al menos, en teoría... Después resulta que si te devuelven
referencias a MC, true/false, etc.

        Vamos, que aún les queda mucho camino; un método debería devolver al
menos true/false siempre para saber si se ejecutó o no, y si quieren que
todo funcione "bien", emitir la exception correspondiente.

        El gran problema, creo yo, es que quieren hacer convivir AS 1 con AS
2, y así no se puede... Y nos pasa lo que nos pasa; que no tenemos ni una
cosa, ni la otra...

        Pero bueno, esto se ha vivido en otros ámbitos de desarrollo (por
ejemplo .NET), y se vive todavía en muchos otros (por ejemplo, PHP 4 vs PHP
5), y mucho me temo que esta "política" no se cambiará.. Cuándo yo lo veo
tan sencillo como tener dos "motores" o intérpretes independientes, uno para
cada lenguaje, y que cada uno escoja el que quiera; eso si, el de AS 1.0 que
no se toque, que sea lo que era, y punto; y el que se beneficie de las
nuevas ideas, nuevas características, etc, sea el de AS 2.0, más que nada
para "obligar" a la gente a migrar.. Porque sino (y lo digo porque yo mismo
he evitado el cambio muchas veces), la gente seguirá programando en lo que
sabe, y no cambiará...

        Un saludo :)

> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de Joseba Alonso
> Enviado el: miércoles, 20 de julio de 2005 15:16
> Para: [email protected]
> Asunto: RE: [ASNativos] Shared Fonts o cómo importar una fue 
> nta en tiempo de ejecución
> 
> Muy interesante el artículo. Gracias :)
> 
> Lo del bytecode parece que oí campanas y no sabia de donde xDD
> 
> Un saludo, 
> 
> Joseba Alonso
> www.5dms.com
> www.sidedev.net  
> 
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED] 
> > [mailto:[EMAIL PROTECTED] En nombre de Juan V. Delgado
> > Enviado el: miércoles, 20 de julio de 2005 11:51
> > Para: [email protected]
> > Asunto: RE: [ASNativos] Shared Fonts o cómo importar una fue 
> > nta en tiempo de ejecución
> > 
> > Wenas,
> > 
> > El otro día ya se lo comenté por mail a Hari, pero lo envío 
> > por aquí por si a alguien le sirve. Es un artículo que 
> > escribí pero que no he hecho público porque aún me fallan 
> > algunas cosas como que funcionen las fuentes en los 
> > componentes v2 y alguna cosilla más. Lo que mola es que 
> > conseguí no tener que utilizar 2 archivos por fuente, con lo 
> > que la precarga es real, aunque con algún problema.
> > 
> > Joseba, lo que comentas del byteCode extraño es lo que hace 
> > que el gestor de SharedFonts te funcione o no dependiendo de 
> > si pagaste la licencia.
> > 
> > http://zarate.tv/articulos/shared_fonts/
> > 
> > Pues espero que os sirva.
> > 
> > --
> > Juan V. Delgado
> > 
> > 
> > --------- Mensaje Original --------
> > De: [email protected]
> > Para: [email protected] <[email protected]>
> > Asunto: RE: [ASNativos] Shared Fonts o cómo importar una fue 
> > nta en tiempo de ejecución
> > Fecha: 19/07/05 09:24
> > 
> > >
> > > No conozco esta tecnica, pero se ve raro el crear un MC en una 
> > > profundidad negativa, creo que no se puede y que ese sea el 
> > origen de los problemas.
> > Por
> > > otra parte un mc creado/cargado en tiempo de ejecucion no puede
> > precargarse
> > > a si mismo, como ya has visto, se vacian. 
> > _root.textFieldLoaded nunca 
> > > ejecutará. Aun asi creo que no se puede hacer eso de una 
> > forma obvia, 
> > > hay
> > un
> > > tio por ahí que desarrollo una tecnica, creo que con un bytecode 
> > > extraño,
> > y
> > > tiene una librería a la venta que hace eso. Se llama Shared 
> > Fonts, al 
> > > principio creia que te referias a ella:
> > >
> > > http://www.sharedfonts.com/es/index.html
> > >
> > > Un saludo,
> > >
> > > Joseba Alonso
> > > www.5dms.com
> > > www.sidedev.net
> > >
> > > &gt; -----Mensaje original-----
> > > &gt; De: [EMAIL PROTECTED]
> > > &gt; [mailto:[EMAIL PROTECTED] En nombre de Hari 
> > Seldon &gt; 
> > > Enviado el: lunes, 18 de julio de 2005 12:24 &gt; Para: 
> > > [email protected] &gt; Asunto: [ASNativos] Shared Fonts o cómo 
> > > importar una fuenta &gt; en tiempo de ejecución &gt;
> > > &gt;      Hola lista;
> > > &gt;
> > > &gt;      Este fin de semana he estado probando unas cuántas
> > > &gt; cosillas nuevas que tenía &quot;pendientes&quot; con 
> > Flash, como 
> > > &gt; utilizar FAME (una pasada, la verdad), y el tema que 
> ahora me 
> > > &gt; tiene un tanto desconcertado, usar shared fonts.
> > > &gt; Bueno, realmente lo que quiero es poder cargar las 
> > fuentes &gt; 
> > > bajo demando, en tiempo de ejecución; y buscando en la 
> red, &gt; lo 
> > > que he visto es que recomiendan usar shared fonts....
> > > &gt; (igual hay otro método mejor...)
> > > &gt;
> > > &gt;      El caso es que tengo dos películas, una que es:
> > > &gt; FontStandard07_51.fla
> > > &gt;      Qué exporto a swf como
> > > &gt; FontStandard07_51.swf
> > > &gt;
> > > &gt;      Y que tiene en la biblioteca una fuente, exportada como:
> > > &gt; Font-standard07_51-8-normal
> > > &gt; (exportar para tiempo de ejecución, url: 
> FontStandard07_51.swf)
> > > &gt;      Y un símbolo con esta fuente embebida, exportado como:
> > > &gt; mc_textfield_standard0751
> > > &gt;
> > > &gt;      Después tengo una película dónde cargo esta otra, así:
> > > &gt;
> > > &gt; &lt;code&gt;
> > > &gt; this.stop();
> > > &gt; var mcContainerTextField_mc:MovieClip;
> > > &gt; mcContainerTextField_mc =
> > > &gt; 
> > > 
> this.createEmptyMovieClip(&quot;insMCcontainerTextField&quot;,-100);
> > > &gt; mcContainerTextField_mc.onEnterFrame = function() {
> > > &gt;      var bytesLoaded_int:Number = this.getBytesLoaded();
> > > &gt;      var bytesTotal_int:Number = this.getBytesTotal();
> > > &gt;      trace(this.getBytesLoaded());
> > > &gt;      trace(this.getBytesTotal());
> > > &gt;      trace(&quot;bytesTotal_int: &quot; + bytesTotal_int);
> > > &gt;      if (bytesTotal_int &gt; 0) {
> > > &gt;              trace(&quot;bytesTotal_int &gt; 0 : 
> > &quot; + bytesTotal_int);
> > > &gt;              if (bytesLoaded_int == bytesTotal_int) {
> > > &gt;                      trace(&quot;cargado...&quot; + 
> > bytesTotal_int);
> > > &gt;                      //trace(bytesLoaded_int);
> > > &gt;                      _root.textFieldLoaded(this);
> > > &gt;                      this.onEnterFrame = undefined;
> > > &gt;              }
> > > &gt;      }
> > > &gt; };
> > > &gt; 
> > > 
> > 
> mcContainerTextField_mc.loadMovie(&quot;FontStandard07_51.swf&quot;);
> > > &gt; var newTextFormat_tf = new TextFormat(); function &gt; 
> > > textFieldLoaded(rMC_mc:MovieClip){
> > > &gt;      rMC_mc.onEnterFrame = undefined;
> > > &gt;      newTextFormat_tf.font = 'Font-standard07_51-8-normal';
> > > &gt;      newTextFormat_tf.size = 8;
> > > &gt;      newTextFormat_tf.color = 0x000000;
> > > &gt;      trace(newTextFormat_tf);
> > > &gt;      var newText_txt = 
> > _root.createTextField(&quot;insNewText&quot;,
> > > &gt; 125, 10, 10, 100, 100);
> > > &gt;      _root.insNewText.text = &quot;Hello World!!!&quot;;
> > > &gt;      _root.insNewText.autoSize = 'left';
> > > &gt;      _root.insNewText.textColor = 0x000000;
> > > &gt;      _root.insNewText.setTextFormat(newTextFormat_tf);
> > > &gt;      _root.insNewText.embedFonts = true;
> > > &gt;      trace(_root.insNewText.getTextFormat());
> > > &gt;      trace(_root.insNewText.text);
> > > &gt;      
> > trace(_root.attachMovie(&quot;mc_textfield_standard0751&quot;,
> > > &gt; &quot;insNewText2&quot;, 30)); } &lt;/code&gt; &gt; 
> > &gt; &gt; Lo 
> > > primero que me sorprende es que el loader del &gt; 
> > > mcContainerTextField_mc no funciona; eso puedo suponer 
> que es &gt; 
> > > porqué al cargar sobre él la película externa, 
> > &quot;machaca&quot; su 
> > > &gt; evento onEnterFrame (tiene que hacerlo porque no me 
> sigue &gt; 
> > > trazando nada cuándo se carga la película); con lo cuál 
> en la &gt; 
> > > película que tiene la fuente, simplemente llamo a &gt; 
> > > _root.textFieldLoaded(this); para parar el onEnterFrame 
> > (que &gt; en 
> > > realidad ya está parado), y además ejecutar las acciones 
> > &gt; que me 
> > > interesan cuándo se carga la fuente.
> > > &gt;
> > > &gt;      Como veis en la función, lo único que hago es crear un
> > > &gt; objeto TextFormat, y un objeto TextField; bien, pues la &gt; 
> > > historia es que pasa absolutamente de mi.. No aparece 
> nada en &gt; 
> > > pantalla. Lo más curioso del caso es que si ejecuto este 
> > .fla &gt; en 
> > > modo de depuración, tanto el objeto TextFormat como la &gt; nueva 
> > > instancia textfield insNewText aparecen, con sus &gt; propiedades 
> > > correctas, etc etc, pero NO aparecen en pantalla....
> > > &gt;
> > > &gt;      No se si es que no se usan así las librerías
> > > &gt; compartidas, o que para hacer lo que yo quiero (cargar 
> > una &gt; 
> > > fuente externa, y después usarla en mi película principal), 
> > &gt; hay 
> > > otra forma de hacerlo y así no se puede hacer....
> > > &gt;
> > > &gt;      Agradecería cualquier indicación :)
> > > &gt;
> > > &gt;      Un saludo.
> > > &gt;
> > > &gt;
> > > &gt; ----------------------------------
> > > &gt; Lista ASNativos:[email protected] &gt; 
> > > http://www.5dms.com/listas &gt; ----------------------------------
> > >
> > > ----------------------------------
> > > Lista ASNativos:[email protected]
> > > http://www.5dms.com/listas
> > > ----------------------------------
> > >
> > 
> > ----------------------------------
> > Lista ASNativos:[email protected]
> > http://www.5dms.com/listas
> > ----------------------------------
> 
> ----------------------------------
> Lista ASNativos:[email protected]
> http://www.5dms.com/listas
> ----------------------------------


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

Responder a