SWF与SWF交互
2010年07月23日
在AS2里SWF与SWF交互是非常容易的,可在AS3里一切都似乎复杂化了。
主SWF访问子SWF:
比如有两个SWF。main.swf 、game.swf,main.swf加载game.swf。main 里有个按钮 _btn,game.swf里有一个gameMc:MovieClip 。
当按m1时,gameMc暂停播放。
在AS2里可以方便的写:
var mc=this.createEmptyMovieClip("mc",10)
var loader:MovieClipLoader=new MovieClipLoader()
loader.loadClip("game.swf",mc)
loader.addListener(loadListener)
var loadListener=new Object()
loadListener.onLoadInit = function(target_mc:MovieClip) {
_btn.onRelease=function(){
target_mc. gameMc.stop()
}
}
可是如果在AS3里直接这样操作的话是会出错的,有2个新地方要注意:
ApplicationDomain、LoaderContext、
在main.as:
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.ProgressEvent;
import flash.system.ApplicationDomain
import flash.system.LoaderContext
import flash.display.SimpleButton
public class main extends MovieClip {
var _loader:Loader;
var _swfArray:Array;
var _urlRequest:URLRequest;
public function main() {
_swfArray=["game.swf","link.swf","news.swf"];
_loader=new Loader();
_btn.addEventListener(MouseEvent.CLICK,cm1);
var loadContxt= new LoaderContext(false,ApplicationDomain.currentDomain)
/*这个在更复杂的例子中会遇到,比如
RuntimeAssetsExplorer。www.adobe.com/go/learn_programmingAS3samples_flash_cn
*/
_loader.contentLoaderInfo.addEventListener(Event.INIT,loaded);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loading);
_loader.load(new URLRequest(_swfArray[n]),loadContxt);
}
function loaded(e=null) {
trace("加载完成...");
var mc:*=e.target.content;
//mc.name="mc";
addChild(mc);
}
function cm1(e=null) {
var mc:*=_loader.content
mc.gameMc.stop()
}
}
}
子SWF访问主SWF:
当按了下game.swf里的gameMc:MovieClip,让main.swf的按钮_btn为不可见
game.as
package {
import flash.display.MovieClip;
import flash.events.*;
public class game extends MovieClip {
public var gameMcs;
public function game() {
//gameMc.stop()
gameMcs="hrrrrrrh";
trace("kkk");
gameMc.buttonMode=true;
gameMc.useHandCursor=true;
gameMc.addEventListener(MouseEvent.CLICK,setAlpha);
}
public function Test() {
return ("s");
}
public function setAlpha(e=null) {
e.target.play();
this.parent[’_btn’].visible=false;
}
}
}
最后,翻阅AS3帮助可以知道:
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
checkPolicyFile 属性
:指定 Flash Player 是否应在开始加载对象本身之前,尝试从所加载对象的服务器上下载跨域策略文件。 此标志适用于 Loader.load() 方法,但不适用于 Loader.loadBytes() 方法。
如果是使用 Loader.load() 方法下载 SWF 文件,也尽量不要将 checkPolicyFile 设置为 true。 这是因为 SWF 到 SWF 的权限不是由策略文件控制的,而是由 Security.allowDomain() 方法控制的,因此在加载 SWF 文件时 checkPolicyFile 不起任何作用。 在这种情况下不必再检查是否存在策略文件,因为这样会延迟 SWF 文件的下载,并且可能会不必要地占用网络带宽 (Flash Player 无法判断您的主下载将是 SWF 文件还是图像,这是因为策略文件下载先于主下载进行)。
applicationDomain 属性
(这里比较重要一点):
指定用于 Loader.load() 或 Loader.loadBytes() 方法的应用程序域。 只应在加载使用 ActionScript 3.0 编写的 SWF 文件(不是图像或使用 ActionScript 1.0 或 ActionScript 2.0 编写的 SWF 文件)时才使用此属性。
每个安全域被分成一个或多个由 ApplicationDomain 对象表示的应用程序域。 应用程序域并不是用于安全目的;它们用于管理 ActionScript 代码的协作单元。 如果是从其它域加载 SWF 文件,并允许将它放置到另外一个安全域中,则您将无法控制所加载的 SWF 文件被放置到哪个应用程序域中;即使您指定应选择某个应用程序域,也会忽略。 但是,如果是将 SWF 文件加载到您自己的安全域中(因为此 SWF 文件来自您自己的域,或者您正在将它导入到您的安全域中),您就可以控制为所加载的 SWF 文件选择哪个应用程序域。
在 LoaderContext.applicationDomain 中,您只可以传递您自己的安全域中的应用程序域。 如果试图传递任何其它安全域中的应用程序域,则会引发 SecurityError 异常。
securityDomain 属性
:指定用于 Loader.load() 操作的安全域。 只应在加载 SWF 文件(而不是图像)时使用此属性。
发表评论
-
关于动态贴图问题不能动态通过texture改变只能重新new 新material
2012-01-20 01:48 1618关于动态贴图问题不能动态通过texture改变只能重新new ... -
Flex学习收藏资料
2012-01-20 01:48 614Flex学习收藏资料 2010年09月16日 1、《Fl ... -
papervision3d学习笔记:图片墙(1)
2012-01-20 01:48 737papervision3d学习笔记:图片墙(1) 2010年 ... -
[AS3] Alternavta3d7.5教程(一)
2012-01-20 01:48 778[AS3] Alternavta3d7.5教程(一 ... -
广州工作2个月!差人的公司可以call我
2012-01-20 01:48 722广州工作2个月!差人的公司可以call我 2011年06月3 ... -
民国小学生的一篇作文
2012-01-19 09:35 683民国小学生的一篇作文 ... -
小学生作文能力的培养
2012-01-19 09:35 495小学生作文能力的培养 ... -
教小学生写作文1
2012-01-19 09:35 966教小学生写作文1 2011年09月09日 一、小学作文教 ... -
小学生期末评语
2012-01-19 09:35 522小学生期末评语 2010年0 ... -
小学生操行评语
2012-01-19 09:35 650小学生操行评语 2011年0 ... -
神机也有软肋 小米手机
2012-01-17 02:10 669神机也有软肋 小米手机 2011年09月11日 小米手机 ... -
Android中的3D相册
2012-01-17 02:10 1064Android中的3D相册 2011年11月28日 ... -
3D显卡
2012-01-17 02:10 5403D显卡 2011年08月30日 3D 显卡技术术语目前 ... -
揭开Wayland的面纱(一):X Window的前生今世
2012-01-17 02:10 752揭开Wayland的面纱(一):X W ... -
VLC各模块名称及功能介绍
2012-01-17 02:10 886VLC各模块名称及功能介绍 2010年10月28日 [3 ... -
在flex页面中安装AIR程序
2012-01-15 21:42 819在flex页面中安装AIR程序 2010年07月17日 ... -
利用反射调用另一个swf里的代码库
2012-01-15 21:42 578利用反射调用另一个swf里的代码库 2011年02月19日 ... -
AIR笔记 使用HTML
2012-01-15 21:42 669AIR笔记 使用HTML 2011年05月17日 a ... -
Flex Module 终极减肥篇之去掉最后哪一点赘肉
2012-01-15 21:42 596Flex Module 终极减肥篇之 ...
相关推荐
它提供了无须用户交互就能在SWF之间传递消息的功能,这与传统的HTTP请求或Socket连接不同,LocalConnection是基于内存的通信,速度更快且无需考虑网络限制。 创建LocalConnection实例时,需要指定一个唯一的名字,...
SWF文件的加密通常基于ActionScript,这是Flash编程语言的一种,用于控制动画和与用户交互。加密可能涉及混淆ActionScript代码、使用数字签名或应用自定义解密算法。这些措施使得普通用户无法直接查看或修改文件内容...
本案例“Flash与JS交互案例”展示了如何在网页中使SWF(Flash影片)与JavaScript进行数据交换,从而实现更丰富的用户体验。 首先,让我们了解Flash中的`ExternalInterface` API。这是Adobe Flash Player提供的一种...
Adobe AIR (Adobe Integrated Runtime) 提供了一个跨平台的应用程序运行环境,允许C#代码通过.NET Framework与SWF文件进行交互。通过AIR,可以实现更复杂的集成方案。 **2. 使用Socket通信**: 另一种实现C#与SWF...
本主题聚焦于“Delphi和Flash(SWF)交互”,这是一种将传统的桌面应用程序(如用Delphi编写)与Web多媒体元素(如Flash)相结合的技术。这种交互允许Delphi应用程序嵌入Flash内容,并与其进行数据交换,从而提升应用...
在数字媒体领域,尤其是互联网上的互动内容,SWF(ShockWave Flash)文件是一种广泛使用的格式,用于展示动画、游戏和其他交互式应用程序。然而,由于SWF文件通常包含敏感代码或内容,保护它们免受未经授权的访问和...
SWF(ShockWave Flash)是一种由Adobe公司开发的富媒体格式,主要用于创建动画、交互式应用程序和游戏。在网页设计中,SWF文件曾广泛应用于展示动态内容,如广告、小游戏和多媒体教学材料。然而,由于Adobe在2020年...
SWF(ShockWave Flash)格式是Adobe系统开发的一种文件格式,主要用于存储动画、交互式应用程序和其他多媒体内容。以下是对SWF插件及其相关知识点的详细说明: 1. **SWF文件格式**:SWF是用于在网络上传输多媒体...
SWF格式是Adobe Flash广泛采用的一种文件格式,它用于创建交互式动画、游戏、网页组件等富媒体内容。 在描述中提到,SWF Seeker是试用版本,这意味着它可能有功能限制或者使用时间限制,用户可能需要购买完整版来...
Flash源文件下载包含了一系列的.swf文件,这些文件是Adobe Flash Professional创作的动画或交互式内容的二进制格式。SWF(ShockWave Flash)是Adobe Flash Player支持的格式,广泛用于网页上的动画、游戏、视频和...
MOVIECLIP是Flash中的一个对象类型,它允许创建独立的、可重复使用的动画片段,这些片段可以在舞台上多次实例化或与其他元素交互。在转换过程中,这些复杂的动画会被分解成一系列连续的PNG帧,从而形成一个动画序列...
5. 交互性:支持用户与SWF内容进行交互,如点击按钮、填写表单等。 6. 安全性:防止恶意的ActionScript代码对用户的计算机造成危害。 压缩包内的“SWF播放器.exe”是播放器的可执行文件,双击运行即可启动播放器。...
SWF文件因其小巧、跨平台和能够包含动画、交互性等特点,广泛应用于互联网。 一、PPT转换为SWF的原因: 1. 兼容性:SWF格式被大多数浏览器和操作系统支持,确保了内容可以在各种设备上播放。 2. 网络友好的格式:...
《.swf文件在Flex界面设计中的应用与魅力》 在数字媒体领域,.swf文件(ShockWave Flash)是一种广泛使用的格式,尤其在交互式网页设计和动画制作中占据了重要地位。标题中的"很漂亮的"一词,揭示了这类文件在视觉...
在计算机软件开发领域,尤其是游戏和多媒体应用中,SWF(ShockWave Flash)文件常用于存储动画、交互式内容以及图形。这些文件通常与Flash Player兼容,使得用户可以在网页上欣赏到丰富的动态效果。然而,有时SWF...
SWF是Adobe Flash的一种文件格式,通常用于在网页上播放动画、游戏和其他交互式内容。当用户访问含有SWF内容的网站时,浏览器会自动下载这些文件并存储在本地缓存中,以便下次访问时能更快地加载。SWF缓存查看器允许...
在从SWF转换回GIF时,这些交互性将丢失。 6. **文件格式兼容性**:转换后的新格式必须能在目标平台和浏览器上正常工作,考虑到不同平台对GIF和SWF的支持程度不同。 7. **性能优化**:转换过程应该考虑输出文件的...
在互联网早期,SWF格式被广泛用于网页中的动画和交互式内容,尤其是在线教育平台,如沪江网。这款播放器是针对这个需求而开发的,旨在帮助用户顺畅地在本地系统上播放SWF格式的教育资源。 该版本0.3可能是该软件的...
7. **StackedColumn3DLineDY.swf**:3D堆叠柱状图与双轴线图的组合,提供了立体视觉效果,同时利用双轴线图展示额外数据系列。 8. **MSCombi2D.swf**:2D组合图,融合了柱状图和线图,帮助用户同时理解数值和趋势。...
1. **兼容性**:由于SWF是Adobe Flash技术的核心格式,此播放器能够很好地支持各种类型的SWF文件,无论是简单的动画还是复杂的交互式内容,都能顺畅播放。 2. **用户体验**:简洁的界面设计使得操作简单直观,用户...