Comunidad de diseño web y desarrollo en internet online

Diagrama Liquido

Citar            
MensajeEscrito el 01 Oct 2009 09:08 pm
Hola, estoy haciendo un web con diagrama liquido, quiero situar 4 objetos, uno en cada esquin ad el apelicula, pero no puedo, alguien puede ayudarme en saber como puedo lograrlo?

Código ActionScript :

Stage.align = "TL";
Stage.scaleMode = "noScale";
var miListener:Object = new Object();
miListener.onResize = function() {
   uno._y = Stage.height-uno._height;
   uno._x = Stage.height-uno._height;
   dos._y = Stage.height-dos._height;
   dos._x = Stage.height-dos._height;
   tres._y = Stage.height-tres._height;
   tres._x = Stage.height-tres._height;
   cuatro._y = Stage.height-cuatro._height;
   cuatro._x = Stage.height-cuatro._height;
};
Stage.addListener(miListener);


Como vean el script es muy simple y sencillo pero solo el mc "cuatro" se alinea, a la esquina inferior derecha

Ojala me pudieran ayuda a la brevedad y gracias

Por Portero

8 de clabLevel



Genero:Masculino  

Hago como que diseño y como que programo.

firefox
Citar            
MensajeEscrito el 01 Oct 2009 10:43 pm
la coordenanda "x" es horizontal por lo que debes hacer tu cálculo con el ancho (width), el alto (height) es para "y" (vertical)

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 02 Oct 2009 07:58 am
Mira, yo puse esto y va genial, todos se ajustan a sus bordes, el único problema que está por solucionar es que cuando trato de reescalar manualmente la ventana (tirar de una esquina, por ejemplo) , los contendidos del contenedor se ponen donde quieren, y hay que entrar otra vez en la página para que esté bien. Ahí va el de stage principal:

Stage.scaleMode = "noScale";
Stage.align = "TL";
ancho_minimo = 800;
alto_minimo = 600;
clips_ajustables = new Array();
myListener = new Object();
Stage.addListener(myListener);
myListener.onResize = rec;
function rec() {
alto = Stage.height;
if (alto<alto_minimo) {
alto = alto_minimo;
}
ancho = Stage.width;
if (ancho<ancho_minimo) {
ancho = ancho_minimo;
}
for (var g = 0; clips_ajustables[g]; g++) {
clips_ajustables[g].alinear();
}
}
//altoTotal = System.capabilities.screenResolutionY;
//anchoTotal = System.capabilities.screenResolutionX;
//alto = stage.height;
//ancho = stage.width;
MovieClip.prototype.setAjuste = function(ajuste_x, ajuste_y, ajuste_width, ajuste_height) {
this.ajuste_x = ajuste_x;
this.ajuste_y = ajuste_y;
this.ajuste_width = ajuste_width;
this.ajuste_height = ajuste_height;
this.x0 = this._x;
this.y0 = this._y;
this.w0 = this._width;
this.h0 = this._height;
this.ajustePersonalizado = false;
clips_ajustables.push(this);
this.alinear();
};
MovieClip.prototype.alinear = function() {
if (this.ajuste_width) {
if (this.ajuste_width.indexOf("%") != -1) {
this._width = (_root.ancho*parseInt(this.ajuste_width))/100;
} else {
this._width = this.ajuste_width;
}
}
if (this.ajuste_height) {
if (this.ajuste_height.indexOf("%") != -1) {
this._height = (_root.alto*parseInt(this.ajuste_height))/100;
} else {
this._height = this.ajuste_height;
}
}
if (this.ajuste_x == "izquierda") {
this._x = this.x0;
}
if (this.ajuste_x == "derecha") {
this._x = Math.round(this.x0+(_root.ancho-_root.ancho_minimo));
}
if (this.ajuste_x == "centrar") {
this._x = Math.round((_root.ancho-this._width)*0.5);
}
if (this.ajuste_y == "arriba") {
this._y = this.y0;
}
if (this.ajuste_y == "abajo") {
this._y = Math.round(this.y0+(_root.alto-_root.alto_minimo));
}
if (this.ajuste_y == "centrar") {
this._y = Math.round((_root.alto-this._height)*0.5);
}
if (this.ajustePersonalizado) {
this.ajustar();
}
};


Luego, en el action script de cada movieclip pones esto:

onClipEvent (load) {
this.setAjuste("derecha", "arriba", false, false);
}
(se entiende que sustituiremos "derecha" , y "arriba", por lo que haga falta en cada momento, ya sea abajo derecha, arriba izquierda, o para el medio ponemos "centrar", "centrar".


(ese panel de actionscript es la flechita negra sobre fondo azul a la derecha del nombre del movieclip, que yo tardé una hora en encontrarlo, no sabía que existía)

Espero que te sirva, a mi me ha ayudado muchísimo.

Ah, ese código de arriba, el del escenario principal, va en el primer frame, en el segundo frame hay que escribir esto:

// ejecuto la función por primera vez para ajustar
rec();
stop();


Supongo que nasho y los demás aquí presentes sabrán para qué sirve eso, yo desde luego no, PERO FUNCIONA!

Por vivalkali

40 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Oct 2009 02:45 pm
mmm vivlakali, prueba con "enterFrame" en vez de "load"

Código ActionScript :

onClipEvent (enterFrame) {
this.setAjuste("derecha", "arriba", false, false);
}


y cuentas que sucede

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 02 Oct 2009 05:08 pm
Mh, hice ambas pruebas y con la opcion de Nacho mas o menos hace lo que quiero pero todo se va a la derecha abajo, como si la coordenada 0 estuviera invertida.

Y la opcion de vivalkali solo funciona para ponerme todo en top / center, y lo que necesito es que aun que haga mi ventana pequeña, todo se agrupe ahi, seguiré picandole, gracias por su ayuda.

Por Portero

8 de clabLevel



Genero:Masculino  

Hago como que diseño y como que programo.

firefox
Citar            
MensajeEscrito el 02 Oct 2009 05:32 pm
bueno tienes que hacer tus cálculos

Código ActionScript :

esquina_izquierda_superior._x = 0;
esquina_izquierda_superior._y = 0;

esquina_izquierda_inferior._x = 0;
esquina_izquierda_inferior._y = Stage.height-mc._height;


faltan 2, vas :)

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 02 Oct 2009 05:43 pm
Gracias nacho! voy a darle un rato aver que tal.

Por Portero

8 de clabLevel



Genero:Masculino  

Hago como que diseño y como que programo.

firefox
Citar            
MensajeEscrito el 05 Oct 2009 10:45 am
Nachooo! no me funciona así :( pongo lo de enterFrame y el video nada más empezar se descoloca, antes se descolocaba sólo cuando trataba, una vez abierto, de reescalar, ahora en cambio es nada más empezar cuando se va a tomar por culo, voy a subir la web y así veis qué pasa.

por cierto, tendrá que ver con esto el problema? es que antes quité todas las explicaciones que tenía mi código.

// si el clip tiene un ajuste especial ejecuto su función ajustar
// que hemos definido en el onClipEvent(load) del clip
if (this.ajustePersonalizado) {
this.ajustar();
}
};


Muchas gracias nasho!!

Por vivalkali

40 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Oct 2009 03:37 pm
Que tal vivalkali, pues es mejor lo que hace Portero ya que al reescalar la ventana está haciendo referencia a cada mc tu creaste una función para acomodarlos, y al reescalar no haces referencia a los mc's.

Para que se acomoden con tu función tienes que poner

Código ActionScript :

mc.setAjuste("derecha", "arriba", false, false); 

dentro de la función rec

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.