(AS MX) mouse trail con valores absolutos
tengo un mouse trail hecho con un MC llamado trail y animado asi
trail._x = _xmouse;
trail._y = _ymouse;
estoy atontao, tanto tiempo sin abrir el flash en condiciones... como leches se hacía para que esas coordenadas no tengan decimales?
otra cosa, esta un poco mas "pro" :)
tengo un swf implementado en toda la pantalla sin escalar, como los buenos :) pero quiero poder posicionar elementos en la pantalla dependiendo de la redimension del navegador (como si de una tabla html con valores % se tratase) alguien sabe como va la relacion entre navegador y comportamiento de elementos del swf? esto es too advanced para mi ;)
mas o menos como el crack ese de las news de google, o la web del macba, que segun el tamaño de la ventana pinta un layout u otro.
black
Math.round(valor);
redondea los valores... de lo otro no se... nunca he utilizado eso :)
jesusgollonet
A tu segunda pregunta:
Has de utilizar la clase Stage, que es la que se refiere a el swf entero (A partir del MX, creo recordar). Deberías añadir un listener (Stage.addListener) para que el flash "escuche" que estás escalando la pantalla y un evento (Stage.onResize) para que haga algo en consecuencia. De todos modos mirate la clase Stage en el diccionario de actionscript.
Espero haberte ayudado, el newsmap te explico otro día como se hace, jejej.
Salud
la_fayette
pedro, basicamente tienes que utilizar:
Math.floor(valor)
El metodo Math.round() lo que hace es redondear el valor hacia el numero entero mas cercano, es decir:
Math.round(5.7)--> te retornara el valor 6
Math.round(5.4)--> te retornara el valor 5
//
Math.floor(5.7)--> te retornara el valor 5
Math.floor(5.4)--> te retornara el valor 5
En cuanto a la segunda cuestion seria de la siguiente manera:
<code>
Stage.scaleMode = "noScale";
Stage.align = "tl";
this.onResize = function() {
reposicionar();
};
Stage.addListener(this);
reposicionar = function () {
sW = (Stage.width/2);
sH = (Stage.height/2);
//aqui calculas como quieres reposicionar el clip
clip._x=sW+10
clip._y=sH+10
};
</code>
Y en el html debe ser de la siguiente manera:
<code>
<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
WIDTH="100%" HEIGHT="100%" id="index" ALIGN="">
<PARAM NAME=movie VALUE="index.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="index.swf" quality=high bgcolor=#FFFFFF WIDTH="100%" HEIGHT="100%" NAME="index" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>
</BODY>
</HTML>
</code>
Si no te aclaras muy bien aqui te puedes bajar un ejemplo que te he preparado:
http://www.arenagroove.org/luis/testarea/resize.zip
;)
playground
También se puede usar 'int(numero_decimal)' no?
la_fayette
Si, se puede usar int(), ademas en un calculo gordo ejecuta mas rapido que Math.floor(), e incluso si deseas usar Math.floor y acelerar el calculo pueedes esquivar el acceso continuo al objeto Math simplemete declarando el el metodo como una variable:
Aqui va un enlace interesante en cuanto a optimizacion de codigo en flash:
http://www.gotoandplay.it/_articles/2004/01/as_optimizations.php
pedro_fm
así da gusto :)
ala, ya estoy de vuelta de las minivacaciones... y que alegría leer soluciones y no marrones ;)
gracias a todos. lo de Stage tiene pinta de dar muuuuucho juego