Botón en flash incrementar tamaño texto

Me he bajado un template de flash y quiero hacer un botón para que me incremente el tamaño del texto, ya que en resoluciones de pantalla grandes, el texto casi no se ve.
¿Cómo se hace? Existe alguna otra forma de hacerlo sin botones, ej: al cargar, ¿mira la resolución de pantalla y pone un tamaño de texto u otro? Y de ser así, cual seria la mejor opción teniendo en cuenta que tengo muy poca idea de flash.

2 respuestas

Respuesta
1
Hace unos días una persona me pidió ayuda también sobre un template. Por lo general estos archivos tiene un archivo externo llamado XML. En el XML los desarrolladores colocan imágenes externas, colores y otras cosas que quieren que el flash contenga, de esta manera el usuario puede modificarlos a voluntad.
Observa si tu template tiene algún archivo XML externo, si lo tiene fíjate si tiene un nombre algo así como: "Tamaño de Letra" o "Font Size".
Si no lo tuviese, tendrás que abrir el flash y modificar el tamaño de la letra manualmente. En caso de que no tenga el archivo XML o en este no esté una función para modificar el tamaño del texto, regresa conmigo y te explicaré como modificar el tamaño de tu texto.
Saludos.
El css (estilos) es:
p {
    font-family: Berlin Sans FB, Arial, Helvetica;
    font-size: 12px;
    color: #4D4948;
}
p_peq {
    font-family: Berlin Sans FB, Arial, Helvetica;
    font-size: 6px;
    color: #4D4948;
}
a {
    color: #0066FF;
    text-decoration: underline;
}
a:hover {
    color: #009900;
    text-decoration: none;
}
.title {
    font-family: Berlin Sans FB, Arial, Helvetica;
    font-size: 26px;
    color: #B28B7C;
    text-align: center;
}
.subtitle {
    font-family: Berlin Sans FB, Arial, Helvetica;
    font-size: 15px;
    color: #d7bdb1;
    text-align: center;
}
.subtitle_justify {
    font-family: Berlin Sans FB, Arial, Helvetica;
    font-size: 15px;
    color: #d7bdb1;
    text-align: justify;
}
.highlight {
    font-family: Berlin Sans FB, Arial, Helvetica;
    color: #B28B7C;
}
.note {
    font-family: Berlin Sans FB, Arial, Helvetica;
    font-size: 11px;
    color: #009900;
}
y las paginas xml son:
<?xml version="1.0" encoding="utf-8"?>
<items>
    <item>
        <content><![CDATA[<span class="title">E.I.L. PORTA NIGRA - CURSOS</span>
<p_peq></p_peq>
<p align="justify">XXXXXXXXXXXXXXX XXXXXXX.</p>
<span class="subtitle_justify">Cursos de Inglés, Alemán, Francés, Lengua Española y Gallego</span>
<span class="subtitle_justify">Cursos de Español para Extranjeros</span>
<span class="subtitle">XXXXX XXXXX XXXXX</span>
<img src="/thumbnails/Pag2-detalle2.png"/>
<p align="justify">
...
Lo que quiero NO es modificar el tamaño de la fuente (lo podría hacer en el css). Lo que pretendo es poder aumentar o reducir el tamaño a elección del usuario.
Si no es mucha molestia, podrías decirme (según lo que ves en la ultima linea del .xml de la página) porque cuando subo el archivo a mi servidor (awardspace) en Internet Explorer se ve bien, ¿pero en Firefox (tengo version 3.6) las fotos pequeñas de dentro de la página NO se ven?.
La web la tengo por ahora en esta dirección: http://eilportanigra.awardspace.info/index.html (ver pestaña "Cursos")
Gracias de antemano
miguel
¿Mmmm cómo empezar y decir las cosas de la manera más cordial y amable posible?
Mira Miguel, el problema no es el flash! Flash es un archivo compilado, por lo tanto no tiene problemas con los navegadores. Pero html sí.
Cada navegador interpreta a su manera los datos suministrados en tu sitio web. Es decir, explorer, firefox, safari, chrome, opera etc. Algunos siguen los estándares de la w3. El caso de "Explorer" propiedad de Microsoft, no lo hace, tiene sus propios estándares y hace lo que se le pega la gana, porque puede hacerlo. Es por eso que no ves tus imágenes y texto igual en un navegador que en otro.
La solución que tu propusiste es interesante, pero muy poco funcional y probablemente inaplicable. Lo que tendrías que hacer es meterte en el código fuente de flash. Hay una función que se llama: "TextFormat()" textFormat tiene las propiedades de font, size, color, setTextFormat, etc. Lo que tienes que hacer es construir una función que cambie la propiedad por medio del setTextFormat(). Para ello debes de tener nociones básicas de ActionScript.
Primero creas una función:
var miTextoCambio = function () {
<span style="white-space: pre;"> </span>var miTexto = new TextFormat();
<span style="white-space: pre;"> </span>miTexto.font = Helvetica;
<span style="white-space: pre;"> </span>miTexto.size = 16;
<span style="white-space: pre;"> </span>miTexto.color=0xCCCCCC;
etcetera etcetera etcetera...
}
Ya que creaste tu función, la invocas desde el botón que va a hacer el cambio de tu texto
miBoton.onRelease = function () {
<span style="white-space: pre;"> </span>el_texto_a_cambiar.setTextFormat(miTextoCambio);
}
Y ya! Eso es todo. Ahora adáptalo a tu código de AS2. De todos modos, yo te recomiendo (y no sé porque presiento que los vas a terminar haciendo) que aumentes un punto a tu texto, de 11pt, a 12 o 13 y los de 12pts a 13 o 14pts.
Saludos. Chaman Mazateco
Al final ya arregle lo de las imágenes (era culpa del servidor), ya que lo puse en un nuevo servidor y ahí si que se ven las imágenes en Firefox y en Explorer.
El texto también lo he arreglado, pero ahora me surgió otra duda, espero que sea la ultima :-)
Una de las páginas que se cargan desde el xml, el código es tal que así:
<item>
        <content><![CDATA[<img src="thumbnails/fechas y niveles.jpg" width="450" height="142"/>]]></content>
</item>
Quiero poner un tabla, con sus bordes, etc... pero no lo consigo. El problema es que no tengo ni idea de xml. En html seria con:
<TABLE BORDER="1"><TR>
<TH>Cabereca 1</TH>
<TH>Cabereca 2</TH></TR>
Pero aquí no se como hacerlo.
¿What? Mmmm déjame ver si entiendo bien, ¿quieres meter una tabla en un XML? ¿O quieres que tu tabla aparezca en tu swf? Pues si es así pues no se puede, se puede llegar a meter una estructura de datos combinada XML con HTML, pero si quieres que aparezca dibujada en tu swf no se puede, porqué no comparten la misma arquitectura, uno está creado para intercambio de datos y el otro es un lenguaje de scripting. ¿Qué es lo que quieres hacer? ¿Dibujar una tabla en tu swf? ¿Por lo que entiendo quieres que tengan un borde tus thumbnails no es así?
Sí es así lo que tienes que hacer es encontrar el contenedor de tus imágenes y colocar ahí tus bordes, ya sea por código o manualmente, (te recomiendo lo segundo). Si es un MovieClip creado a través de código si tienes que darles bordes con código. (Lo sabes por el siguiente código: this. CreateEmptyMovieClip(xx , xx);)
Ahora, recuerda que Flash jala de XML lo que flash le indica obtener, no al revés. Si tu quieres meter nuevos datos que flash obtenga del XML, tienes que modificar el código e indicar que datos quieres obtener del XML.
Suerte con tu proyecto, si necesitas algo más y te puedo ayudar, con mucho gusto.
Respuesta
1
Si mira:
Arrastra un componente ComboBox al escenario, y ponle nombre de instancia "combo", luego crean un texto dinámico, y como nombre de instancia "texto_txt".
Luego coloca el siguiente código en el primer fotograma:
var texto:String = "Este es el texto";
// indicamos que el texto permita etiquetas html
texto_txt.html = true;
// aqui colocamos el texto con la etiqueta font
//y el valor de la primera opcion del comboBox
texto_txt.htmlText = "<font size='"+combo.value+"'>"+texto+"</font>";
// creamos un array con los distintos tamaños
// que vamos a tener para agregar al comboBox 
var tamano:Array = new Array("12", "16", "20", "25", "30");
// agregamos los datos del array al comboBox
combo.dataProvider = tamano;
// creamos un listener para que se realice el cambio de tamaño del texto
var cambia = new Object();
// función que se activa cuando se cambie el valor del combobox
cambia.change = function(evt) {
   trace(combo.value);
   texto_txt.htmlText = "<font size='"+combo.value+"'>"+texto+"</font>";
};
combo.addEventListener('change', cambia);
Y si estas utilizando AS3:
import fl.events.ColorPickerEvent;
import fl.data.DataProvider;
// el array para los datos del comboBox
var tamano:Array = [
{label:"10", data:"10"},
{label:"12", data:"12"},
{label:"14", data:"14"},
{label:"16", data:"16"},
{label:"18", data:"18"},
{label:"20", data:"20"},
];
// creamos un objeto textFormat
var format:TextFormat = new TextFormat();
// aquí está el listener que llamará a la función que se encarga de cambiar de color
txt_color.addEventListener(ColorPickerEvent.CHANGE,cambia_color);
function cambia_color(event:ColorPickerEvent):void {
   format.color = event.target.selectedColor;
   texto_txt.setTextFormat(format);
}
// se agregan los datos del array al comboBox
combo.dataProvider = new DataProvider(tamano);
// listener que llamará a la función  que se encarga de cambiar el tamaño
combo.addEventListener(Event.CHANGE, setFont);
function setFont(event:Event):void {
   format.size = combo.selectedItem.data;
   texto_txt.setTextFormat(format);
}
var texto:String = "Este es el texto";
texto_txt.text = texto;
Espero que te sirva. Esto lo saque hace tiempo de la web de cristalab.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas