Paso a explicarme:
Me bajé de la web http://www.ffflashhh.com/ un ejemplo de un calendario. Lo modifique en su aspecto y cuando lo pruebo funciona estupendamente.
Esta es la captura al ejecutar el achivo.
[img]http://www.fileseasy.com/files/userimages/viewer.php?id=139_img3024captura2.jpg[/img]
Pero cuando cargo este mismo archivo (calendariiowebcole.swf) en la página web que estoy desarrollando para el colegio donde trabajo, inexplicablemente - por lo menos para mí- se me descolocan los dáis y no aparece en rojo la palabra Dom.
El código que utilizo para ello es el siguiente:
Código :
stop();
_root.createEmptyMovieClip("eventos",12);
eventos._x=498;
eventos._y=410;
eventos.loadMovie("calendariowebcole.swf");
En esta captura podéis observar como queda al cargarse dentro del mc.
[img]http://www.fileseasy.com/files/userimages/viewer.php?id=1716_img600captura1.jpg[/img]
El código del archivo swf es el siguiente
Código :
_lockroot=true;
System.useCodepage = true;
//Separaciones de las filas y columnas
_global.xSep = 30;
_global.ySep = 20;
TextField.prototype.aplicarFormato = function(pFuente,pColor,pTamanyo,pBold,pAlign){
f = new TextFormat();
f.font = pFuente;
f.color = pColor;
f.size = pTamanyo;
f.bold = pBold;
f.align = pAlign;
f.indent = 1;
this.setTextFormat(f);
}
MovieClip.prototype.dibujarCuadrado = function(x,y,ancho,alto,borde,colorBorde,alphaBorde,colorRelleno,alphaRelleno){
with(this){
lineStyle(borde, colorBorde, alphaBorde);
beginFill(colorRelleno,alphaRelleno);
moveTo(x,y);
lineTo(x+ancho,y);
lineTo(x+ancho,y+alto);
lineTo(x,y+alto);
lineTo(x,y);
endFill();
}
}
Calendario = function(x,y, d, m, a){
this.dia = d;
this.mes = m;
this.anyo = a;
this.eventos = _global.nEventos;
this.x = x;
this.y = y;
primeranyo = 2005; //Primer año que se muestra
ultimoanyo = 2008; //ultimo año que se muestra
}
Calendario.prototype.pintaCalendario = function(){
listaDias = new Array('Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom');
listaMeses = new Array('ENERO', 'FEBRERO', 'MARZO', 'ABRIL', 'MAYO', 'JUNIO', 'JULIO', 'AGOSTO', 'SEPTIEMBRE', 'OCTUBRE', 'NOVIEMBRE', 'DICIEMBRE');
_root.createEmptyMovieClip("cal",10);
_root.attachMovie( "fondo", "fondo", 9);
//posicion del calendario
_root.cal._x = _root.fondo._x;
_root.cal._y = _root.fondo._y;
/*********************************
* Lunes-Domingo
**********************************/
for(i = 0;i < listaDias.length;i++){
_root.cal.createTextField(listaDias[i].toLowerCase(),20+i,i*_global.xSep+10,40,35,20);
_root.cal[listaDias[i]].text = listaDias[i];
_root.cal[listaDias[i]].aplicarFormato("Verdana",0x000000,9,false,"center");
}
if(i=6){
//Dom en rojo
_root.cal[listaDias[i]].aplicarFormato("Verdana",0xff0000,9,false,"center");
}
/*********************************
* dias del mes
**********************************/
inicioMes = new Date(this.anyo, this.mes-1,1);
iniSemana = inicioMes.getDay();
if(iniSemana == 0) {
iniSemana = 6;
}else{
iniSemana = iniSemana - 1;
}
xPos = iniSemana;
yPos = 0;
if(this.mes == 1 or this.mes == 3 or this.mes == 5 or this.mes == 7 or this.mes == 8 or this.mes == 10 or this.mes == 12){
totalDias = 31;
}else if(this.mes == 2){
if((this.anyo % 4 == 0 && this.anyo % 100 != 0) or this.anyo % 400 == 0){
totalDias = 29;
}else{
totalDias = 28;
}
}else{
totalDias = 30;
}
ahora = new Date();
for(i = 1;i <= totalDias; i++){
_root.cal.createTextField("dia"+i,60+(i*2),(xPos)*_global.xSep+10,_global.ySep+yPos+40,30,20);
//Cuadrados grises de fondo de cada fecha
_root.cal.createEmptyMovieClip("fondodefecha"+i,7+20*i);
_root.cal["fondodefecha"+i].dibujarCuadrado(xPos*_global.xSep+15,_global.ySep+yPos+40,20,15,1,0xCCCCCC,100,0xEAEAEA,0);
//********************************
_root.cal["dia"+i].text = i;
_root.cal["dia"+i].selectable = false;
if(i == ahora.getDate() && ahora.getMonth() == (this.mes-1) && ahora.getYear() == (this.anyo-1900)){
//fech actual en rojo
_root.cal["dia"+i].aplicarFormato("Verdana",0xff0000,10,true,"center");
}else{
_root.cal["dia"+i].aplicarFormato("Verdana",0x000000,10,false,"center");
}
/**********************************
* fecha pinchable
**********************************/
for(j = 0;j < this.eventos.length; j++){
if(this.eventos[j].attributes.dia == i && this.eventos[j].attributes.mes == this.mes && this.eventos[j].attributes.anyo == this.anyo){
_root.cal.attachMovie( "fondopinchable", "fondopinchable"+j, j );
_root.cal["fondopinchable"+j]._x = xPos*_global.xSep+15;
_root.cal["fondopinchable"+j]._y = _global.ySep+yPos+40;
_root.cal["fondopinchable"+j].evento = this.eventos[j];
_root.cal["fondopinchable"+j].onPress = function(){
_root.cal.info.htmlText = this.evento.firstChild.toString();
//formato del campo de texto info
_root.cal.info.aplicarFormato("Verdana",0x006699,10,false,"center");
}
}
}
xPos++;
if(xPos % 7 == 0){
xPos = 0;
yPos += _global.ySep;
}
}
/********************************
* nombre del mes y año
*********************************/
_root.fondo.mesanyo.text = listaMeses[inicioMes.getMonth()]+", "+this.anyo;
/***************************************
* se crean los botones de avance y retroceso de mes y año
***************************************/
//mas
if(_root.d.anyo<ultimoanyo){
_root.fondo.mas.onPress = function(){
_root.d.mes++;
if(_root.d.mes > 12){ _root.d.anyo++;_root.d.mes = 1;}
_root.d = new calendario(_root.d.x, _root.d.y, 1,_root.d.mes,_root.d.anyo);
_root.d.pintaCalendario();
}
}
//menos
if(_root.d.anyo>=primeranyo+1){
_root.fondo.menos.onPress = function(){
_root.d.mes--;
if(_root.d.mes <= 0){ _root.d.anyo--;_root.d.mes = 12;}
_root.d = new calendario(_root.d.x, _root.d.y,1,_root.d.mes,_root.d.anyo);
_root.d.pintaCalendario();
}
}
/*************************************
* textfield info con la informacion que tiene el xml
*************************************/
_root.cal.createTextField("info",7000,8,197,215,50);
_root.cal.info.multiline = true;
_root.cal.info.html = true;
_root.cal.info.wordWrap = true; //Ajuste de texto
_root.cal.info.autoSize = true; //Se muestra completo
_root.cal.info.selectable = false; //texto seleccionable, pues que no.
/*************************************
* Fecha y reloj
*************************************/
_root.cal.createEmptyMovieClip("reloj",1000);
_root.cal.reloj.createTextField("diayhora",7000,0,_root.cal._y+250,220,50);
_root.cal.reloj.onEnterFrame = function() {
var horario = new Date();
this.mesactual = horario.getMonth()+1;
this.anyoactual = horario.getFullYear();
this.hora = horario.getHours();
this.minuto = horario.getMinutes();
this.segundo = horario.getSeconds();
if (this.segundo<10) {
this.segundo = "0"+this.segundo;
}
if (this.minuto<10) {
this.minuto = "0"+this.minuto;
}
if (this.hora<10) {
this.hora = "0"+this.hora;
}
_root.cal.reloj.diayhora.text = " Hoy es "+ahora.getDate()+" del "+ this.mesactual +" de "+ this.anyoactual +" - Hora: "+ this.hora +" : "+ this.minuto +" : "+ this.segundo;
_root.cal.reloj.diayhora.aplicarFormato("Verdana",0x0066ff,8,true,"left");
_root.cal.reloj.diayhora.selectable = false;
}
}
cargaXml = function(fichero){
doc = new XML();
doc.ignoreWhite = true;
doc.load(fichero);
var nEventos = new Array();
doc.onLoad = function(){
_global.nEventos = doc.firstChild.childNodes;
//Comienzo del calendario:
var inicio = new Date();
this.anio = inicio.getFullYear();
this.mez = inicio.getMonth()+1;
/*Si quieres que inicialmente el calendario muestre un mes determinado
de cualquier año, sustituye en el siguiente renglón los parámetros
this.mez por el número del mes (ej: octubre = 10)
y this.anio por el número del año (ej: 2007),
Si no lo haces mostrará el mes en curso*/
d = new calendario(150,150,27,this.mez,this.anio);
d.pintaCalendario();
}
}
/*************************************
* Leer el xml
*************************************/
cargaXml("calendario.xml");
Si alguien puede ayudarme le estaría muy agradecido.
Un saludo.
