注意:jsp文件和swf文件都放在跟目录下,加上跨域允许访问文件。
详细编写请参考flash cs3 帮助文档,里面有完整的例子 。
1.jsp页面。
<%
...
@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
lang
="en"
xml:lang
="en"
>
<
head
>
<
title
></
title
>
<
meta
http-equiv
="Expires"
content
="Mon, 04 Dec 1999 21:29:02 GMT"
/>
<
meta
http-equiv
="PRAGMA"
content
="NO-CACHE"
/>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=utf-8"
/>
<
script
type
="text/javascript"
src
="../../js/swfobject.js"
></
script
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
script
type
="text/javascript"
>
...
swfobject.registerObject("myFlashContent", "9.0.0", "expressInstall.swf");
var jsReady = false;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
function isReady() ...{
return jsReady;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
function pageInit() ...{
jsReady = true;
//document.forms["form1"].output.value += " " + "JavaScript is ready. ";
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
function thisMovie(movieName) ...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (navigator.appName.indexOf("Microsoft") != -1) ...{
return window[movieName];
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
} else ...{
return document[movieName];
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
function sendToActionScript(value) ...{
thisMovie("myFlashContent").sendToActionScript(value);
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
function sendToJavaScript(value) ...{
document.forms["form1"].output.value += "ActionScript says: " + value + " ";
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
</
script
>
</
head
>
<
body
onload
="pageInit();"
style
="background-color:antiquewhite"
>
<
div
style
="width:800px;height:600px;border:1px solid red;"
>
<
object
classid
="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
width
="800"
height
="600"
id
="myFlashContent"
>
<
param
name
="movie"
value
="cut.swf"
/>
<!--
[if !IE]>
-->
<
object
type
="application/x-shockwave-flash"
data
="cut.swf"
width
="800"
height
="600"
>
<!--
<![endif]
-->
<
a
href
="http://www.adobe.com/go/getflashplayer"
>
<
img
src
="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"
alt
="Get Adobe Flash player"
/>
</
a
>
<!--
[if !IE]>
-->
</
object
>
<!--
<![endif]
-->
</
object
>
</
div
>
<
form
name
="form1"
onsubmit
="return false;"
>
<
input
type
="text"
name
="input"
value
=""
/>
<
input
type
="button"
value
="Send"
onclick
="sendToActionScript(this.form.input.value);"
/><
br
/>
<
textarea
cols
="60"
rows
="20"
name
="output"
readonly
="true"
>
Initializing...
</
textarea
>
</
form
>
</
body
>
</
html
>
2.flash端
package
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
import com.wdxc.ImageCut;
import com.wdxc.ImageRotation;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.* ;
import flash.display.*;
import flash.geom.* ;
import flash.net.*;
import flash.text.TextField;
import flash.utils.ByteArray;
import com.wdxc.util.* ;
import fl.containers.ScrollPane;
import flash.display.Shape;
import fl.events.ScrollEvent;
import flash.external.ExternalInterface;
import flash.system.Security;
import flash.utils.Timer;
import flash.events.TimerEvent ;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/** *//**
* @author luqinglong
*/
public class Main extends MovieClip
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
//存储加载进来的图片数据
private var _bitmap:Bitmap = new Bitmap() ;
//进度条
private var _progressbar:TextField ;
private var picname:String ;
private var _imageCut:ImageCut = new ImageCut() ;
//场景引用
public static var SCENE:MovieClip ;
//test
var output:TextField = new TextField();
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function Main():void ...{
SCENE = this;
//this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
//this.loaderInfo.addEventListener(Event.COMPLETE, fileCompleteHandler) ;
menu_mc.cut_btn.addEventListener(MouseEvent.MOUSE_DOWN, this._imageCut.startCutPic);
menu_mc.save_btn.addEventListener(MouseEvent.MOUSE_DOWN, save) ;
menu_mc.rotate_btn.addEventListener(MouseEvent.MOUSE_DOWN, rotationHandler) ;
menu_mc.addword_btn.addEventListener(MouseEvent.CLICK, calljs) ;
load_btn.addEventListener(MouseEvent.MOUSE_DOWN, loadPic);
startLoadPic();
this.checkAvailable();
output.y = 40;
output.width = 100;
output.height = 100;
output.multiline = true;
output.wordWrap = true;
output.border = true;
this.addChild(output) ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function rotationHandler(e:MouseEvent):void ...{
var ir:ImageRotation = new ImageRotation() ;
ir.x = menu_mc.x ;
ir.y = menu_mc.y ;
this.stage.addChild(ir);
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function set bitmap(bp:Bitmap):void ...{
this._bitmap = bp ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function get bitmap():Bitmap ...{
return this._bitmap ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/** *//**
* flash文件导入完成
* @param e
*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
private function fileCompleteHandler(e:Event):void {
this.removeChild(_progressbar);
menu_mc.cut_btn.addEventListener(MouseEvent.MOUSE_DOWN, this._imageCut.startCutPic);
menu_mc.save_btn.addEventListener(MouseEvent.MOUSE_DOWN, save) ;
load_btn.addEventListener(MouseEvent.MOUSE_DOWN, loadPic);
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
this.loaderInfo.removeEventListener(Event.COMPLETE, fileCompleteHandler) ;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/** *//**
* 导入swf文件时,创建进度条
*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
private function progressHandler(e:ProgressEvent):void {
_progressbar = new TextField() ;
_progressbar.text = "进度条" ;
this.addChild(_progressbar) ;
}*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function startLoadPic():void ...{
var url:String = "http://192.168.0.211:8080/photo/LoaderPhotoServlet";
var param:URLVariables = new URLVariables() ;
param.photoid = "267005" ;
param.radom = Math.floor(Math.random() * 1000);
var request:URLRequest = new URLRequest(url);
request.data = param ;
var loader :Loader = new Loader();
loader.load(request);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, picLoadCompleteHandler);
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function loadPic(e:MouseEvent):void ...{
var url:String = "http://192.168.0.211:8080/photo/LoaderPhotoServlet"
//var url = "http://192.168.0.211:8080/photos/8934/24808/267005_1.jpg";
//var url = "E:/a.jpg" ;
var param:URLVariables = new URLVariables() ;
param.photoid = "267005" ;
param.radom = Math.floor(Math.random() * 1000);
//picSource+="&"+Math.floor(Math.random()*1000);
//var picSource:String = "F:/a.jpg" ;
//var _urlLoader:URLLoader = new URLLoader();
//_urlLoader.dataFormat = URLLoaderDataFormat.BINARY ;
//_urlLoader.load(request);
//_urlLoader.addEventListener(Event.COMPLETE, picLoadCompleteHandler);
var request:URLRequest = new URLRequest(url);
request.data = param ;
var loader :Loader = new Loader();
loader.load(request);
//loader.
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, picLoadCompleteHandler);
}
//public var temp:Sprite = new Sprite();
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/** *//**
* 导入二进制完成
* @param e
*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function picLoadCompleteHandler(e:Event):void ...{
var loader:Loader = e.target.loader as Loader;
var _bitmapdata:BitmapData = new BitmapData(loader.width, loader.height);
_bitmapdata.draw(loader);
if(this._bitmap.bitmapData!=null)
this._bitmap.bitmapData.dispose() ;
this._bitmap.bitmapData = _bitmapdata;
_bitmap.x =90 ;
_bitmap.y = 150 ;
//temp.addChild(this._bitmap);
this.addChild(_bitmap);
//设置原图引用
this._imageCut.bitmap = this._bitmap ;
this.addChild(this._imageCut);
e.currentTarget.removeEventListener(Event.COMPLETE, picLoadCompleteHandler);
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function reset():void ...{
this._bitmap.rotation = 0 ;
this._bitmap.x = 90 ;
this._bitmap.y = 150 ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public function checkAvailable():void ...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (ExternalInterface.available)...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
try ...{
ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (checkJavaScriptReady()) ...{
trace("JavaScript is ready. ");
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
} else ...{
trace("JavaScript is not ready, creating timer. ");
var readyTimer:Timer = new Timer(100, 0);
readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
readyTimer.start();
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}catch (error:SecurityError) ...{
trace("A SecurityError occurred: " + error.message + " ");
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}catch (error:Error) ...{
trace("An Error occurred: " + error.message + " ");
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
trace("External interface is not available for this container.");
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function timerHandler(event:TimerEvent):void ...{
trace("Checking JavaScript status... ");
var isReady:Boolean = checkJavaScriptReady();
output.appendText("123");
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (isReady) ...{
trace("JavaScript is ready. ");
Timer(event.target).stop();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function receivedFromJavaScript(value:String):void ...{
//trace("JavaScript says: " + value + " ");
output.text = value ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function checkJavaScriptReady():Boolean ...{
var isReady:Boolean = ExternalInterface.call("isReady");
return isReady;
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function calljs(event:MouseEvent):void ...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if (ExternalInterface.available) ...{
ExternalInterface.call("sendToJavaScript", "123");
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/** *//****
* 转换为字节数组,显示图片到场景
* @param e
*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
/**//*
private function ConvertionHandler(e:Event):void {
var loader:Loader = e.target.loader as Loader;
var _bitmapdata:BitmapData= new BitmapData(loader.width, loader.height);
_bitmapdata.draw(loader);
if(this._bitmap.bitmapData!=null)
this._bitmap.bitmapData.dispose() ;
this._bitmap.bitmapData = _bitmapdata;
_bitmap.x =90 ;
_bitmap.y =150 ;
this.addChild(_bitmap);
//设置原图引用
this._imageCut.bitmap = this._bitmap ;
this.addChild(this._imageCut);
e.currentTarget.removeEventListener(Event.COMPLETE, ConvertionHandler);
}
*/
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
private function save(e:MouseEvent):void ...{
//var url :String = _url+"?"+Math.floor(Math.random()*1000) ;
//this.submit(bitmapdata,url);
}
}
}