Comunidad de diseño web y desarrollo en internet online

consulta de un simple text box

Citar            
MensajeEscrito el 20 Ene 2010 10:49 pm
tengo este codigo :

Código ActionScript :


import flash.events.MouseEvent;

function onClick($event:MouseEvent):void {
   
//variables

var valor1:Number =0;
var valor2:Number =0;
var valor3:Number =0;
var valor4:Number =0;
var s1:Number = 0;
var s2:Number = 0;
var s3:Number = 0;
var fuerzabase:Number = 0 ;
var fuerza:Array = new Array();
//------------------------------
//trace( "valores vacios :" ,valor1 ,"/" ,valor2 ,"/", valor3 ,"/", valor4 );
//------------------------------
//calcula randoms 
valor1 = Math.floor(Math.random() * (6 - 1 + 1)) + 1 ;
valor2 = Math.floor(Math.random() * (6 - 1 + 1)) + 1 ;
valor3 = Math.floor(Math.random() * (6 - 1 + 1)) + 1 ;
valor4 = Math.floor(Math.random() * (6 - 1 + 1)) + 1 ;

//------------------------------
//los mete en un array llamado fuerza
fuerza.push(valor1);  
fuerza.push(valor2);
fuerza.push(valor3);
fuerza.push(valor4);
//ordena de mayor a menor el array y remueve el ultimo (menor)
fuerza.sort(Array.DESCENDING);
fuerza.pop();   

//------------------------------
//trace( "valores llenos :" ,valor1 ,"/" ,valor2 ,"/", valor3 ,"/", valor4 );
//trace("valor del array :",fuerza);
//--------vuelca los  valores a variables y los suma----------------------

s1 =  fuerza[0] ;
s2 =  fuerza[1] ;
s3 =  fuerza[2] ;

fuerzabase = s1+s2+s3;


}
bfz.addEventListener(MouseEvent.CLICK, onClick);




el script funciona haciendo clicn en un boton (bfz) , este calcula 4 randoms de 1 a 6 , le saca el menor y suma los 3 mayores restantes y deberia escupir el resultado en una caja ( llamada fbase).
pero el tema es que el valor este ( fuerzabase) lo kiero meter en una caja de texto dinamico y aun no encontre la forma ..no se si es porque los valores son numericos y debo pasarlos a string .. ( que auno se identifique como hacerlo ) si debo identificar la caja de texto antes , si lo hago con trace me da todo muy lindo , pero a la hora de llevarlo a flash se complica.

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2010 02:38 am
bueno ..ahi parece ke avance un poco .. separando el codigo (as) y el flash por otro (fla) pero aun tnego muchos problemas con el tema de los paquetes y clases y quees lo que va del lado del fla y del lado de AS

del lado del fla puse




Código ActionScript :

import flash.events.MouseEvent;
import calculador.clase;
bfz.addEventListener(MouseEvent.CLICK, clickear);

var fuerzabase:clase = new clase();
fzbase.text = new String(fuerzabase.clickear());



pero aun es bastante confuso si alguien me puede pasar un link MAs explicativo de ese tema ya que probe con el

http://www.cristalab.com/tips/introduccion-basica-a-actionscript-3-clases-tipos-de-datos-c29554l/







saludos

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2010 03:12 am
No te compliques

Como bien dices, el valor (fuerzabase) es numérico, y necesitas transformarlo a Cadena.
Para hacerlo, necesitas hacerle un casting.
Hay dos tipos de casting, explícito e implícito
Aqui las dos formas

fbase.text = String(fuerzabase); // Explícito, conviertes tipo número a tipo cadena
fbase.text = "" + fuerzabase; // Implícito: Concatena ambos valores y toma el tipo de dato del primero

Lo probe, y ambos funcionan. Espero te sirva.
Trata de investigar un poco acerca del Type Casting en AS3.

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 21 Ene 2010 03:17 am
Perdón se corto: tu practivamente lo tenias resuerlo, solamente en vez de

Código ActionScript :

fzbase.text = new String(fuerzabase.clickear()); 

es

Código ActionScript :

fzbase.text = new String(fuerzabase); 

Saludos

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 21 Ene 2010 09:40 am
Hola,
todos los objetos tienen un método toString() que hace esa conversión por tí, de modo que si fuerzabase.clickear() devuelve un número, puedes hacer directamente fuerzabase.clickear().toString() (aunque sería mejor que la clase almacenase en una propiedad este dato).
Otra cosa que veo que haces es usar el tipo de datos Number para todas tus variables, cuando sólo estás tratando con números enteros. En estos casos es muchísimo más rápido usar los tipos int o uint (si siempre van a ser positivos, como en tu caso).
Y por último, pero no menos importante, cuando calculas los valores aleatorios pones:

Código ActionScript :

valor1 = Math.floor(Math.random() * (6 - 1 + 1)) + 1;

No sé si te habrás dado cuenta, pero dentro del mismo paréntesis estás sumando y restando 1 innecesariamente, y la verdad es que la máquina virtual de actionscript no es tan rápida como para andar desperdiciando así el uso del procesador. Mejor pon esto:

Código ActionScript :

valor1 = Math.floor(Math.random() * 6) + 1 ;

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Ene 2010 10:14 pm
gracias a todos por la pronta resta .. analizare un poco el tema de lo que respondieron .. y en base a eso les dare como finalice jajaj ABRAZO !

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2010 10:18 pm
el tema del +1 -1 era para que de valores superiores a cero .. no recuerdo de donde saque el codigo ya . y si ,logicamente es como decis .. esta puesto redundante . supuestamente era porque deberia dar entre 1 y 6 y no entre 0 y 5 .. pero gracias por tu rsta.

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 21 Ene 2010 10:34 pm
pregunta cual es la diferencia entre :

Código ActionScript :

fzbase.text = new String(fuerzabase); // >  este me habilita el espacio en memoria 
fbase.text = String(fuerzabase);  //>  este lo carga  


o es lo mismo

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Ene 2010 12:22 am
new String(fuerzabase) // aqui el operador new te indica que estas creando una instancia del Clase String
String(fuerzabase) es una funcion Global que te convierte, el parametro que le pongas a cadena

Aqui la ayuda de Adobe para lo primero
Y aqui para lo segundo

Como Bonus :P aqui lo concerniente a la conversión entre tipos de datos (Casting)
Saludos

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 22 Ene 2010 12:31 am
despues de sudar como un animal para poder entender un poco mas AS3 logre que funcione gracias a todos !!!

en el mismo .FLA puse el codigo ( aun no se como hacerlo por separado pero bue de apasos )

con un boton llamado playButton y un dinamic text box llanmado CajaFuerza

Código ActionScript :


function calcular(event:MouseEvent):void { 

//variables
var valor1:Number =0;
var valor2:Number =0;
var valor3:Number =0;
var valor4:Number =0;
var s1:Number = 0;
var s2:Number = 0;
var s3:Number = 0;
var fuerzabase:Number = 0 ;
var fzbase:String = fuerzabase.toString() ;
var fuerza:Array = new Array();

//------------------------------
//trace( "valores vacios :" ,valor1 ,"/" ,valor2 ,"/", valor3 ,"/", valor4 );
//------------------------------
//calcula randoms 
valor1 = Math.floor(Math.random() *6) + 1 ;
valor2 = Math.floor(Math.random() *6) + 1 ;
valor3 = Math.floor(Math.random() *6) + 1 ;
valor4 = Math.floor(Math.random() *6) + 1 ;

//------------------------------
//los mete en un array llamado fuerza
fuerza.push(valor1);  
fuerza.push(valor2);
fuerza.push(valor3);
fuerza.push(valor4);
//ordena de mayor a menor el array y remueve el ultimo (menor)
fuerza.sort(Array.DESCENDING);
fuerza.pop();   

//------------------------------
//trace( "valores llenos :" ,valor1 ,"/" ,valor2 ,"/", valor3 ,"/", valor4 );
//trace("valor del array :",fuerza);
//--------vuelca los  valores a variables y los suma y los echa en la CajaFuerza----------------------

s1 =  fuerza[0] ;
s2 =  fuerza[1] ;
s3 =  fuerza[2] ;

fuerzabase = s1+s2+s3;
CajaFuerza.text = new String(fuerzabase);
CajaFuerza.text = String(fuerzabase);

// trace(s1,s2,s3,"=",fuerzabase);


}


playButton.addEventListener(MouseEvent.CLICK, calcular);





Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Ene 2010 12:32 am
espero que este otro codigo mas depurado le sirva tambien a alguno que este iniciando en AS3

Por edejuana

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 22 Ene 2010 12:35 am
Solo como detalle final, estas dos lineas hacen exactamente lo mismo.

CajaFuerza.text = new String(fuerzabase);
CajaFuerza.text = String(fuerzabase);

Solo que de manera diferente. Puedes quitar la que quieras de las dos, y debe seguir funcionando.
;)

Por rolv

Claber

2000 de clabLevel

3 tutoriales

 

firefox
Citar            
MensajeEscrito el 22 Ene 2010 01:21 am
Gracias Ramiro!

Por edejuana

13 de clabLevel



 

msie7

 

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