Pregunta

puedo hacer esto:

<s:Button id="Btn" enabled.State1="false" />

Pero el siguiente código me está dando un error.

 private function enableDisable():void{
       Btn.enabled.State1="false";  //Error: Access of undefined property State1
      }

Cómo codificar habilitado.state1 en ActionScript?

Gracias

¿Fue útil?

Solución

Sé que esto no es lo que quieres escuchar, pero aquí va de todos modos: ¿por qué quieres hacer eso? Todo el propósito de los Estados es que no tendrías que escribir toneladas de ActionScript para hacer lo mismo.

Por qué no puedes hacerlo así

Escribiendo Btn.enabled.State1 En ActionScript, esencialmente está diciendo: Dame la propiedad llamada 'State1' de la instancia booleana llamada 'habilitada'. Obviamente, eso no funcionará porque un booleano no tiene tal propiedad. Está confundiendo la notación mxml dot (.), Utilizada para asignar valores a las propiedades basadas en estados, con la notación de puntos de ActionScript, se usa para leer/escribir propiedades.

Una solución o tan cerca como se pone

Dado que es la naturaleza misma de esta característica que la usaría en MXML, no puede hacer exactamente lo que está pidiendo en ActionScript. La siguiente mejor opción sería escuchar Statechangeevent EN Establezca la propiedad 'habilitada' del botón de acuerdo con el nuevo nombre de estado.

addEventListener(StateChangeEvent.CURRENT_STATE_CHANGE, onStateChange);

private function onStateChange(event:StateChangeEvent):void {
    switch (event.newState) {
        case "wrong":   Btn.enabled = false; break;
        case "correct": Btn.enabled = true; break;
    }
}

(Estoy usando los mismos estados que en la respuesta de James)

Otros consejos

Creo que puede estar usando los estados en el contexto incorrecto. Por ejemplo, tiene un componente que contiene una entrada del usuario con un botón al lado. El botón solo está habilitado cuando se ingresa la palabra correcta. Definirías dos estados para el componente, tal vez correct y wrong.

<s:states>
    <s:State name="wrong" />
    <s:State name="correct" />
<s:states>

Entonces, similar a lo que ha hecho anteriormente, establecería propiedades individuales para los botones dependiendo del estado:

<s:Button id="Btn" enabled.wrong="false" enabled.correct="true" />

Por defecto, el estado del componente sería wrong. Después de manejar la entrada del usuario y verificar si se ingresa la palabra correcta, el estado del componente se cambiaría a correct.

Normalmente, las propiedades específicas del estado de los componentes se establecen en el tiempo de compilación y el estado del componente mismo cambió en tiempo de ejecución.

Aquí está Una descripción general de los estados en Flex 4.6

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top