Cita:
Iniciado por Kronos_Corp Muchas Gracis compa Japehi...muy buena la ayuda justamente andaba buscando algun toturial bueno para el componente checkbox...ahora tengo una duda
quiero que al estar seleccionado el componente checkbox tenga un valor.
Ejemplo: 2
y al no estarlo tenga otro.
Ejemplo: 3
para asi al pulsar otro boton me muestre la suma de los dos valores en un Texto Dinamico...espero haberme dado a entender
Hola
Kronos_Corp !
Aquí hay un pequeño incoveniente, los componentes checkbox no pueden almacenar valores, solo podemos obtener el valor de la etiqueta por medio del atributo label, y también saber su estado si está seleccionado o no.
Lo que quieres es que el checkbox almacene un valor interno, y este sea variable de acuerdo al estado del checkbox, para esto vamos a tener que extender la funcionalidad del componente para agregarle esos comportamientos.
Para hacer esto debemos heredar de la clase checkbox y definir los comportamientos nuevos:
MyCheckBox.as
Código actionscript:
Ver originalpackage
{
import fl.controls.CheckBox;
public class MyCheckBox extends CheckBox
{
private var _selectedValue:Number;
private var _noselectedValue:Number;
public function MyCheckBox(selectedValue, noselectedValue) {
_selectedValue = selectedValue;
_noselectedValue = noselectedValue;
}
public function get value():Number {
if(selected) {
return _selectedValue;
}
return _noselectedValue;
}
}
}
Definí mi clase MyCheckBox, agregué 2 nuevos atributos que contendrán los valores cuando está seleccionado o no, estos valores los vamos a pasar al constructor cuando creemos el componente.
El método get value, se encarga de devolverme el valor correcto, dependiendo si el checkbox está seleccionado o no, me devuelve un valor u otro.
Ahora veamos un ejemplo con código de como usarla:
Código actionscript:
Ver originalvar cb1:MyCheckBox = new MyCheckBox(5, 10);
cb1.label = "Opción 1";
addChild(cb1);
var cb2:MyCheckBox = new MyCheckBox(8, 4);
cb2.label = "Opción 2";
addChild(cb2);
cb2.y = 50;
cb1.addEventListener(MouseEvent.CLICK, onClick);
cb2.addEventListener(MouseEvent.CLICK, onClick);
function onClick(evt:MouseEvent):void {
trace(evt.target.value);
}
Vas a ver que el checkbox devuelve un valor de acuerdo a su estado.
Nota:
La clase MyCheckBox.as debe estar en la misma carpeta del .fla
También debes arratrar el componente checkbox al espacio de trabajo y depués borrarlo, esto con la finalidad de quede en la librería y no de errores de compilación a la hora de crear los componentes dinámicamente.
Un saludote !