actionscript3与javascript通信
来源:互联网 发布:淘宝说已失效 编辑:程序博客网 时间:2024/05/18 19:20
注意: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>
<script type="text/javascript">...
swfobject.registerObject("myFlashContent", "9.0.0", "expressInstall.swf");
var jsReady = false;
function isReady() ...{
return jsReady;
}
function pageInit() ...{
jsReady = true;
//document.forms["form1"].output.value += " " + "JavaScript is ready. ";
}
function thisMovie(movieName) ...{
if (navigator.appName.indexOf("Microsoft") != -1) ...{
return window[movieName];
} else ...{
return document[movieName];
}
}
function sendToActionScript(value) ...{
thisMovie("myFlashContent").sendToActionScript(value);
}
function sendToJavaScript(value) ...{
document.forms["form1"].output.value += "ActionScript says: " + value + " ";
}
</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>
<!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>
<script type="text/javascript">...
swfobject.registerObject("myFlashContent", "9.0.0", "expressInstall.swf");
var jsReady = false;
function isReady() ...{
return jsReady;
}
function pageInit() ...{
jsReady = true;
//document.forms["form1"].output.value += " " + "JavaScript is ready. ";
}
function thisMovie(movieName) ...{
if (navigator.appName.indexOf("Microsoft") != -1) ...{
return window[movieName];
} else ...{
return document[movieName];
}
}
function sendToActionScript(value) ...{
thisMovie("myFlashContent").sendToActionScript(value);
}
function sendToJavaScript(value) ...{
document.forms["form1"].output.value += "ActionScript says: " + value + " ";
}
</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
...{
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 ;
/** *//**
* @author luqinglong
*/
public class Main extends MovieClip
...{
//存储加载进来的图片数据
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();
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) ;
}
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);
}
public function set bitmap(bp:Bitmap):void ...{
this._bitmap = bp ;
}
public function get bitmap():Bitmap ...{
return this._bitmap ;
}
/** *//**
* flash文件导入完成
* @param e
*/
/**//*
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) ;
}*/
/** *//**
* 导入swf文件时,创建进度条
*/
/**//*
private function progressHandler(e:ProgressEvent):void {
_progressbar = new TextField() ;
_progressbar.text = "进度条" ;
this.addChild(_progressbar) ;
}*/
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);
}
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();
/** *//**
* 导入二进制完成
* @param e
*/
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);
}
public function reset():void ...{
this._bitmap.rotation = 0 ;
this._bitmap.x = 90 ;
this._bitmap.y = 150 ;
}
public function checkAvailable():void ...{
if (ExternalInterface.available)...{
try ...{
ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
if (checkJavaScriptReady()) ...{
trace("JavaScript is ready. ");
} else ...{
trace("JavaScript is not ready, creating timer. ");
var readyTimer:Timer = new Timer(100, 0);
readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
readyTimer.start();
}
}catch (error:SecurityError) ...{
trace("A SecurityError occurred: " + error.message + " ");
}catch (error:Error) ...{
trace("An Error occurred: " + error.message + " ");
}
}else...{
trace("External interface is not available for this container.");
}
}
private function timerHandler(event:TimerEvent):void ...{
trace("Checking JavaScript status... ");
var isReady:Boolean = checkJavaScriptReady();
output.appendText("123");
if (isReady) ...{
trace("JavaScript is ready. ");
Timer(event.target).stop();
}
}
private function receivedFromJavaScript(value:String):void ...{
//trace("JavaScript says: " + value + " ");
output.text = value ;
}
private function checkJavaScriptReady():Boolean ...{
var isReady:Boolean = ExternalInterface.call("isReady");
return isReady;
}
private function calljs(event:MouseEvent):void ...{
if (ExternalInterface.available) ...{
ExternalInterface.call("sendToJavaScript", "123");
}
}
/** *//****
* 转换为字节数组,显示图片到场景
* @param e
*/
/**//*
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);
}
*/
private function save(e:MouseEvent):void ...{
//var url :String = _url+"?"+Math.floor(Math.random()*1000) ;
//this.submit(bitmapdata,url);
}
}
}
...{
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 ;
/** *//**
* @author luqinglong
*/
public class Main extends MovieClip
...{
//存储加载进来的图片数据
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();
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) ;
}
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);
}
public function set bitmap(bp:Bitmap):void ...{
this._bitmap = bp ;
}
public function get bitmap():Bitmap ...{
return this._bitmap ;
}
/** *//**
* flash文件导入完成
* @param e
*/
/**//*
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) ;
}*/
/** *//**
* 导入swf文件时,创建进度条
*/
/**//*
private function progressHandler(e:ProgressEvent):void {
_progressbar = new TextField() ;
_progressbar.text = "进度条" ;
this.addChild(_progressbar) ;
}*/
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);
}
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();
/** *//**
* 导入二进制完成
* @param e
*/
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);
}
public function reset():void ...{
this._bitmap.rotation = 0 ;
this._bitmap.x = 90 ;
this._bitmap.y = 150 ;
}
public function checkAvailable():void ...{
if (ExternalInterface.available)...{
try ...{
ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
if (checkJavaScriptReady()) ...{
trace("JavaScript is ready. ");
} else ...{
trace("JavaScript is not ready, creating timer. ");
var readyTimer:Timer = new Timer(100, 0);
readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
readyTimer.start();
}
}catch (error:SecurityError) ...{
trace("A SecurityError occurred: " + error.message + " ");
}catch (error:Error) ...{
trace("An Error occurred: " + error.message + " ");
}
}else...{
trace("External interface is not available for this container.");
}
}
private function timerHandler(event:TimerEvent):void ...{
trace("Checking JavaScript status... ");
var isReady:Boolean = checkJavaScriptReady();
output.appendText("123");
if (isReady) ...{
trace("JavaScript is ready. ");
Timer(event.target).stop();
}
}
private function receivedFromJavaScript(value:String):void ...{
//trace("JavaScript says: " + value + " ");
output.text = value ;
}
private function checkJavaScriptReady():Boolean ...{
var isReady:Boolean = ExternalInterface.call("isReady");
return isReady;
}
private function calljs(event:MouseEvent):void ...{
if (ExternalInterface.available) ...{
ExternalInterface.call("sendToJavaScript", "123");
}
}
/** *//****
* 转换为字节数组,显示图片到场景
* @param e
*/
/**//*
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);
}
*/
private function save(e:MouseEvent):void ...{
//var url :String = _url+"?"+Math.floor(Math.random()*1000) ;
//this.submit(bitmapdata,url);
}
}
}
- actionscript3与javascript通信
- JavaScript与ActionScript3.0通信--1
- JavaScript与ActionScript3.0通信--2
- ActionScript3 与 javaScript 交互
- JavaScript与ActionScript3那些事
- ActionScript3.0 与服务器通信相关的类
- SWF(ActionScript3.0)与JavaScipt(JS)通信示例
- JavaScript与ActionScript3.0交互的一些问题
- ActionScript3.0与JavaScript之间的函数互调
- ActionScript3注入JavaScript脚本
- ActionScript与JavaScript通信
- Flex 与 javascript通信
- javascript与串口通信
- Flash与JavaScript通信
- JavaScript与Java通信
- javascript 与 flex 通信
- Flex与javascript通信javascript
- ActionScript3 使用post方法通信nodejs后端
- java处理汉诺塔问题
- 关于耳机的使用
- 一篇不错的gstream的component开发代码
- JSP中文乱码问题
- excel
- actionscript3与javascript通信
- wince6.0桌面背景+设置默认IP+开机自动运行程序
- Linux编程中如何获取当前时、分、秒。
- Apache Module简单一例
- oracle数据类型
- java连接oracle数据库
- 转: 如何进行远程Debug WebPart
- 生成验证码代码!
- UML2学习