Tema: Frase diaria
Ver Mensaje Individual
  #9 (permalink)  
Antiguo 22/05/2006, 11:46
Avatar de luistar
luistar
 
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
ok, te indicaré los pasos que debes seguir

- en un nuevo documento de flash crea un campo de texto dinámico, ponle nombre de instancia: info_txt

- selecciona ese campo y conviertelo en MovieClip (F8), ponle nombre de instancia: frases_mc

- ahora toca editar ese MovieClip (dale doble click en el elemento ya sea del escenario o de la biblioteca)

- estando en edicion del MovieClip, crea una nueva capa y selecciona su respectivo único fotograma y abre el panel de acciones y pega el siguiente codigo
Código:
//el campo de texto --->
with(info_txt){ html=autoSize=multiline=wordWrap = true; }

// frases ------------->
var frases_xml:XML = new XML();
frases_xml.ignoreWhite = true;
frases_xml.onLoad = function(ok){
	if(ok){
		//al cargar el XML mostramos la frase de hoy
		var fecha_hoy:Date = new Date();
		mostrar_frase(fecha_hoy.getMonth(),fecha_hoy.getDate());
	} else info_txt.htmlText = '<b>No se pudo carga las frases, verifica la existencia del archivo.</b>';
}
frases_xml.load('frases.xml');

// funcion para obtener y mostrar la frase --->
var mostrar_frase:Function = function(mes:Number,dia:Number):Void{
	var mes_str:String = frases_xml.firstChild.childNodes[mes].attributes.id;
	var frase_str:String = frases_xml.firstChild.childNodes[mes].childNodes[dia-1].attributes.frase;
	var autor_str:String = frases_xml.firstChild.childNodes[mes].childNodes[dia-1].attributes.autor;
	//--->
	info_txt.htmlText = '<b>Frase del '+dia+' de '+mes_str+'</b><br/>';
	info_txt.htmlText += '<font size="14">« '+frase_str+' »</font><br/>';
	info_txt.htmlText += '<p align="right"><font size="12"><i>( '+autor_str+' )</i></font></p>';
}

// para mostrar una frase al azaar --->
var frase_al_azaar:Function = function():Void{
	var mes_azaar:Number = Math.floor(Math.random()*frases_xml.firstChild.childNodes.length);
	var dia_azaar:Number = Math.floor(Math.random()*frases_xml.firstChild.childNodes[mes_azaar].childNodes.length)+1;
	mostrar_frase(mes_azaar,dia_azaar);
}

stop();
algo asi

- y eso es suficiente para que funciones

- pero si quieres probar como hacer el de mostrar frase aleatoria, prosigue
- volvemos a _root y creamos un boton con nombre de instancia: frase_aleatoria
- creamos otra capa para ponerle las acciones y pegas este codigo
Código:
/*
este botón no forma parte del clip frases_mc
por eso lo ponemos por fuera
no es necesario su presencia para el funcionamiento

sólo tienes que copiar el MovieClip frases_mc de la biblioteca a tu película
y copiar también el archivo frases.xml en la misma carpeta de la pelicula
*/

//accion para el boton: frase_aleatoria
frase_aleatoria.onRelease = function(){
	frases_mc.frase_al_azaar();
}

stop();

/*
NOTA:
- las frases del este ejemplo fueron sacadas del programa 'Frases' (http://solofrases.com/ArFrases103b.exe)
- a partir del dia 20 de noviembre, las frases se repiten desde el principio hasta completar los 366 dias posibles xD
*/
ten cuidado con los nombres de instancia que no son lo mismo que los nombres que aparecen en la biblioteca
:D
__________________
Si digo que soy mentiroso. ¿Lo soy?