2015-09-09 2 views
0

Я использую AdjustColor \ ColorMatrixFilter для изменения цвета (яркость, контрастность, оттенок, насыщенность) элемента (remoteVideo), который управляется с помощью слайдеров.Кнопка работает неправильно (Resetting AdjustColors)

Моего вопрос, когда кнопка с СБРОСОМ ЦВЕТОМ метки нажата четыре ползунка

BrightnessSlider.value = 0; 
ContrastSlider.value = 0; 
HueSlider.value = 0; 
SaturationSlider.value = 0; 

двигается обратно в их положение по умолчанию 0, но только контраст и насыщенность сбрасывается. Я также попытался удалить вызов функции adjustColor() и повторить те же шаги, что и в этой функции, без успеха.

Обновление: я также попробовал filter.matrix = null; remoteVideo.filters = null; но тот же вопрос все еще стоит.

Библиотеки:

import flash.display.Sprite; 
import fl.motion.AdjustColor; 
import flash.filters.ColorMatrixFilter; 
import fl.events.SliderEvent; 
import flash.external.ExternalInterface; 

Переменные:

// 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 

Функция:

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];  
} 

GUI:

<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> 
+0

В вашей функции 'resetColors' вам не нужен вызов' adjustColor'. Удалите его и замените его на 'remoteVideo.filters = null;' – Karmacon

ответ

1

В вашей resetColors функции вам не нужен вызов adjustColor. Снимите его и замените его remoteVideo.filters = null;

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; 
    } 
+0

еще раз жаль :( – michelle

+0

@michelle lol no problem. Мы здесь, чтобы помочь. – Karmacon

Смежные вопросы