Flex / AS3 Video-Transformation per Slider bzw. MouseWheel

BrainLight

Mitglied
Hallo liebes Forum.

Ich habe mal wieder ein kleines Problem für mich entdeckt. Heute geht es mir mehr darum eine Begründung zu finden anstatt einer Lösung.

Meine Webcam liefert ein "Video". Nun habe ich einen Slider erstellt, mit dessen Hilfe ich die Größe des Videos verändere. Das funktioniert auch ganz prima.
Nun möchte ich aber ein Gimmik einbauen, dass mit dem Value vom MouseEvent MouseWheel den Slider ansteuert und somit das Video genauso "weich" groß und klein slidet, wie wenn ich den Slider per Draging bewege. Nur funktioniert das glatt mal gar nicht.

Mein verwirrender Quellcode dazu (weil ich schon wirklich viele Sachen probiert habe):
PHP:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
	<mx:Script>
		<![CDATA[
		import mx.containers.VBox;
						
			public function displayCam():void{
				var camera:Camera = Camera.getCamera();
				if (camera != null){
					videoDisplay.attachCamera(camera);
				} else{
					Security.showSettings(SecurityPanel.CAMERA);
				}
			}
			
			public function init():void{
				systemManager.addEventListener(MouseEvent.MOUSE_WHEEL, doMouseWheel);
			}
			
			public function doMouseWheel (evt:MouseEvent):void{
				wheelTest += evt.delta;
			}
			
			public function changeFormat():void{
				vertBox.width=sizeSlider.value;
				vertBox.height=sizeSlider.value/(4/3);	
			}
			
			public function mouseWheelHandler(event:MouseEvent):void{
				sizeSlider.value=Number(wheelTest.toString());
			}
			
			public function changeAlpha():void{
				vertBox.alpha=alphaSlider.value;
			}
			
		]]>
	</mx:Script>
	
	<mx:VBox horizontalAlign="center" id="vertBox" top="10" right="10" width="160" height="120">
		<mx:VideoDisplay id="videoDisplay" width="100%" height="100%" creationComplete="displayCam()" alpha="0.3" mouseWheel="mouseWheelHandler(event)">
		
	</mx:VideoDisplay>
	
	</mx:VBox>
	
	<mx:HSlider id="sizeSlider" minimum="80" maximum="160" value="160" 
            dataTipPlacement="top" 
            tickColor="black" 
            snapInterval="1" tickInterval="10" 
            labels="[50%,100%]" 
            allowTrackClick="true" 
            liveDragging="true"
            change="changeFormat();" right="10" top="138" visible="true"/>
		
	<mx:Image source="file:///D|/projects/DA/logo1.png" alpha="0.07" left="10" top="10"/>
	
	<mx:Number id="wheelTest">160</mx:Number>
	<mx:NumberFormatter id="numberFormatter">
	</mx:NumberFormatter>
	
	<mx:Label text="{numberFormatter.format(wheelTest)}" fontSize="96"></mx:Label>
	<mx:HSlider x="1182" y="198" id="alphaSlider" change="changeAlpha()" liveDragging="true" enabled="true" minimum="0" maximum="1" snapInterval="0.01" value="1"/>

	
</mx:Application>
 
Zurück