首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按钮不能正常工作(重置AdjustColors)

按钮不能正常工作(重置AdjustColors)
EN

Stack Overflow用户
提问于 2015-09-09 00:17:50
回答 1查看 82关注 0票数 0

我使用调校颜色\彩色ColorMatrixFilter来更改元素(remoteVideo)的颜色(亮度、对比度、色调、饱和度),该元素是由滑块控制的。

我的问题是当单击带有标签重置颜色的按钮时,四个滑块。

代码语言:javascript
复制
BrightnessSlider.value = 0; 
ContrastSlider.value = 0; 
HueSlider.value = 0; 
SaturationSlider.value = 0; 

请移回他们的默认位置0,但只有对比度和饱和度被重置。我还尝试删除对函数adjustColor()的调用,并重复该函数中包含的相同步骤,但没有成功。

更新:我也尝试过filter.matrix = null;remoteVideo.filters = null;但是同样的问题仍然存在。

图书馆:

代码语言:javascript
复制
import flash.display.Sprite;
import fl.motion.AdjustColor;
import flash.filters.ColorMatrixFilter;
import fl.events.SliderEvent;   
import flash.external.ExternalInterface;

变量:

代码语言:javascript
复制
// color change
private var color:AdjustColor = new AdjustColor(); //This object will hold the color properties
private var filter:ColorMatrixFilter = new ColorMatrixFilter(); //Will store the modified color filter to change the video

函数:

代码语言:javascript
复制
private function resetColors(e:Event = null):void
{

    // reset all sliders to 0
    BrightnessSlider.value = 0; 
    ContrastSlider.value = 0; 
    HueSlider.value = 0; 
    SaturationSlider.value = 0; 

    adjustColor();

}

private function adjustColor(e:Event = null):void 
{ 
    color.brightness = BrightnessSlider.value; 
    color.contrast = ContrastSlider.value; 
    color.hue = HueSlider.value; 
    color.saturation = SaturationSlider.value; 
    filter.matrix = color.CalculateFinalFlatArray(); 
    remoteVideo.filters = [filter];     
} 

图形用户界面:

代码语言:javascript
复制
<s:NavigatorContent label="ADJUST COLORS" enabled="{currentState != LoginNotConnected}">
    <s:layout>
        <s:HorizontalLayout/>
    </s:layout>

    <s:VGroup>
        <s:HGroup>
            <s:Panel width="247" height="67.5" backgroundColor="0xA0A0A0"
                             title="Brightness">
                <s:layout>
                    <s:VerticalLayout paddingLeft="8"/>
                </s:layout>
                <s:HSlider id="BrightnessSlider" width="220" change="adjustColor(event)" maximum="100" minimum="-100" showDataTip="false" value="0"/>
            </s:Panel>

            <s:Panel width="247" height="67.5" backgroundColor="0xA0A0A0"
                             title="Contrast">
                <s:layout>
                    <s:VerticalLayout paddingLeft="8"/>
                </s:layout>
                <s:HSlider id="ContrastSlider" width="220" change="adjustColor(event)"
                                   maximum="100" minimum="-100" showDataTip="false" value="0"/>
            </s:Panel>
        </s:HGroup>

        <s:HGroup>
            <s:Panel width="247" height="67.5" backgroundColor="0xA0A0A0" title="Hue">
                <s:layout>
                    <s:VerticalLayout paddingLeft="8"/>
                </s:layout>
                <s:HSlider id="HueSlider" width="220" change="adjustColor(event)" maximum="180" minimum="-180" showDataTip="false" value="0"/>
            </s:Panel>
            <s:Panel width="247" height="67.5" backgroundColor="0xA0A0A0"
                             title="Saturation">
                <s:layout>
                    <s:VerticalLayout paddingLeft="8"/>
                </s:layout>
                <s:HSlider id="SaturationSlider" width="220"
                                   change="adjustColor(event)" maximum="100" minimum="-100" showDataTip="false" value="0"/>
            </s:Panel>

        </s:HGroup>

        <s:Button label="RESET COLORS" click="resetColors(event)" styleName="buttonStyle"/>
    </s:VGroup>

</s:NavigatorContent>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-09 21:52:50

resetColors函数中,不需要调用adjustColor。移除它,用remoteVideo.filters = null;替换它

代码语言:javascript
复制
    private function resetColors(e:Event = null):void
    {
        // reset all sliders to 0
        BrightnessSlider.value = 0; 
        ContrastSlider.value = 0; 
        HueSlider.value = 0; 
        SaturationSlider.value = 0;
        remoteVideo.filters = null;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32469093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档