Ver Mensaje Individual
  #27 (permalink)  
Antiguo 04/07/2008, 23:25
Avatar de daPhyre
daPhyre
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: [email protected] (Redirects to 127.0.0.1)
Mensajes: 2.404
Antigüedad: 16 años, 1 mes
Puntos: 142
De acuerdo Respuesta: ideas para crear un juego interactivo para niños

A tus dudas:

1) No era "onLoad", era onClipEvent (Load). Lo siento mucho, pero no manejo muy continuamente ActionScript, y olvido luego la forma correcta de llamar a todo

2) A "abs" se le debía llamar como Math.abs

3) Con el rápido Copy-Paste, olvidé que los dos && antes de cerrar el parentesis no van, lo siento

Bueno, creo que es tiempo de corregir algunos detallitos. Comencemos entonces:

En ga
Código:
//el código para cada silaba://
onClipEvent(load){
	this.inicioX = this._x;
	this.inicioY = this._y;
}
on (rollOver) {
	var music:Sound = new Sound();
	music.loadSound("ga.mp3",true);
	music.start(1);
}

on (press) {
	var music:Sound = new Sound();
	music.loadSound("ga.mp3",true);
	music.stop();

	this.startDrag(true);
}

on (release) {
	this.stopDrag();
	if (this.hitTest(_root.clip1) &&
					 Math.abs(this._x - _root.clip1._x) < this._width/2 &&
					 _root.clip1.ocupado == false) {
		this._x = _root.clip1._x;
		this._y = _root.clip1._y;
		_root.clip1.ocupado = true;
		_root.clip1._alpha = 100;
		
	}
	else if (this.hitTest(_root.clip2) &&
					 Math.abs(this._x - _root.clip2._x) < this._width/2 &&
					 _root.clip2.ocupado == false) {
		this._x = _root.clip2._x;
		this._y = _root.clip2._y;
		_root.clip2.ocupado = true;
		_root.clip2._alpha = 100;
	}
	else if (this.hitTest(_root.clip3) &&
					 Math.abs(this._x - _root.clip3._x) < this._width/2 &&
					 _root.clip3.ocupado == false) {
		this._x = _root.clip3._x;
		this._y = _root.clip3._y;
		_root.clip3.ocupado = true;
		_root.clip3._alpha = 100;
	}
	else if (this.hitTest(_root.clip4) &&
					 Math.abs(this._x - _root.clip4._x) < this._width/2 &&
					 _root.clip4.ocupado == false) {
		this._x = _root.clip4._x;
		this._y = _root.clip4._y;
		_root.clip4.ocupado = true;
		_root.clip4._alpha = 100;
	}
	else {
		this._x = inicioX;
		this._y = inicioY;
	}
	_root.revisar();
}
Repetir el procedimiento en revisar para cada una de las silabas.

En el frame inicial:
Código:
function limpiar() {
	_root.a._x = _root.a.inicioX
	_root.a._y = _root.a.inicioY
	_root.bri._x = _root.bri.inicioX
	_root.bri._y = _root.bri.inicioY
	_root.go._x = _root.go.inicioX
	_root.go._y = _root.go.inicioY
	
	_root.clip1.ocupado = false;
	_root.clip1._alpha = 50;
	_root.clip2.ocupado = false;
	_root.clip2._alpha = 50;
	_root.clip3.ocupado = false;
	_root.clip3._alpha = 50;
	_root.clip4.ocupado = false;
	_root.clip4._alpha = 50;
}

function revisar() {
	if ((
		 _root.a.hitTest(_root.clip1) &&
		 _root.bri.hitTest(_root.clip2) &&
		 _root.go.hitTest(_root.clip3)
		 ) || (
		 _root.a.hitTest(_root.clip2) &&
		 _root.bri.hitTest(_root.clip3) &&
		 _root.go.hitTest(_root.clip4)
		 )){
		loadmovie("abrigo.mov");
	}
}

limpiar();
Repite el procedimiento para todas las palabras.

Y por último, en un botón llamado "limpiar"
Código:
on(press){
	_root.limpiar();
}
Te dejo el ejemplo en los siguientes links:
http://mx.geocities.com/daphyreweb/test/darganddrop.swf
http://mx.geocities.com/daphyreweb/test/darganddrop.fla

Nota: Asegurate que haya suficiente espacio entre los "clip" o podrían chocar con una esquina casi invisible al ojo. Tardé horas en descubrir que estaba mal en mi código, y al final estaba bien

Cualquier duda me preguntas, ahora si estoy seguro que estará perfecto. ¡Mucha suerte!
__________________
<signs>daPhyre</signs>
Jugaa.me


Adios al dolor de cabeza de IE...

Última edición por daPhyre; 04/07/2008 a las 23:31