He creado dos clases: Dia, que dibuja un recuadro con un ancho dado y un campo de texto con el día de la semana especificado, y Semana, que debe calcular su ancho al 90% con respecto al clip que lo contiene (el clip ppal), crear 7 objetos de la clase Dia y colocarlos secuencialmente de forma horizontal.
Os pongo el código que he hecho a ver si podeis ayudarme:
Código PHP:
class Dia {
private var ancho:Number;
private var recuadro:MovieClip;
private var campoTexto:TextField;
public function Dia(textoDia:String, ancho:Number, posX:Number, posY:Number, padre:MovieClip) {
recuadro = padre.createEmptyMovieClip("dia", padre.getNextHighestDepth());
recuadro._x = posX;
recuadro._y = posY;
dibujarRecuadro(ancho);
anyadirCampoTexto(textoDia);
}
private function dibujarRecuadro(ancho:Number) {
recuadro.lineStyle(1,0x0000cc,100);
recuadro.beginFill(0xcccccc,100);
recuadro.moveTo(0,0);
recuadro.lineTo(ancho,0);
recuadro.lineTo(ancho,50);
recuadro.lineTo(0,50);
recuadro.lineTo(0,0);
recuadro.endFill();
}
private function anyadirCampoTexto(texto:String) {
var anchoCampoTexto:Number = recuadro._width*90/100;
trace('Ancho dia: ' + recuadro._width + ', Ancho Campo Texto: ' + anchoCampoTexto);
var posicionX:Number = (recuadro._width - anchoCampoTexto) - (recuadro._width - anchoCampoTexto)/2;
campoTexto = recuadro.createTextField('textoDia', recuadro.getNextHighestDepth(), posicionX, 20, anchoCampoTexto, 20);
campoTexto.text = texto;
campoTexto.background = true;
campoTexto.backgroundColor = 0xffffff;
}
}
Código PHP:
class Semana {
private var ancho:Number;
private var listaDias:Object;
public function Semana(padre:MovieClip) {
var arrayDeDias:Array = new Array('lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo');
ancho = calcularAncho(padre);
trace('Ancho semana: ' + ancho);
var anchoDia:Number = calcularAnchoDia(arrayDeDias.length);
trace('Ancho dia: ' + anchoDia);
poblarSemana(anchoDia, arrayDeDias, padre);
}
private function calcularAncho(padre:MovieClip):Number {
return padre._width*90/100;
}
private function calcularAnchoDia(numDias:Number):Number {
return ancho/numDias;
}
private function poblarSemana(anchoDia:Number, dias:Array, padre:MovieClip) {
listaDias = new Object();
var diaActual:Dia;
listaDias.dias = dias;
listaDias.contenedorDias = new Object();
for (var i:Number = 0; i < dias.length; i++) {
var nombreDiaActual:String = dias[i];
diaActual = new Dia(nombreDiaActual, anchoDia, anchoDia*i, 0, padre);
listaDias.contenedorDias[nombreDiaActual] = diaActual;
}
trace(listaDias);
}
}
Código PHP:
var miSemana:Semana = new Semana(this);
Sólo teneis que fijaros en el constructor de Semana y el método calcularAncho() porque el error debe estar ahí.
Por lo demás, he hecho pruebas con la clase Dia unicamente, y me funciona bien. P.ej:
Código PHP:
var miDia:Dia = new Dia("sabado",100,0,0,this);