Comunidad de diseño web y desarrollo en internet online

Ayuda con Clases

Citar            
MensajeEscrito el 02 Jun 2006 01:52 am
Hola!

primero que nada me gustaria exhortar que estoy muy contento con haberme topado con este site de Tutorias de Action script en español. Tiene una comunidad y un repositorio muy grande y de muchisima ayuda. Espero que siga asi por mucho tiempo ^^

Bueno, ahora la pregunta:

yo he creado el siguiente codigo para hacer mi pregunta un poco mas clara ya que no encuentro como explicarla bien. El siguiente codigo es una version disminuida del real asi eliminando otras funciones, variables y expresiones que no son relevantes al problema.

Clase Character utilizada para crear uno o varios personajes

Código :

class character  {
   var nombre:String;
   var MP:Number;
   function character() {
      trace("New Character Created" );
   }
   function get info():Void {
      trace("Name:" + this.nombre + "   MP:" + this.MP);
   }
}



Esta clase la voy a utilizar como Battle Engine

Código :

class battle {
   var ofender:String
   var victim:String
   function battle() {
      trace("Battle Engine Loaded");
   }

 function attack(ofender, victim, go:Boolean):Number {
      if (go == true) {
         trace(ofender + " golpea a " + victim + " por X cantidad de DMG" );
         trace(ofender.MP);
      }
return
   }

}



Ahora por ultimo el Script Principal

Código :


import battle;
import character;
var player_battle:battle = new battle();
var player:character = new character();
var player2:character = new character();

player.nombre = "Sandra";
player.MP = 100

player2.nombre = "Luis";
player2.MP = 200

player_battle.attack(player, player2,true);



El problema es que cuando la funcion de player_battle.attack ejecuta el trace que me tira el Battle Class es el siguiente

[object Object] golpea a [object Object] por X cantidad de DMG

yo logro resolver eso si en el Script principal pongo en la funcion de player_battle.attack en ves de "player" o "player2" utilizo player.nombre o player2.nombre. Pero dentro de la script de la Clase de Battle quiziera utilizar una variable para identificar el objeto ya que va a pues variar hehe.

al utilizar trace(ofender.MP) dentro de la Clase de Battle me devuelve un "Undefined'.
Bueno esto es basicamente el problema. Espero que haya sido bastante claro con la pregunta.
Disculpen cualquier brutada que encuentren en el codigo solo llevo un mes utilizando AS
:oops:

Por D0Ze

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Jun 2006 02:13 am

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Jun 2006 02:45 pm
hehe si Me imagino ke debe estar lleno de muchas deficiencias. Lo triste es que ya me habia leido ese tutorial y pues gracias a el fue que conoci como utilizar los objetos en Flash. No que lo entienda en su totalidad pero me ha dado una vista mas clara de que son y como se utilizan. Si pudieras mencionar donde notas deficiencias te lo agradeceria mucho. Asi podria aprender que no hacer al momento de utilizar POO.

Gracias~

Por D0Ze

10 de clabLevel



 

firefox

 

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