Apache flex 将参数从flex来回传递到JSP
我有一个朋友给我的flex代码。但是我想定制这个代码来解决我的需求。当flex代码加载到小程序上时,我想从jsp向其传递一个宽度和高度。此宽度和高度将决定捕获图像的宽度和高度。捕获图像后,单击一个“完成”按钮,该按钮调用传递捕获图像的java字节[]的服务器url。代码如下:Apache flex 将参数从flex来回传递到JSP,apache-flex,jsp,actionscript,struts2,flex3,Apache Flex,Jsp,Actionscript,Struts2,Flex3,我有一个朋友给我的flex代码。但是我想定制这个代码来解决我的需求。当flex代码加载到小程序上时,我想从jsp向其传递一个宽度和高度。此宽度和高度将决定捕获图像的宽度和高度。捕获图像后,单击一个“完成”按钮,该按钮调用传递捕获图像的java字节[]的服务器url。代码如下: <?xml version="1.0" encoding="utf-8"?> <mx:Application initialize="videoDisplay_creationComplete();" x
<?xml version="1.0" encoding="utf-8"?>
<mx:Application initialize="videoDisplay_creationComplete();" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" x="149" y="131">
<mx:Script>
<![CDATA[
import mx.graphics.ImageSnapshot;
import mx.controls.Alert;
public var cam:Camera = Camera.getCamera();
public var video:Video = new Video(320,240);
public var bitmapData:BitmapData = new BitmapData(video.width,video.height);
public var snapshot:BitmapData;
public function init():void
{
videoDisplay.visible=false;
}
public function start():void{
if (cam == null)
{
Alert.show("No camera is installed","Unable to start capture!!!!");
return;
}
video.attachCamera(cam);
video.x = 20;
video.y = 20;
addChild(video);
var bitmap:Bitmap = new Bitmap(bitmapData);
bitmap.x = 360;
bitmap.y = 20;
addChild(bitmap);
}
private function captureImage(e:MouseEvent):void
{
bitmapData.draw(video);
}
private function videoDisplay_creationComplete():void
{
btnRestartCapture.enabled=false;
if (cam!=null) {
videoDisplay.attachCamera(cam);
} else {
Alert.show("You don't seem to have a camera.");
}
}
public function takeSnapshot():void
{
snapshot = ImageSnapshot.captureBitmapData(videoDisplay);
var bitmap:Bitmap= new Bitmap(snapshot);
img.source=bitmap;
videoDisplay.visible=false;
btnRestartCapture.enabled=true;
}
public function sendToServer():void{
var loader:URLLoader= new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.data=snapshot.getPixels(new Rectangle(0,0,img.width,img.height));
}
private function callJavaScript():void {
ExternalInterface.call("recievePictureFromFlex",snapshot.getPixels(new Rectangle(0,0,img.width,img.height)));
}
public function restartCap():void{
videoDisplay.visible=true;
btnRestartCapture.enabled=false;
}
public function done():void
{
Alert.show("Done taking pix", "Done");
}
]]>
</mx:Script>
<!--<mx:Button label="Capture Image" click="captureImage(null);" id="capture_mc"/>-->
<mx:VBox x="405" y="115" backgroundColor="white" >
<mx:Canvas width="100%" height="100%">
<mx:Image width="350" id="img" height="300"/>
<mx:VideoDisplay id="videoDisplay"
creationComplete="videoDisplay_creationComplete();"
width="350"
height="300" x="0" y="0"/>
</mx:Canvas>
<mx:HBox>
<mx:Button id="btnRestartCapture" label="Clear Picture" click="restartCap();"/>
<mx:Button id="snapButton" label="Snap" click="takeSnapshot()" width="113"/>
<mx:Button id="doneButton" label="Done" click="done()" width="113"/>
</mx:HBox>
</mx:VBox>
</mx:Application>
对于jsp-->Flex通信,您可以使用flashvars: