Mira, te lo voy a explicar bien.
Lo primero
Tachikomaia escribió:
¿Por qué corno tenés que hacer un juego y no tenés ni idea de cómo empezar? Suena a que es para un curso al que hasta ahora no le prestaste atención.
Eso es algo que ni a tí ni a mí nos incunde, para responder algo así es mejor que te calles y no digas nada, lo digo por tí.
Tachikomaia escribió:
No sé sobre functions, import, etc,
¿Entonces para que te metes en un tema que trata de funciones?, again hubiese sido mejor callarse.
Tachikomaia escribió:
pero parece que el if está mal puesto, o sea, que yo sepa no puede líneas vacías entre las partes del cñodigo, además está más en la derecha de lo normal (parece).
El if está perfectamente puesto, y las tabulaciones no afectan en nada al código, de nuevo hubiese sido mejor mantener la boca cerrada.
Tachikomaia escribió:
Otra cosa que me parece es que el alfa funcionaría cuando el clip está en a la izquierda de algo, es lo que parece. No se te va a cambiar sólo por mover el mc, sino por ponerlo a la izq de algo (desde una línea vertical, para ser más exactos).
No, no es lo que parece, lo que parece es que cuando la posicion x del objeto que estás moviendo supere el registro x 50 de la película cambiará, por lo que si va a cambiar con sólo mover el mc, así que no depende de ningún objeto, de nuevo un silencio hubiese sido maravilloso.
Tachikomaia escribió:
Puede que falte la _ a la x, es .x_ creo
Y el alfa yo acostumbro a que vaya de 0 a 100, entre 0.5 y 1 al menos en mi flash no haría diferencia que yo sepa.
Desde AS3, ya no se usa "_" y el alfa de 0 a 1, si desconoces algo, intenta evitar malinformar. Además no se ponía detrás de la propiedad, se ponía delante '_x, _y, _alpha'. Silencio divino tesoro...
Tachikomaia, ¿Esto que nos deja?, usabilidad de tu post 0.00000000000000%%% increíble.
Bueno ahora vamos a ver la consulta que hacías, te lo explico todo en el código, por supuesto puede contener errores, pues yo tampoco soy un hacha, aunque no creo que te desinforme demasiado o tanto como Tachikomaia:
Código ActionScript :
//Lo primero en AS3 es importar siempre todas las clases que vallas a usar
//en este caso MouseEvent y MovieClip,
//aún no he usado textos en as3, por lo que no se si también habría que importar textField
import flash.events.MouseEvent;
import flash.display.MovieClip;
//Aunque tengas los elementos en el escenario, es bueno declararlos en variables
//Y decirle al compilador como que ha de tratar esa variable
var objetoA:MovieClip = getChildByName('c1') as MovieClip;
//Si quieres que salga la manita activas el modo button mode
objetoA.buttonMode = true;
//Agregas sólo el listener del MOUSE_DOWN
//Esto es debido a que de momento MOUSE_UP es un listener innecesario
//Así que lo vincularemos cuando hagamos click en el objeto
objetoA.addEventListener(MouseEvent.MOUSE_DOWN, mover);
function mover(Event:MouseEvent):void{
//Ahora lo que hacemos es recoger el evento de los parámetros
//Y su objetivo, en este caso 'c1' lo almacenamos en una variable
//miMC en este caso
var miMC:MovieClip = Event.target as MovieClip;
//Ahora los listeners hay varias cosas a saber
//Lo primero eliminaremos el MOUSE_DOWN, pues ya no nos hará falta
//por lo menos hasta que soltemos el objeto
miMC.removeEventListener(MouseEvent.MOUSE_DOWN, mover);
//Ahora le agregamos al stage el MOUSE_UP
//¿Por que al stage?
//Bueno el movieCLip lo podrías estar moviendo tan rápido
//que al soltar el click, el movie clip aún no estuviese bajo el mouse
//con lo que miMC no dispararía el evento, sin embargo, hagas lo que hagas, stage lo captará
stage.addEventListener(MouseEvent.MOUSE_UP, soltar);
//Y por último le añadimos otro listener al mc MOUSE_MOVE
//Que se disparará cada vez que movamos el mc,
//y ejecutará la funcion obtenerPropiedades,
//que se encargara de detectar la posicion del mc y cambiar su alfa y el texto
miMC.addEventListener(MouseEvent.MOUSE_MOVE, obtenerPropiedades);
//Y por último lo arrastramos
miMC.startDrag();
}
function soltar(Event:MouseEvent):void{
//Lo mismo que antes almacenamos el objetivo del evento del mouse en una variable
//Antes no lo he dicho, pero de esta manera la función nos valdrá para cualquier mc que arrastremos
//sin necesidad de volver a escribir la función
var miMC:MovieClip = Event.target as MovieClip;
//Lo primero que hacemos es quitar el listener de stage pues ya no lo necesitaremos
//por lo menos hasta que lo volvamos a arrastrar
//en cuyo caso lo activara la funcion mover
stage.removeEventListener(MouseEvent.MOUSE_UP, soltar);
//Le quitamos tambien el listener MOUSE_MOVE a obtenerPropiedades
miMC.removeEventListener(MouseEvent.MOUSE_MOVE, obtenerPropiedades);
//Y por último le volvemos a activar el MOUSE_DOWN por si lo queremos volver a mover
miMC.addEventListener(MouseEvent.MOUSE_DOWN, mover);
//Y cómo no, dejamos de arrastrarlo
miMC.stopDrag();
}
//Esta función saltará cada vez que el mc que estemos arrastrando se mueva
function obtenerPropiedades (evento:MouseEvent):void {
//Como siempre almacenamos el objetivo
var miMC:MovieClip = evento.target as MovieClip;
//Ahora hacemos el condicional, daría igual dejarlo en 5 líneas,
//yo lo pongo en 2, por que mirando grandes bloque de código me ayuda a reconocerlos mejor
if (miMC.x <= 50) {miMC.alpha = 0.5}
else {miMC.alpha = 1}
//Y por último cambiamos el texto
texto.text = String(miMC.x));
}
Espero te sirva,
Un saludo.