Utilizzando HSlider: la coercizione di eventi per SliderEvent
-
26-10-2019 - |
Domanda
Il porting di un'applicazione pura Flash / AS3 per Flex 4.5 questo codice:
<fx:Script>
<![CDATA[
import mx.events.SliderEvent;
import flash.filters.ColorMatrixFilter;
private function handleSlider(event:SliderEvent):void {
var hide:Number = event.value;
_settings.data.hide = hide;
_settings.flush();
if (hide >= 0.8) {
filters = null;
} else {
var matrix:Array = new Array();
matrix = matrix.concat([1, 0, 0, 0, 1]); // red
matrix = matrix.concat([0, 1, 0, 0, 1]); // green
matrix = matrix.concat([0, 0, 1, 0, 1]); // blue
matrix = matrix.concat([0, 0, 0, hide, 1]); // alpha
filters = [ new ColorMatrixFilter(matrix) ];
}
}
.......
<s:HSlider id="_hide" right="8" bottom="30" width="80"
minimum="0.25" maximum="1.00" value="1.00" stepSize="0.25"
change="handleSlider(event)" />
mi dà l'errore
Implicit coercion of a value with static type flash.events:Event
to a possibly unrelated type mx.events:SliderEvent.
Come posso risolvere il problema? L'Adobe HSlider doc è insolitamente scarsa.
È mx.events.SliderEvent
ancora bene da utilizzare in un'applicazione Flex 4.5?
Soluzione
Il cambiamento evento non è uno SliderEvent; invia un evento generico. Basta cambiare la firma del metodo per il vostro gestore di eventi per rimuovere l'errore.
private function handleSlider(event:event):void {
È possibile accedere al valore del cursore semplicemente accedendo direttamente il dispositivo di scorrimento:
var hide:Number = slider.value;
O forse con l'obiettivo della manifestazione:
var hide:Number = (event.target as HSlider).value;
Il SliderEvent si fa riferimento a è un evento MX; e non credo che viene utilizzato nella realizzazione Spark.
E 'possibile beneficiare di rivedere la ASDocs per la classe HSlider .