Foros del Web » Creando para Internet » Flash y Actionscript »

No puedo aceder a una variable public

Estas en el tema de No puedo aceder a una variable public en el foro de Flash y Actionscript en Foros del Web. Buenas! el problema es que kisiera editar una variable que tengo en una clase accedo a esta mediante un getChildByName() ya que la variable ke ...
  #1 (permalink)  
Antiguo 11/05/2011, 22:59
Avatar de asacura  
Fecha de Ingreso: diciembre-2007
Ubicación: leon, guanajuato
Mensajes: 71
Antigüedad: 16 años, 4 meses
Puntos: 0
No puedo aceder a una variable public

Buenas!
el problema es que kisiera editar una variable que tengo en una clase
accedo a esta mediante un getChildByName()
ya que la variable ke la creo se encarga de crear al resto de los npcs
el codigo es algo asi:
Código ActionScript:
Ver original
  1. for(var xgm:int=1; xgm <=100; xgm++){ trace('MDid_'+xgm);
  2.       if(vars['MDid_'+xgm]){ if(npc['tmpIdNpc_'+xgm]){ trace("No");
  3.          _mainMap.getChildByName("npc_"+npc['tmpIdNpc_'+vars['MDid_'+xgm]]).pos_x = vars['MDcorx_'+xgm];
  4.          _mainMap.getChildByName("npc_"+npc['tmpIdNpc_'+vars['MDid_'+xgm]]).pos_y = vars['MDcorx_'+xgm];
  5.       }else{ trace("Si 2");
  6.     _idNpc++;
  7.    var chuy:Npc = new Npc(vars['MDlifeb_'+xgm],vars['MDcorx_'+xgm],vars['MDcory_'+xgm],vars['MDname_'+xgm],1,1);
  8.    chuy.x = vars['MDcorx_'+xgm]; chuy.y = vars['MDcory_'+xgm]; chuy.name="npc_"+_idNpc;
  9.    npc['tmpIdNpc_'+vars['MDid_'+xgm]] = _idNpc;
  10.    _mainMap.addChild(chuy);
  11.    if(_idNpc==1){ _mainMap.addEventListener(Event.ENTER_FRAME, followInTheMap); }
  12.       } }else{
  13.          xgm+=100;
  14.       }
  15. }
es el ke se encarga de crear los npc
y el archivo clase de npc es:
Código ActionScript:
Ver original
  1. package
  2. {
  3.    import flash.display.MovieClip;
  4.    import flash.events.Event;
  5.    import flash.text.*;
  6.    
  7.    public class Npc extends MovieClip
  8.    {
  9.       public var life:Number;
  10.       public var pos_x:Number;
  11.       public var pos_y:Number;
  12.       public var rute:Number;
  13.       public var iniRuteTime:Number;
  14.       public var _name:String;
  15.       public var _move:Number;
  16.       private var speed:Number = (55/20);
  17.       private var posRuteX:Number;  
  18.       private var posRuteY:Number;
  19.       private var corx:Number;
  20.       private var cory:Number;
  21.       private var new_x:Number;  
  22.       private var new_y:Number;
  23.       private var new_x2:Number;  
  24.       private var new_y2:Number;
  25.       private var contenedor2:Number = 0;
  26.       private var contenedor:MovieClip = new MovieClip();
  27.       private var name_txt:TextField = new TextField();
  28.        
  29.       public function Npc(fLife:Number,fPosx:Number,fPosy:Number,fName:String,finiRuteTime:Number,fmove:Number)
  30.       {
  31.          _move = fmove;
  32.          _name=fName;
  33.          life = fLife;
  34.          pos_x = fPosx;
  35.          pos_y = fPosy;
  36.          iniRuteTime = finiRuteTime;
  37.          rute = 1;
  38.          iniRuteTime = 0;
  39.          if(fName=="55GK-Kurck"){ contenedor = new tileSet1(); }else
  40.          if(fName=="39UC-Typhoon"){ contenedor = new tileSet3(); }else
  41.          if(fName=="78CQ-Imperia"){ contenedor = new tileSet4(); }else
  42.          if(fName=="98CR-Metamoft"){ contenedor = new tileSet6(); }else
  43.          { contenedor = new tileSet100_rutenium(); }
  44.             contenedor.x=-50;
  45.             contenedor.y=-50;
  46.             contenedor.stop();
  47.          this.addChild(contenedor);
  48.          this.addEventListener(Event.ENTER_FRAME, actStatus);
  49.       }
  50.        
  51.       private function actStatus(e:Event):void
  52.       {
  53.          this.x=this.pos_x;
  54.          this.y=this.pos_y;
  55.          if(contenedor2==0){
  56.          name_txt.type=TextFieldType.DYNAMIC;
  57.          name_txt.text=_name;
  58.          name_txt.width=120;
  59.          name_txt.height=16;
  60.          name_txt.x=-60;
  61.          name_txt.y=50;
  62.          name_txt.selectable = false;
  63.          name_txt.textColor = 0x99FFFF;
  64.          name_txt.autoSize = TextFieldAutoSize.CENTER;
  65.          this.addChild(name_txt);
  66.          contenedor2++;
  67.          }
  68.          //Validamos ruta normal
  69.          if(rute == 1){ posRuteX=1000;posRuteY=1000; }
  70.          if(rute == 2){ posRuteX=2500;posRuteY=5000; }
  71.          if(rute == 3){ posRuteX=1700;posRuteY=200; }
  72.          if(rute == 4){ posRuteX=3080;posRuteY=2300; }
  73.          if(rute == 5){ posRuteX=4080;posRuteY=3500; }
  74.          if(rute == 6){ posRuteX=2050;posRuteY=4000; }
  75.          new_x = posRuteX-this.x;
  76.           new_y = posRuteY-this.y;
  77.           //Comprobamos que no se pase.
  78.           var absX:Number=Number(new_x.toString().split('-').join(''));var absY:Number=Number(new_y.toString().split('-').join(''));
  79. if(absX<=speed && absY<=speed){ if(rute!=6){rute++;}else{rute=1;} }else{
  80. if(absX<=(speed*3) && absY>speed){if(new_x>=0){new_x2 = new_x+speed; }else{ new_x2=new_x-speed;}new_y2=new_y;/*trace(new_x+","+new_y);trace(new_x2+","+new_y2);*/}else  
  81. if(absY<=(speed*3) && absX>speed){if(new_y>=0){new_y2=new_y+speed; }else{new_y2=new_y-speed; }new_x2 = new_x;/*trace(new_x+","+new_y);trace(new_x2+","+new_y2);*/}else{
  82. new_x2=new_x;new_y2=new_y;
  83. }
  84. }
  85. if(new_x2>=0){ corx=speed; }else{ corx = 0-speed; }
  86.          if(new_y2>=0){ cory=speed; }else{ cory = 0-speed; }
  87.          
  88.          if(corx < 0 && cory < 0){ this.contenedor.gotoAndStop('4'); }
  89.          if(corx >= 0 && cory < 0){ this.contenedor.gotoAndStop('3'); }
  90.          if(corx >= 0 && cory >= 0){ this.contenedor.gotoAndStop('2'); }
  91.          if(corx < 0 && cory >= 0){ this.contenedor.gotoAndStop('1'); }
  92.          
  93.          this.x = this.x+corx; this.y= this.y+cory;
  94.          pos_x = this.x; pos_y = this.y;
  95.       }
  96.        
  97.    }
  98. }

No se que estoy haciendo mal... por favor ayudenme : )
intento acceder a la variable pos_x y pos_y de esta forma
_mainMap.getChildByName("npc_"+npc['tmpIdNpc_'+vars['MDid_'+xgm]]).pos_x = vars['MDcorx_'+xgm];
_mainMap.getChildByName("npc_"+npc['tmpIdNpc_'+vars['MDid_'+xgm]]).pos_y = vars['MDcorx_'+xgm];
pero me da error
__________________
ASACURAGAMES Es un portal de juegos dedicado a crear juegos online
de rol (RPG'S) muy desafiadores y entretenidos
  #2 (permalink)  
Antiguo 12/05/2011, 11:29
Avatar de esdebon  
Fecha de Ingreso: agosto-2008
Ubicación: México
Mensajes: 167
Antigüedad: 15 años, 8 meses
Puntos: 18
Respuesta: No puedo aceder a una variable public

Veo que nadie responde, no creo tener la respuesta, pero puedo sugerirte que pruebes algunas cosas:


aplicale un trace a:

Código actionscript:
Ver original
  1. trace(npc['tmpIdNpc_'+vars['MDid_'+xgm]]))

Quizas la cadena no se forma bien

y de hecho podras ver la posicion de los elementos con:

Código actionscript:
Ver original
  1. trace(_mainMap.getChildByName("npc_"+npc['tmpIdNpc_'+vars['MDid_'+xgm]]).pos_x )

getChildByName

lo he usado para obtener valores de alguna propiedad de un movieclip, pero no estoy seguro si funciona tambien para asiganr valores...

quizas casteandolo a MovieClip...


Código actionscript:
Ver original
  1. MovieClip(_mainMap.getChildByName("npc_"+npc['tmpIdNpc_'+vars['MDid_'+xgm]])).pos_x = vars['MDcorx_'+xgm];

__________________
Mi sitio: http://www.fluocode.com

Etiquetas: public, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:06.