我试图让用户设置亮度,对比度,色调,和饱和度的远程用户相机(这只会影响本地用户正在调整的首选项)与滑雪板。我在这里没有看到这样的类:US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html#,所以我使用下面的库将元素"remoteVideo“(远程摄像机)设置为用户想要的亮度、对比度、色调和饱和度。我得到了color.brightness.remoteVideo(0,BrightnessSlider.value)的语法错误;(以及对比度、色调和饱和度)的语法错误(这一行中有多个标记)。1119:通过引用fl.motion.adjustcolor访问未定义的属性--访问未定义的属性remoteVideo,这是明确定义的,因为RTMFP视频聊天工作不需要下面的代码就可以编译:
(原始Sourcecode,如果有帮助的话,在下面不做任何更改:https://github.com/MonaSolutions/MonaClients/blob/master/VideoPhone/src/VideoPhone.mxml )
//亮度对比度色相饱和度库
import flash.display.Sprite;
import fl.motion.AdjustColor;
import flash.filters.ColorMatrixFilter;
import fl.events.SliderEvent;
import flash.external.ExternalInterface;//亮度对比度色调饱和度变量
private var color:AdjustColor = new AdjustColor(); //This object will hold the color properties
private var filter:ColorMatrixFilter; //Will store the modified color filter to change the video// 固定函数
private function BrightnessLevel(e:Event = null):void
{
color.brightness = BrightnessSlider.value;
var mMatrix:Array = color.CalculateFinalFlatArray();
filter = new ColorMatrixFilter(mMatrix);
remoteVideo.filters = [filter];
status("Setting brightness to: " + BrightnessSlider.value + "\n");
}
private function ContrastLevel(e:Event = null):void
{
color.contrast = ContrastSlider.value;
var mMatrix:Array = color.CalculateFinalFlatArray();
filter = new ColorMatrixFilter(mMatrix);
remoteVideo.filters = [filter];
status("Setting contrast to: " + ContrastSlider.value + "\n");
}
private function HueLevel(e:Event = null):void
{
color.hue = HueSlider.value;
var mMatrix:Array = color.CalculateFinalFlatArray();
filter = new ColorMatrixFilter(mMatrix);
remoteVideo.filters = [filter];
status("Setting hue to: " + HueSlider.value + "\n");
}
private function SaturationLevel(e:Event = null):void
{
color.saturation = SaturationSlider.value;
var mMatrix:Array = color.CalculateFinalFlatArray();
filter = new ColorMatrixFilter(mMatrix);
remoteVideo.filters = [filter];
status("Setting saturation to: " + SaturationSlider.value + "\n");
}//滑块用于亮度对比度色调饱和
<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="BrightnessLevel(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="ContrastLevel(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="HueLevel(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="SaturationLevel(event)" maximum="100" minimum="-100"
showDataTip="false" value="0"/>
</s:Panel>
</s:HGroup>
</s:VGroup>
</s:NavigatorContent>发布于 2015-09-08 19:43:23
根据AdjustColor的文档,每个属性(亮度、对比度、色调、饱和度)都是一个数字。所以这句话:
color.brightness.remoteVideo(0, BrightnessSlider.value);试图从remoteVideo (一个数字)的属性color.brightness访问该属性。它告诉你,数字上没有属性"remoteVideo“。
US/FlashPlatform/reference/actionscript/3/fl/motion/AdjustColor.html
编辑:这样的东西可能有用,也可能不起作用:(我还没有测试过这个)
color.brightness = BrightnessSlider.value;
var mMatrix:Array = color.CalculateFinalFlatArray();
filter = new ColorMatrixFilter(mMatrix);
remoteVideo.filters = [filter];通过实例化一次并只更新其矩阵属性,可以避免不断地创建新筛选器。
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 BrightnessLevel(e:Event = null):void
{
status("Setting brightness to: " + BrightnessSlider.value + "\n");
color.brightness = BrightnessSlider.value;
applyFilter();
}
private function ContrastLevel(e:Event = null):void
{
status("Setting contrast to: " + ContrastSlider.value + "\n");
color.contrast = ContrastSlider.value;
applyFilter();
}
private function HueLevel(e:Event = null):void
{
status("Setting hue to: " + HueSlider.value + "\n");
color.hue = HueSlider.value;
applyFilter();
}
private function SaturationLevel(e:Event = null):void
{
status("Setting saturation to: " + SaturationSlider.value + "\n");
color.saturation = SaturationSlider.value;
applyFilter();
}
private function applyFilter():void
{
filter.matrix = color.CalculateFinalFlatArray();
remoteVideo.filters = [filter];
}https://stackoverflow.com/questions/32465763
复制相似问题