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

Problema accediendo a texto desde funcion

Estas en el tema de Problema accediendo a texto desde funcion en el foro de Flash y Actionscript en Foros del Web. Hola amigos, Este problema en realidad me esta sacando canas nuevas, tengo dos archivos Menu.fla y Menu.as donde pongo mis funciones. En el primer fotograma ...
  #1 (permalink)  
Antiguo 17/06/2011, 16:24
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema accediendo a texto desde funcion

Hola amigos,

Este problema en realidad me esta sacando canas nuevas, tengo dos archivos Menu.fla y Menu.as donde pongo mis funciones. En el primer fotograma de Menu.fla he puesto el siguiente código:


Código:
var campo:TextField=new TextField();
campo.text="Campo de texto";
campo.x = 300;
campo.name = "campoTexto";
addChild(campo);
Donde declaro un campo de texto nuevo. En Menu.as, tengo un codigo que lee un XML y crea un menu dinamico:

Código:
private function montar():void {
			
			var boton:ElementoMenu;
			for (var i:uint = 0; i < datos.elementos.elemento.length(); i++) {
				boton = new ElementoMenu();
				boton.Texto_txt.text = datos.elementos.elemento[i].titulo;
				boton.enlace = datos.elementos.elemento[i].enlace;
				boton.y = i * 25
				boton.buttonMode = true;
				boton.mouseChildren = false;
				boton.addEventListener(MouseEvent.CLICK, navegar);
				addChild(boton);
			}
		}
		
		private function navegar(e:MouseEvent):void {
			this.campoTexto.text = (e.currentTarget.enlace);
			//trace(e.currentTarget.enlace);
		}
Saca el siguiente error: 1119: Acceso a una propiedad campoTexto posiblemente no definida mediante una referencia con tipo estático MenuDinamico.

Cuando hago el trace (ver que esta comentado) me saca el texto del enlace que necesito, pero cuando intento ponerlo en ese Textfield del fotograma 1 de Manu.fla no me deja .... he intentado de todo .... alguna idea nueva?? Gracias.
  #2 (permalink)  
Antiguo 19/06/2011, 07:20
Avatar de SinguerInc  
Fecha de Ingreso: octubre-2007
Ubicación: Barcelona, España
Mensajes: 551
Antigüedad: 17 años, 1 mes
Puntos: 5
Respuesta: Problema accediendo a texto desde funcion

El problema que tienes no es que no esté definida sino que es una propiedad "privada". Para poder acceder a esta propiedad, en tu "ElementoMenu" deberías definir una variable "publica" del siguiente modo:

public var campoTexto:TextField;

y utiliza esta directamente para crear el textfield:

campoTexto=new TextField();
campoTexto.text="Campo de texto";
campoTexto.x = 300;
addChild(campoTexto);

Saludos.
Mi blog sobre Actionscript
__________________
/blog.singuerinc.com
  #3 (permalink)  
Antiguo 19/06/2011, 22:02
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema accediendo a texto desde funcion

Gracias por responder. Mira el error que me saca al incluir el public:

1114: El atributo public sólo se puede utilizar dentro de un paquete.

Que podrá ser??
  #4 (permalink)  
Antiguo 20/06/2011, 09:35
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema accediendo a texto desde funcion

Hola millyway343 !

Podrías poner el código completo de la clase Menú ?, sería de gran ayudar para ver cual es tu problema.

Un saludo y suerte !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #5 (permalink)  
Antiguo 21/06/2011, 14:35
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema accediendo a texto desde funcion

Este es el código:

package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

public class MenuDinamico extends Sprite
{

public var datos:XML;

public function MenuDinamico()
{
cargarDatos();
}

private function cargarDatos():void {

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, cargado);
loader.addEventListener(IOErrorEvent.IO_ERROR, error);
loader.load(new URLRequest("datos.xml"));

}

private function error(e:IOErrorEvent):void {

trace("error al cargar el XML: " + e);

}

private function cargado(e:Event):void {

datos = new XML(e.target.data);

var logo:logoSena;
logo = new logoSena();
logo.x = 415.9;
logo.y = -94.4;
addChild(logo);

var back:backBlue;
back = new backBlue();
back.x = 909.8;
back.y = -18.4;
addChild(back);

var myTween = new Tween(logo, "y", Strong.easeInOut, -94.4,87.1, 10, false);

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
function onFinish(e:TweenEvent):void {
var myTween = new Tween(logo, "x", Bounce.easeOut, 415.9,64.5, 10, false);
myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish2);
}

function onFinish2(e:TweenEvent):void {
var myTween = new Tween(back, "x", Strong.easeOut, 909.8,258.8, 5, false);
myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish3);
}

function onFinish3(e:TweenEvent):void {
montar();
}
}

private function montar():void {

var xx = 152.8;
var yy = 250;
var boton:ElementoMenu;
for (var i:uint = 0; i < datos.temas.tema.length(); i++) {
boton = new ElementoMenu();
boton.img.Texto_txt.text = datos.temas.tema[i].titulo;
boton.enlace = datos.temas.tema[i].tipo;
boton.x = xx;
boton.y = yy;

yy = yy + 50;
boton.buttonMode = true;
boton.mouseChildren = false;
boton.addEventListener(MouseEvent.CLICK, navegar);
addChildAt(boton,1);
}
}

private function navegar(e:MouseEvent):void {
trace(TextField(stage["campo"]).text);
//setDisplay(ppalTexto);
//MovieClip(root).texto.mainText.text = "hola";
//trace(e.currentTarget.enlace);
}



}

}

Como pueden ver la funcion navegar es la crucial. Allí van todos mis intentos comentados sin éxitos con ninguno. Gracias por al ayuda.
  #6 (permalink)  
Antiguo 21/06/2011, 17:07
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: Problema accediendo a texto desde funcion

Hola millyway343 !

Revisando la clase Menú Dinámico en el método navegar tienes:

Código actionscript:
Ver original
  1. this.campoTexto.text = (e.currentTarget.enlace);

Pero no tienes ningún atributo definido campoTexto, ese atributo lo tienes declarado en algún otra parte ?, me imagino que lo debes de tener en la clase ElementoMenu si no me equivoco.

Un saludo y suerte !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #7 (permalink)  
Antiguo 22/06/2011, 13:56
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema accediendo a texto desde funcion

Gracias por responder!

No, este campo lo tengo declarado en el fotograma 1 de Menu.fla. Allí se encuentra suelto. Ojala me puedas dar alguna luz. Saludos!
  #8 (permalink)  
Antiguo 25/06/2011, 13:39
 
Fecha de Ingreso: junio-2011
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema accediendo a texto desde funcion

Alguien me echa una mano?? De verdad estoy enloqueciendo con esto!!

Etiquetas: funcion
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 20:39.