Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/01/2010, 06:56
Avatar de junihh
junihh
 
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 9 meses
Puntos: 7
Respuesta: Problemas con el recalculo de la posicion de un layer

Gracias por responder @caricatos, pero ahora tengo un conflicto. Aqui como tengo la funcion ahora:

Código HTML:
function msgShow (msg)
{
    // Parametros usar: msgContenido, msgAncho, msgAlto, msgBotonClose, msgTimeClose
    //
    msgInf.style.width = (msg.msgAncho) ? msg.msgAncho + 'px' : 'auto';
    msgInf.style.height = 'auto';
    //
    if (msg.msgContenido) { msgInf.innerHTML = (msg.msgAlto) ? '<div style="height:' + msg.msgAlto + 'px;overflow:auto;padding-right:10px;">' + msg.msgContenido + '</div>' : msg.msgContenido; }
    //
    var posT = ((winWH('h') - msgInf.clientHeight) / 2);
    var posL = ((winWH('w') - msgInf.clientWidth) / 2);
    posT = posT - (msg.msgAlto / 2);
    posL = posL - (msg.msgAncho / 2);
    //
    msgInf.style.top = posT + 'px';
    msgInf.style.left = posL + 'px';
    //
    msgCls.style.top = (posT - 10) + 'px';
    msgCls.style.left = (posL - 10) + 'px';
    //
    msgFdo.style.display = 'block';
    msgInf.style.display = 'block';
    msgCls.style.display = (msg.msgBotonClose) ? 'block' : 'none';
    //
    clearInterval (msgInterCount);
    if (msg.msgTimeClose) { msgInterCount = setInterval(msgClose, msg.msgTimeClose * 1000); }
}
El caso es que en el ejemplo tengo dos botones: Uno muestra un mensaje de dialogo y otro muestra una barra de "waiting", los dos usos basicos que dare a esa funcion en este momento.

El dialogo se pega al tope de la ventana aunque se muestra centrada horizontalmente y la barra de "waiting" aparece en la misma posicion que lo hizo la de dialogo, por tanto no se actualizan individualmente.

Con este caso trate de aplicar un metodo similar al que uso en AS2 para centrar un objeto en la ventana, o sea:

Código HTML:
objeto._x = (Stage._width - objeto._width) / 2;
objeto._y = (Stage._height - objeto._height) / 2;
Como veras es un calculo bien simple, asegurandome que el punto central del objeto este en la esquina superior izquierda (como bien mencionas). Del centro estar en el propio centro del objeto, solo hago esto:

Código HTML:
objeto._x = Stage._width / 2;
objeto._y = Stage._height / 2;
Lo que recomiendas es lo mismo que haria en AS, pero por lo visto es un lio hacer que reconozca el calculo. Acaso lo aplique mal ??
__________________
JuniHH
- Mi blog
- Mi portafolio