Ejemplos y ejercicios de funciones resueltos

Aquí encontraréis los ejercicios del capitulo de funciones funciones resueltos, además de una solución para la práctica III (ejercicio 6)

  1. Escribir una función que sume 2 números:

    	function suma(a:Number, b:Number):Number {
    		var laSuma:Number = a + b;
    		return laSuma;
    	}
    	var num1:Number = 10;
    	var num2:Number = -7;
    	var miSuma:Number = suma(num1, num2); 
    	trace("La suma de", num1, "y", num2, "da", miSuma);
    	
  2. Escribir una función que multiplique dos números y devuelva el resultado. Combrueba que funciona.

    	function multiplica(a:Number, b:Number):Number {
    		var elProducto:Number = a * b;
    		return elProducto;
    	}
    	var num1:Number = 10;
    	var num2:Number = -7;
    	var miProducto:Number = multiplica(num1, num2); 
    	trace("La multiplicación de", num1, "y", num2, "da", miProducto);
    	
  3. Escribir una función que reciba como parámetros un MovieClip, y unos valores mínimo y máximo para su escala. La función debe escalar de forma aleatoria el MovieClip recibido, entre los valores recibidos, preservando la relación de aspecto
    … coming soon …
  4. Escribir una función que reciba como parámetros un MovieClip, y unas coordenadas x e y mínimas y máximas.
    La función debe colocar el MovieClip recibido entre las coordenadas recibidas de forma aleatoria.
    … coming soon …
  5. Utiliza la función colocarInstanciaEnEscena junto con un bucle para colocar 8 estrellas girando sobre sí mismas, en las posiciones que quieras de la pantalla
    … coming soon …
  6. Crea un símbolo de forma que en cada fotograma contenga la cara correspondiente al número del fotograma de un dado.
    Exportalo para actionscript.
    Después haz un programa que añada cuatro instancias del dado a la escena y que haga tiradas de 4 dados utilizando las funciones que hemos visto.
    En la práctica, adeás había que añadir dos botones que controlaran los dados:
    [gigya src=”https://dl.dropboxusercontent.com/u/3646945/newbeForever/esne/dadosBotones.swf” width=”600px” height=”400px”]
    Descargar el .fla
    Y aquí está el código, utilizando al máximo el poder de las funciones:

    	// Funciones
    
    	function calculaNumeroAleatorio(min:int, max:int, entero:Boolean):int {
    		var aleatorio:int = Math.floor(Math.random()*(max - min + 1) + min)
    		return aleatorio;
    	}
    
    	function colocarInstanciaEnEscena(Clase:Class, posicionX:Number, posicionY:Number):MovieClip {
    		var instancia:MovieClip = new Clase();
    		instancia.x = posicionX;
    		instancia.y = posicionY;
    		addChild(instancia);
    		return instancia;
    	}
    
    	function paraDados():void {
    		var fotograma:int = calculaNumeroAleatorio(1,6,true);
    		dado1.gotoAndStop(fotograma);
    		fotograma = calculaNumeroAleatorio(1,6,true);
    		dado2.gotoAndStop(fotograma);
    		fotograma = calculaNumeroAleatorio(1,6,true);
    		dado3.gotoAndStop(fotograma);
    		fotograma = calculaNumeroAleatorio(1,6,true);
    		dado4.gotoAndStop(fotograma);
    	}
    
    	function tiraDados():void{
    		dado1.play();
    		dado2.play();
    		dado3.play();
    		dado4.play();
    	}
    
    	function cuandoHagaClick(e:MouseEvent):void {
    		e.target.gotoAndPlay("click");
    		if(e.target.name == "iniciar_btn"){
    			tiraDados();
    		} else if(e.target.name == "parar_btn"){
    			paraDados();
    		}
    	}
    
    	function punteroEncima(e:MouseEvent):void {
    		e.target.gotoAndStop("rollOver");
    	}
    
    	function punteroFuera(e:MouseEvent):void {
    		e.target.gotoAndStop("normal");
    	}
    
    	// Programa principal
    
    	var dado1:MovieClip = colocarInstanciaEnEscena(Dado, 200, 100);
    	var dado2:MovieClip = colocarInstanciaEnEscena(Dado, 400, 100);
    	var dado3:MovieClip = colocarInstanciaEnEscena(Dado, 200, 250);
    	var dado4:MovieClip = colocarInstanciaEnEscena(Dado, 400, 250);
    
    	parar_btn.addEventListener(MouseEvent.MOUSE_OVER, punteroEncima);
    	parar_btn.addEventListener(MouseEvent.MOUSE_OUT, punteroFuera);
    	parar_btn.addEventListener(MouseEvent.CLICK, cuandoHagaClick);
    	iniciar_btn.addEventListener(MouseEvent.MOUSE_OVER, punteroEncima);
    	iniciar_btn.addEventListener(MouseEvent.MOUSE_OUT, punteroFuera);
    	iniciar_btn.addEventListener(MouseEvent.CLICK, cuandoHagaClick);
    
    	// Paramos los dados nada más empezar
    	paraDados();
    	

    De hecho está sería la respuesta para el siguiente ejercicio.

  7. Trata de optimizar el programa anterior de forma que tengas que repetir la menor cantidad de instrucciones, modificando las funciones que hemos visto según creas necesario.
  8. Ver solución ejercicio anterior

  9. Escribir una funcion que calcule la distancia entre dos puntos. La función debe recibir las cordenadas x e y de los dos puntos para funcionar. (Ver Distancia entre dos puntos))
    … coming soon …
  10. Escribir una funcion que calcule la distancia entre dos instancias de MovieClip. La función debe recibir las dos instancias como parámetros.
    … coming soon …

Volver al Índice

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *