Comunidad de diseño web y desarrollo en internet online

como obtener un valor apartir del stage

Citar            
MensajeEscrito el 15 Feb 2008 06:39 pm
estaba tratando de obtener un valor numérico a partir de una variable y el tamaño del stage

si el stage cambia de tamaño, el valor debe cambiar, si el tamaño era 800 en x y se redimensiona a 900, quiero que la variable capte este cambio, y si mi variable era asi

Código :

var tamañostagex:Number
tamañostagex = Stage.width;
entonces como hago para que cuando se cambie el tamaño del stage cambie el numero?, la verdad es que soy muy nuevo en AS2, si alguien me ayuda gracias :lol:

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 15 Feb 2008 07:09 pm
Debes crear un escuchador para el Stage.
te recomiendo que no uses la letra ñ para nombrar variables mejor nombrala en ingles sizestagex..

Código :

var sizestagex:Number = 0;
var pantalla:Object = new Object();
pantalla.onResize = function() {
   trace(Stage.width);
   sizestagex = Stage.width;
}
Stage.addListener(pantalla);

Saludos!!!
:wink:

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 15 Feb 2008 07:35 pm
oh ok entiendo, y si el valor de sizestagex lo quiero incluir en una formula?, tiene que ver con un tutorial que hay de un menú con efecto de easing, donde al hacer click a un boton, mandas la posición en x en que debe posicionarse un MC, entonces estaba probando hacer una formula para que cuando se haga mas grande la ventana se posicione en el centro, no se si me explico, entonces la funcion de cada boton es esta:

Código :

a_btn.onRollOver = function() {
   clip_mc.x=0;
}

b_btn.onRollOver = function() {
   clip_mc.x=-800;
}
c_btn.onRelease = function() {
   clip_mc.x=-1600;
}


entonces lo que se me habia ocurrido para que cuando se haga mas grande el stage, poniendo de ejemplo que el stage tiene un tamaño original de 800 x 600 px, entonces al redimensionarlo a 900 y presionar el botón a_btn envia el movieclip hacia la posicion x=0 pero le sobran 100 px del lado derecho, para corregirlo pense en poner una formula matemática, la posicion de x debería ser x=0+(sizestagex-800)/2, dando asi con el ejemplo de sizestagex900 px x=0+(900-800)/2 osea x=50

probé hacerlo de esta forma según el escuchador que me enseñaste.

Código :

a_btn.onRelease = function() {
   clip_mc.x=0+(sizestagex-800)/2);
}
b_btn.onRelease = function() {
   clip_mc.x=-800+(sizestagex-800)/2);
}
c_btn.onRelease = function() {
   clip_mc.x=-1600+(sizestagex-800)/2);
}


pero no me funciona bien, me imagino que no esta tomando el valor de sizestagex

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 15 Feb 2008 08:06 pm
bueno, el problema con utilizar los valores que se generan por el tamaño del Stage es que en su tamaño normal funcionan las posiciones "normal" pero al maximizar la ventana lo que hace es mantener la posición 0 en el aire y generar espacio entes de la posición cero (0) entonces la esquina superior izquierda del SWF se convierte en -100, -125... -500, etc, cuando lo que se quiere es que sea siempre cero (0). Este valor se arregla con una de las propiedades del Stage:

Código :

Stage.align = "TL";

Esto ajusta siempre la posición cero (0) en la esquina que necesitamos, pero aún queda faltando otro problema y es que el swf se autoajusta al tamaño.... Error, porque la idea es que siempre sea 100% de su tamaño original entonces:

Código :

Stage.scaleMode = "noScale";

Ahora lo que sigue sería acomodar de nuevo los valores que necesitas para tu movieClip y organizar un poco el código porque te faltan paréntesis.

Código :

Stage.align = "TL";
Stage.scaleMode = "noScale";
//-----------------------------------
var sizestagex:Number = 0;
var pantalla:Object = new Object();
pantalla.onResize = function() {
   trace(Stage.width);
   sizestagex = Stage.width;
}
Stage.addListener(pantalla);
pantalla.onResize();
//-----------------------------------
a_btn.onRelease = function() {
   clip_mc.x = ((sizestagex-800)/2);
};
b_btn.onRelease = function() {
   clip_mc.x = ((-800)+(sizestagex-800)/2);
};
c_btn.onRelease = function() {
   clip_mc.x = ((-1600)+(sizestagex-800)/2);
};
clip_mc.x = 0;
clip_mc.onEnterFrame = function() {
   this._x += (this.x-this._x)*0.3;
};

Saludos!!!
;)

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 15 Feb 2008 08:32 pm
siiii, ya funciona, hoy me has ayudado muchisimo, si le habia colocado Stage.align = "TL" y Stage.scaleMode = "noScale", solo que no sabía que si no lo haces los valores del x se vuelven en -100 y mas, y ahora gracias a vos, ya puedo asignar numeros variables para el stage, eso me va a servir muchisimo para seguir aprendiendo AS2, ojalá hubiera alguien aqui en mi país que me enseñara como vos. eso es lo que me encanta de clab, que puedo aprender de personas fuera de mi pais. GRACIAS :lol:

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 15 Feb 2008 08:36 pm
JEjej.. de nada y te digo algo... casi todo lo que sé es por CL y sigo con el mismo pensamiento desde que empece en el foro "la idea es que aprendamos de los problemas de todos" y que entre todos le busquemos la solución.
Saludos!!
;)

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 15 Feb 2008 08:40 pm
me parece tu ideología, yo por eso estoy tratando de colaborar con el foro de diseño, y publiqué un tip sobre illustrator cs3, ya que es lo que domino, y me gustó mucho que me agradecieran haber colaborado con eso. siempre muchas gracias.

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 15 Feb 2008 10:02 pm
mirá, disculpá que te siga molestando, probé añadir otro escuchador, para ubicar siempre mi mc al centro respecto a la posición del eje Y, pero tambien me di cuenta que el código que me enseñaste funciona perfectamente, pero cuando ya esta ubicado en la posición que uno desea, y luego vuelve a redimensionar se queda en la ultima posición dejando el espacio que da la variable y del lado derecho un espacio mas grande, entonces se me ocurrió hacer esto:

Código :

//------------------------------------

sizeListener = new Object();
sizeListener.onResize = function() {
clip_mc._y = (Stage.height/2);
clip_mc._x = (botones+(Stage.height-800)/2);
};

Stage.addListener(sizeListener);

//-------------------------------------------
, entonces con esto quería que según la posicion en que se encuentre se centre de igual manera cuando el stage cambie, lo que se me ocurre es que cuando se le dé click a cada botón cambie el valor de la variable botones, osea si se le dá click a el a_btn el valor de botones va a ser cero, si se le dá click a b_btn el valor de botones será -800, pero traté de hacer la variable botones y no me salió

probé hacer la variable así, pero ya ni la seguí por que me tiraba un sinfin de errores

Código :

//-----------------------------
var botones:Number = 0;
var soltar:Object = new Object();
a_btn.onRelease= function(); {
   
   botones = 0;
}
b_btn.onRelease= function(); {
   
   botones = -800;
}
Stage.addListener(soltar);
soltar.onRelease();

//-------------------------
entonces como puedo hacer para tener mi variable botones dependiendo de a que botón le haga click

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox
Citar            
MensajeEscrito el 15 Feb 2008 10:24 pm
ya logre obtener el valor de cada botón, pero no me sele lo de size listener, a cada botón le puse esto:

Código :

d_btn.onRelease = function() {
   clip_mc.x=((-2400)+(sizestagex-800)/2);
   var botones:Number = -2400;
   trace(botones);
};

y si me da el valor de cada boton con la variable botones, pero al hacer el escuchador para la posicion no me sale.

Código :

sizeListener = new Object();
sizeListener.onResize = function() {
clip_mc._y = (Stage.height/2);
clip_mc._x = ((botones)+(Stage.width-800)/2);
};

Stage.addListener(sizeListener);
, que estaré haciendo mal?

Por el_chejin

Claber

725 de clabLevel

4 tutoriales

Genero:Masculino  

En mi nave Espacial

firefox

 

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