Comunidad de diseño web y desarrollo en internet online

Que es lo que pasa que no pone el estilo ?

Citar            
MensajeEscrito el 21 Dic 2007 03:31 pm
Hola a todos
Desde que entre al trabajo hoy por la mañana, me estoy partiendo la cabeza pensando que es lo que pasa que no adjunta el estilo al TextField. el estilo se carga satisfactoriamente, despues chequeo la cantidad de styleNames que tiene el estilo, y esta correcto tambien .! :? :?

Aqui les va el codigo completo para que hechen una ojeada a ver donde falla la cosa.
Main.as

Código :

package  
{
   import flash.display.MovieClip;
   import flash.text.StyleSheet;
   import flash.text.TextField;

   public class main extends MovieClip {
      
      private var obj : StyleSheet = new StyleSheet();
      
      public function main():void
      {
         var loa : cargar = new cargar("estilo.css");
         loa.addEventListener(cargarEvent.TERMINO_CARGAR, termino);
      }   
      
      private function termino(e : cargarEvent) : void
      {
         obj = e.datos as StyleSheet; //Aqui hago el CAST
         //Poniendo el texto.. !
         var t : TextField = new TextField();
         
         t.wordWrap = true;
         t.styleSheet = obj;
         t.htmlText = "<h1> Joris </h1> is a flasher";
         this.addChild(t);
      }
   }
}


cargar.as

Código :

package  
{
   import flash.events.Event;
   import flash.events.EventDispatcher;
   import flash.events.IOErrorEvent;
   import flash.events.ProgressEvent;
   import flash.net.URLLoader;
   import flash.net.URLRequest;
   
   public class cargar extends EventDispatcher
   {
      private var _url : String;
      private var _ldr : URLLoader = new URLLoader();
      private var _ureq : URLRequest;
      
      public function cargar(url : String):void
      {
         _url = url;
         _ldr.addEventListener(Event.COMPLETE, onComplete);
         _ldr.addEventListener(ProgressEvent.PROGRESS, onProgress);
         _ldr.addEventListener(IOErrorEvent.IO_ERROR, onError);
         
         _ureq = new URLRequest(_url);
         _ldr.load(_ureq);
      }
      
      private function onComplete(e : Event):void
      {
         _ldr.removeEventListener(Event.COMPLETE, onComplete);
         _ldr.removeEventListener(ProgressEvent.PROGRESS, onProgress);
         _ldr.removeEventListener(IOErrorEvent.IO_ERROR, onError);
         dispatchEvent(new cargarEvent(cargarEvent.TERMINO_CARGAR, _ldr.data));
      }
      
      private function onProgress(e : ProgressEvent):void
      {
         //Not yet.! Mandar el porcentaje de carga. !
         var numero : Number = new Number();
         numero = ((100 * e.bytesLoaded) / e.bytesTotal);
         dispatchEvent(new cargarEvent(cargarEvent.PROGRESO_CARGAR, numero));
      }
      
      private function onError(e : IOErrorEvent):void
      {
         dispatchEvent(new cargarEvent(cargarEvent.ERROR_CARGAR, e.text)); //Mando el mensaje de error.!
      }
   }
}


cargarEvent.as

Código :

package  
{
   import flash.events.Event;
   import flash.text.StyleSheet;

   public class cargarEvent extends Event
   {      
      static public const TERMINO_CARGAR : String = "termineDeCargar";
      static public const PROGRESO_CARGAR : String = "progresoCargar";
      static public const ERROR_CARGAR : String = "errorCargar";
      
      public var datos : Object = new Object();
      public function cargarEvent(type : String, dato : Object) 
      {
         datos = dato;
         super(type);
      }   
   }   
}


salu2 :crap:

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 23 Dic 2007 09:39 pm
Hola! prueba a dejar la función así:

Código :

private function termino(e:cargarEvent):void
{
   obj.parseCSS(e.target.data);
   var t:TextField = new TextField();
    
   t.wordWrap = true;
   t.styleSheet = obj;
   t.htmlText = "<h1> Joris </h1> is a flasher";
   this.addChild(t);
}


Fíjate en la función parseCSS, se encarga de importar las reglas del css en tu objeto StyleSheet. No hace falta ningún casting aquí :)

Un saludo!

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox
Citar            
MensajeEscrito el 24 Dic 2007 01:55 pm
Sinceramente, sigue sin afectar al texto el estilo :crap:, deja ver con calma a ver si descrifo el error.!

salu2
gracias por responder

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 24 Dic 2007 03:02 pm
El error era mio llops ... :oops:, en la hoja de estilo estaba poniendo totalmente mal la etiqueta ... :oops::oops::oops::oops::oops:

gracias nuevamente
salu2. !

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 24 Dic 2007 03:04 pm
El código que te puse lo escribí de cabeza. Lo he probado ahora en flash y he visto que si hago un trace de e.target.data me da error, por eso no funciona el parseCSS. Mírate bien el código que utilizas para crearte tu propio sistema de eventos, ya que el fallo parece ser que está ahí.

De todas formas, modifico tu clase main y te dejo un ejemplo (este lo he probado :) ):

Código :

package{   
   import flash.display.*;
   import flash.text.*;
   import flash.events.*;
   import flash.net.*;
   public class main extends MovieClip{
      private var obj:StyleSheet = new StyleSheet();
      function main()   {
         var urlLoader:URLLoader = new URLLoader();
         urlLoader.addEventListener(Event.COMPLETE, termino);
         urlLoader.load(new URLRequest("estilo.css"));
      }
      private function termino(e:Event):void{
         obj.parseCSS(e.target.data);
         var t : TextField = new TextField();
         t.wordWrap = true;
         t.styleSheet = obj;
         t.htmlText = "<h1> Joris </h1> is a flasher";
         this.addChild(t);
      }
   }
}


Y como advertencia, ten en cuenta que Flash es muy puñetero para los archivos CSS. Por ejemplo, al crear un .css desde Dreamweaver añade esta cabecera:

Código :

@charset "utf-8";

Si Flash se encuentra con eso el archivo no se parsea correctamente.

Saludos!

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox
Citar            
MensajeEscrito el 24 Dic 2007 03:05 pm
jeje, he llegado 2 minutos tarde ^^

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox
Citar            
MensajeEscrito el 24 Dic 2007 04:41 pm
Si claro, te daba error porque estoy usando cargarEvent que tiene una variable llamada datos que es la que contiene el dato.!

salu2 ^^ , nuevamente mil gracias !!! :-)

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox

 

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