- 浏览: 1454292 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
使用Document Class为避免命名空间冲突,通常会取消Automatically dedare stage instances(自动声明舞台实例)设置。这样会导致一个诡异的问题:Firefox下的ExternalInterface.callback会失 效。另外,使用flash.external.ExternalInterface全名而不是直接使用ExternalInterface,也会避免 Firefox各版本下的一部分奇怪的问题。
下面是一个刚写的一个ExternalInterface的扩展类,用于判断ExternalInterface是否可用。
view plainprint?
package cn.myspace.actionscript.utils
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.events.TimerEvent;
import flash.external.ExternalInterface;
import flash.utils.Timer;
public class ExternalInterfaceUtil extends EventDispatcher
{
//////////////////////////////////////////////////////////////////////
//ExternalInterface Setting
public static const EXTERNAL_ISREADY:String = "isReady";
public static const EXTERNAL_DEBUG:String = "displayDebug";
//////////////////////////////////////////////////////////////////////
//Event type
public static const EXTERNAL_READY:String = "externalReady";
public static const EXTERNAL_OUT_OF_TIME:String = "externalOutOfTime";
//////////////////////////////////////////////////////////////////////
//class setting
private const MAX_COUNT:uint = 30;
private var readyTimeCounter:int = 0;
public function ExternalInterfaceUtil(target:IEventDispatcher=null)
{
super(target);
this.registerExternalInterface();
}
//////////////////////////////////////////////////////////////////////
//private
private function registerExternalInterface():void
{
if(flash.external.ExternalInterface.available)
{
try
{
if(this.isContainerReady)
{
setupCallBacks();
}
else
{
var readyTimer:Timer=new Timer(100);
readyTimer.addEventListener(TimerEvent.TIMER,onTimer_handler);
readyTimer.start();
}
}
catch(e:Error)
{
}
}
}
private function get isContainerReady():Boolean
{
var result:Boolean=Boolean(flash.external.ExternalInterface.call(ExternalInterfaceUtil.EXTERNAL_ISREADY));
return result;
}
private function onTimer_handler(e:TimerEvent):void
{
if(this.isContainerReady)
{
Timer(e.target).stop();
setupCallBacks();
}
else
{
if(this.readyTimeCounter < this.MAX_COUNT)
this.readyTimeCounter++;
else
{
Timer(e.target).stop();
this.dispatchEvent(new Event(ExternalInterfaceUtil.EXTERNAL_OUT_OF_TIME));
}
}
}
private function setupCallBacks():void
{
this.dispatchEvent(new Event(ExternalInterfaceUtil.EXTERNAL_READY));
}
}
}
package cn.myspace.actionscript.utils { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IEventDispatcher; import flash.events.TimerEvent; import flash.external.ExternalInterface; import flash.utils.Timer; public class ExternalInterfaceUtil extends EventDispatcher { ////////////////////////////////////////////////////////////////////// //ExternalInterface Setting public static const EXTERNAL_ISREADY:String = "isReady"; public static const EXTERNAL_DEBUG:String = "displayDebug"; ////////////////////////////////////////////////////////////////////// //Event type public static const EXTERNAL_READY:String = "externalReady"; public static const EXTERNAL_OUT_OF_TIME:String = "externalOutOfTime"; ////////////////////////////////////////////////////////////////////// //class setting private const MAX_COUNT:uint = 30; private var readyTimeCounter:int = 0; public function ExternalInterfaceUtil(target:IEventDispatcher=null) { super(target); this.registerExternalInterface(); } ////////////////////////////////////////////////////////////////////// //private private function registerExternalInterface():void { if(flash.external.ExternalInterface.available) { try { if(this.isContainerReady) { setupCallBacks(); } else { var readyTimer:Timer=new Timer(100); readyTimer.addEventListener(TimerEvent.TIMER,onTimer_handler); readyTimer.start(); } } catch(e:Error) { } } } private function get isContainerReady():Boolean { var result:Boolean=Boolean(flash.external.ExternalInterface.call(ExternalInterfaceUtil.EXTERNAL_ISREADY)); return result; } private function onTimer_handler(e:TimerEvent):void { if(this.isContainerReady) { Timer(e.target).stop(); setupCallBacks(); } else { if(this.readyTimeCounter < this.MAX_COUNT) this.readyTimeCounter++; else { Timer(e.target).stop(); this.dispatchEvent(new Event(ExternalInterfaceUtil.EXTERNAL_OUT_OF_TIME)); } } } private function setupCallBacks():void { this.dispatchEvent(new Event(ExternalInterfaceUtil.EXTERNAL_READY)); } } }
使用:
private function initExternalInterfaceUtil ():void
{
var ext:ExternalInterfaceUtil = new ExternalInterfaceUtil();
ext.addEventListener(ExternalInterfaceUtil.EXTERNAL_READY, onReady_handler);
}
private function onReady_handler(e:Event):void
{
//flash.external.ExternalInterface.addCallback(this.AS_DEBUG, displayDebugInformation);
//flash.external.ExternalInterface.addCallback(this.AS_PLAY, startPlay);
}
在页面上,添加如下JS:
<script>
var jsReady = false;
var flashMovie;
function isReady()
{
return jsReady;
}
function init()
{
jsReady = true;
if (document.getElementById)
{
flashMovie = document.getElementById("flashObject");
}
}
window.onload = init;
function callExternalInterface()
{
if (flashMovie)
{
flashMovie.startPlay();
}
}
</script>
<div id="flashcontent"></div>
<script type="text/javascript">
var fo = new SWFObject("flashEXTest.swf", "flashObject", "300", "350", "8.0.15", "#ffffff", true);
fo.addParam("wmode", "opaque");
fo.addParam("allowScriptAccess", "always");
fo.write("flashcontent");
</script>
发表评论
-
Apache FlexJS 0.0.1 和 Apache Flex FalconJX 0.0.1发布
2015-11-01 19:44 558原文地址:http://note.sdo.com/u/634 ... -
Flash Catalyst 常用键盘快捷键
2011-03-28 15:38 1069转自:http://www.riameeting.com/ ... -
8款很实用的Actionscript写的位图(BitMap)操作类
2011-03-24 12:09 1948AS3 Scale9 Bitmap ... -
VC++ 项目中使用 FLEX
2011-03-24 09:13 19521, http://hi.baidu.com/qinpc/ ... -
flex应用开发/flash应用开发 代做flash作业/flex作业
2011-01-09 20:37 347专业承接flex应用开发/flash应用开发 ... -
脑袋里的秘密,输入姓名就可以知道你在想什么! flex版
2010-12-29 11:34 2551输入名字就可以知道她/他在想什么的工具~~ -
一个flex聊天机器人
2010-12-18 10:42 1660无聊之下所作,供大伙娱乐,随边聊聊。。。 -
Flex:基于Flex-config.xml的命令行编译
2009-07-01 09:33 1899关键字: Flex Flex2 编译 mxmlc ... -
抽出flash与java 用AMF交互代码
2009-06-30 15:09 3665最近做的一个java 与flash通讯的项目,由于项目框 ... -
BulkLoader类和PV3D
2009-06-26 17:02 1973AS3取消了movieclip的loader类,所以加 ... -
使用 Flex Builder 3.x 分析工具 Profile
2009-06-25 11:26 3422前言 关于分析工具 (原文见Flex Builder ... -
AMF3+JAVA的调用范例
2009-06-24 17:44 2566[AS3]AMF3+JAVA的调用范例 amf是Ad ... -
Flex 程序性能测试
2009-06-24 16:02 1956Flex 程序性能测试 作者:叶晖俊 yehui ... -
Flex RemoteObject类参考
2009-06-19 11:39 1245<mx:RemoteObject>标记 ... -
flex画的菱形
2009-05-11 16:19 3461package com { impo ... -
理解 Flex itemRenderer - 第 4 部分: 状态和过渡
2009-05-08 09:23 1719itemRenderer 最擅长与应用 ... -
理解 Flex itemRenderer - 第 5 部分: 效率
2009-05-08 09:21 1773如果您要显示大量 itemRenderer-无论在 Dat ... -
VO to XML converter
2009-05-04 09:00 1157private function convertToXM ... -
Flex全屏
2008-09-26 11:11 1797private function goFullScreen( ... -
Flex与Win32通信实例之ExternalInterface
2008-09-11 16:34 3493关键字: flex win32 vc++ vc externa ...
相关推荐
需要注意的是,`addCallback`仅在某些特定环境下有效,如Windows上的Internet Explorer使用NPRuntime API,以及Mozilla 1.7.5及更高版本的Firefox。在不支持的环境中尝试使用`addCallback`可能会触发`SecurityError`...
1. **启用ExternalInterface**:在Flex中,首先需要确保ExternalInterface可用。在Flex组件或MXML文件中,可以通过`ExternalInterface.available`属性检查其是否已被浏览器支持。如果可用,可以继续进行交互;如果不...
ExternalInterface在我看来就是flash为了外部程序的调用所声明的接口。看到论坛里有好多人问但是回答的就不是很多,就把自己做的一个简单的例子放上来.写的不好,希望能抛砖引玉,大侠勿拍!!这个是里面用到的flash...
标题中的“同时支持iexplorer和firefox的javascript复制拷贝信息到剪贴板方法”指的是在Web开发中,使用JavaScript实现跨浏览器(包括Internet Explorer和Firefox)的信息复制功能。JavaScript是一种广泛使用的...
在本文中,我们将深入探讨如何在AS3.0(ActionScript 3.0)中使用ExternalInterface类与JavaScript进行交互,特别是在实现一个自定义播放器的场景中。这个主题是针对那些希望在网页中集成Flash内容并与网页的...
- **调用方法**:通过`ExternalInterface.call`在AS3端调用C#中的方法。 - **处理返回值**:C#端通过`axShockwaveFlash1.SetReturnValue`设置返回值。 - **事件处理**:C#端使用`axShockwaveFlash1_FlashCall`事件...
特别是在需要高并发处理能力和强大计算性能的场景下,OpenSPARCT1处理器展现出了其独特的优势。 #### 七、知识产权声明 文档明确指出,Sun Microsystems拥有与OpenSPARCT1处理器相关的多项知识产权。这包括但不...
在Flash与Java交互的过程中,核心机制是通过Flash Player提供的`ExternalInterface`类实现ActionScript方法与容器(例如网页浏览器)中的JavaScript或ActiveX代码之间的调用。这使得开发人员能够在Flash应用程序内部...
首先,你需要确保浏览器支持`ExternalInterface`,如现代的Chrome、Firefox、Safari和Internet Explorer。 1. **启用ExternalInterface** 在Flex中,首先需要检查`ExternalInterface`是否可用,因为并非所有浏览器...
- Firefox等浏览器出于安全考虑,默认不允许通过脚本直接复制内容到剪贴板。 - 在较老版本的IE浏览器中,可以直接通过脚本复制内容,但在较新版本中会出现安全提示,提示用户可能受到恶意脚本影响。 2. Flash解决...
·Firefox 14 ·Chromium 22 ·Chrome 21 (*Chrome 21使用新的PPAPI类型Flash Player插件,由于其安全沙箱特性,无法在本地进行访问,因此需要在互联网或IIS等虚拟站点测试运行。禁用PPAPI使用NPAPI类型的Flash ...
例如,开发者可能使用Firefox的Firebug或Chrome的Developer Tools来调试这些交互,查看网络请求,检查DOM结构,以及理解JavaScript和Flex之间的通信过程。 文件列表中的"flexjavascript"可能包含了一个实际的示例...
标题所提及的问题在于,这个功能在不同浏览器上可能存在兼容性问题,例如IE(Internet Explorer)通常可以支持,但Firefox(火狐浏览器)可能无法正常工作。为了解决这个问题,开发者们常常会采用多种技术,如Flash...
然而,随着HTML5的发展和安全性的考虑,Flash逐渐被淘汰,尤其是各大浏览器如谷歌Chrome、微软IE(现已被Edge取代)和Mozilla火狐Firefox等已经或计划停止对Flash的支持。在这种背景下,“flash录音兼容问题得到解决...
在ActionScript3.0与JavaScipt通信的时候需要用到ExternalInterface类。 “ExternalInterface”类是外部API,在ActionScript和FlashPlayer的容器之间实现直接通讯的应用程序编程接口,例如,含有JavaScript的HTML页...
在Flex应用的场景下,IFrame常用于在Web页面中嵌入由Flex技术构建的富互联网应用程序(RIA)。 Flex是基于ActionScript的一个开源框架,用于创建高性能、跨平台的RIA。ActionScript是Adobe Flash Platform的主要...
在现代Web开发中,Flash(ActionScript 3.0,简称AS3.0)与JavaScript(JS)的交互是常见的技术需求,特别是在实现富互联网应用(RIA)时。这种交互能力使得网页上的Flash内容能够与JavaScript环境进行通信,从而...
在现代Web开发中,JavaScript(JS)和Adobe Flash(AS,ActionScript)是两种常见的交互技术,它们在...在实践中,开发者需要考虑安全、兼容性和数据转换等问题,以确保在各种浏览器和Flash Player环境下都能正常工作。
5. **处理兼容性问题**:在某些情况下,尤其是Internet Explorer,可能需要额外的配置来确保`ExternalInterface`正常工作,例如设置正确的Flash Player安全设置。 6. **测试和调试**:确保在各种浏览器和环境中进行...
在Flash CS中,你需要为需要触发事件的对象添加事件监听器,并在事件触发时调用`ExternalInterface`暴露一个方法。例如,一个按钮的点击事件处理函数可能如下: ```as3 button.addEventListener(MouseEvent.CLICK, ...