将纯Flash / AS3应用程序移植到Flex 4.5此代码:
<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)" />
给我错误
Implicit coercion of a value with static type flash.events:Event
to a possibly unrelated type mx.events:SliderEvent.
我该如何解决? <{3}}非常稀疏。
{4.5}仍然可以在Flex 4.5应用程序中使用吗?
答案 0 :(得分:2)
change event不是SliderEvent;它发送一个通用事件。只需更改事件处理程序的方法签名即可删除错误。
private function handleSlider(event:event):void {
只需直接访问滑块即可访问滑块的值:
var hide:Number = slider.value;
或者可能使用事件的目标:
var hide:Number = (event.target as HSlider).value;
您引用的SliderEvent是MX事件;我不相信它在Spark实现中使用。