Flash CS4 y AS3. Acceder a la propiedad height de un archivo txt
Hola de nuevo a tod@s
Estoy trabajando en una web en la que el cliente me pide el poder modificar la cantidad de texto en determinadas secciones y que en función de esa cantidad de texto cargado dinamicamente a Flash aparezcan o desaparezcan los botones de scroll que permiten navegar por dicho campo de texto dinámico.
Mi problema está en que no puedo sacar esa información (la "altura" de mi txt externo) del loader para compararla con un mc que utlizo de mascara y así saber cuando esos botones han de ser visibles o no.
Aquí dejo el código por si alguien me pudiese echar un cable con este problemilla.
//CARGA DE TEXTO DINAMICO
//Philosophy
import gs.TweenMax;
var req:URLRequest = new URLRequest("text/philosophy.txt");
var loader:URLLoader = new URLLoader();
var cssReq:URLRequest = new URLRequest("text/styleSheet.css");
var cssLoader:URLLoader = new URLLoader();
var hNum:int= new int;
function fileLoaded(event:Event):void
{
philosophy_txt.htmlText = loader.data;
hNum = loader.data.height;
}
function cssLoaded(event:Event):void
{
var sheet:StyleSheet = new StyleSheet();
sheet.parseCSS(cssLoader.data);
philosophy_txt.styleSheet = sheet;
}
loader.addEventListener(Event.COMPLETE, fileLoaded);
cssLoader.addEventListener(Event.COMPLETE, cssLoaded);
loader.load(req);
cssLoader.load(cssReq);
trace("la altura de philosophy.txt es ..."+hNum);
function scrollUp(Event:MouseEvent):void {
philosophy_txt.scrollV --;
}
function scrollDown(Event:MouseEvent):void {
philosophy_txt.scrollV ++;
}
textUp_btn.addEventListener(MouseEvent.CLICK, scrollUp);
textDown_btn.addEventListener(MouseEvent.CLICK, scrollDown);
/*if(loader.height < philoMask.height){
textUp_btn.visible = false;
textDown_btn.visible = false;
}else{
}*/
A modo de tentativa cree una variable en la que guardar ese hipotético valor de "height" de mi txt para poder sacarla primero por un trace y después compararla en un if que controlaría la visibilidad de esos botones, pero el output panel me tira el siguiente error:
la altura de philosophy.txt es ...0
ReferenceError: Error #1069: No se encontró la propiedad height en String y no hay ningún valor predeterminado.
at index0023_fla::Philosophy_14/fileLoaded()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Entiendo que estoy intentando acceder a una propiedad que no es accesible mediante String (valores de altura en este caso) y la estoy intentando meter en una variable integer pero la verdad, no sé si es por la resaca o que, pero no veo la forma de averiguar dicho valor.
Ante todo gracias por cualquier consejo.
Salutens.
Roberto
diego_lorenzo
La altura del .txt externo no la puedes saber porque digamos, que un .txt no tiene altura. Yo lo resolvería así:
Primero haces que el campo de texto donde cargas el .txt tenga tamaño automático: campo de texto.autoSize = TextFieldAutoSize.LEFT;
Luego coges el tamaño del campo de texto: campo de texto.height y campo de texto.width y se lo asignas a la mascara
Saludos
robertoabril
Hey Diego.
Gracias por el tip. La verdad que esa posibilidad no la había pensado.
En cierta forma ya lo arreglé de una forma un poco trapera pero que funciona:
Puesto que es imposible, como tu dices, medir el "height" de un campo de texto así a lo crudo, pensé en utilizar otra propiedad que si es medible directamente del txt como es lenght. Al ser un campo de texto con unas proporciones fijas y que no van a variar, me decidí a prescindir de la máscara y hacer aparecer o desaparecer los botones de scroll en funcion de ese lenght del txt externo. Comprobé que pasados 900 y algo pixels de longitud era el punto en el que el texto desaparecia, así que usando la variable que muestro arriba comparé los dos valores y conseguí lo que andaba buscando.
Sin embargo pienso que no es la mejor solución ya que no estoy seguro si en esa longitud calculada directamente del txt se tienen en cuenta los saltos de linea y demás. Sin duda probaré lo que comentas.
Gracias de nuevo por el consejo. :)
Saludamens!
Roberto.
richiphone
¿Para qué quiero un scroll en un .txt?