`
cev773wq
  • 浏览: 14938 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

SWF与SWF交互

 
阅读更多

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 文件(而不是图像)时使用此属性。
分享到:
评论

相关推荐

    使用LocalConnection进行swf之间的数据交互(附helloWorldDemo)

    它提供了无须用户交互就能在SWF之间传递消息的功能,这与传统的HTTP请求或Socket连接不同,LocalConnection是基于内存的通信,速度更快且无需考虑网络限制。 创建LocalConnection实例时,需要指定一个唯一的名字,...

    swf 去除文件保护 去除加密 swf文件解锁.

    SWF文件的加密通常基于ActionScript,这是Flash编程语言的一种,用于控制动画和与用户交互。加密可能涉及混淆ActionScript代码、使用数字签名或应用自定义解密算法。这些措施使得普通用户无法直接查看或修改文件内容...

    Flash与JS交互案例

    本案例“Flash与JS交互案例”展示了如何在网页中使SWF(Flash影片)与JavaScript进行数据交换,从而实现更丰富的用户体验。 首先,让我们了解Flash中的`ExternalInterface` API。这是Adobe Flash Player提供的一种...

    SWF之间通信、Flex与SWF之间通信

    Adobe AIR (Adobe Integrated Runtime) 提供了一个跨平台的应用程序运行环境,允许C#代码通过.NET Framework与SWF文件进行交互。通过AIR,可以实现更复杂的集成方案。 **2. 使用Socket通信**: 另一种实现C#与SWF...

    Delphi和Flash(SWF)交互

    本主题聚焦于“Delphi和Flash(SWF)交互”,这是一种将传统的桌面应用程序(如用Delphi编写)与Web多媒体元素(如Flash)相结合的技术。这种交互允许Delphi应用程序嵌入Flash内容,并与其进行数据交换,从而提升应用...

    SWF 加密 SWF Encrypt

    在数字媒体领域,尤其是互联网上的互动内容,SWF(ShockWave Flash)文件是一种广泛使用的格式,用于展示动画、游戏和其他交互式应用程序。然而,由于SWF文件通常包含敏感代码或内容,保护它们免受未经授权的访问和...

    swf播放软件 swf播放软件

    SWF(ShockWave Flash)是一种由Adobe公司开发的富媒体格式,主要用于创建动画、交互式应用程序和游戏。在网页设计中,SWF文件曾广泛应用于展示动态内容,如广告、小游戏和多媒体教学材料。然而,由于Adobe在2020年...

    swf插件swf插件

    SWF(ShockWave Flash)格式是Adobe系统开发的一种文件格式,主要用于存储动画、交互式应用程序和其他多媒体内容。以下是对SWF插件及其相关知识点的详细说明: 1. **SWF文件格式**:SWF是用于在网络上传输多媒体...

    SWF Seeker(SWF提取工具)

    SWF格式是Adobe Flash广泛采用的一种文件格式,它用于创建交互式动画、游戏、网页组件等富媒体内容。 在描述中提到,SWF Seeker是试用版本,这意味着它可能有功能限制或者使用时间限制,用户可能需要购买完整版来...

    20个Flash源文件下载. flash源文件下载。swf源文件,swf下载

    Flash源文件下载包含了一系列的.swf文件,这些文件是Adobe Flash Professional创作的动画或交互式内容的二进制格式。SWF(ShockWave Flash)是Adobe Flash Player支持的格式,广泛用于网页上的动画、游戏、视频和...

    SWF转PNG序列图工具

    MOVIECLIP是Flash中的一个对象类型,它允许创建独立的、可重复使用的动画片段,这些片段可以在舞台上多次实例化或与其他元素交互。在转换过程中,这些复杂的动画会被分解成一系列连续的PNG帧,从而形成一个动画序列...

    SWF播放器.rar 播放SWF文件

    5. 交互性:支持用户与SWF内容进行交互,如点击按钮、填写表单等。 6. 安全性:防止恶意的ActionScript代码对用户的计算机造成危害。 压缩包内的“SWF播放器.exe”是播放器的可执行文件,双击运行即可启动播放器。...

    ppt 转换为 swf 软件

    SWF文件因其小巧、跨平台和能够包含动画、交互性等特点,广泛应用于互联网。 一、PPT转换为SWF的原因: 1. 兼容性:SWF格式被大多数浏览器和操作系统支持,确保了内容可以在各种设备上播放。 2. 网络友好的格式:...

    .swf文件,很漂亮的

    《.swf文件在Flex界面设计中的应用与魅力》 在数字媒体领域,.swf文件(ShockWave Flash)是一种广泛使用的格式,尤其在交互式网页设计和动画制作中占据了重要地位。标题中的"很漂亮的"一词,揭示了这类文件在视觉...

    exe2swf 提取exe里的swf

    在计算机软件开发领域,尤其是游戏和多媒体应用中,SWF(ShockWave Flash)文件常用于存储动画、交互式内容以及图形。这些文件通常与Flash Player兼容,使得用户可以在网页上欣赏到丰富的动态效果。然而,有时SWF...

    SWF缓存查看器 SWF缓存查看器 SWF缓存查看器

    SWF是Adobe Flash的一种文件格式,通常用于在网页上播放动画、游戏和其他交互式内容。当用户访问含有SWF内容的网站时,浏览器会自动下载这些文件并存储在本地缓存中,以便下次访问时能更快地加载。SWF缓存查看器允许...

    GIF2SWF[gif转swf和swf转gif工具]

    在从SWF转换回GIF时,这些交互性将丢失。 6. **文件格式兼容性**:转换后的新格式必须能在目标平台和浏览器上正常工作,考虑到不同平台对GIF和SWF的支持程度不同。 7. **性能优化**:转换过程应该考虑输出文件的...

    沪江播放器SWF PLAYER 0.3 windows 版

    在互联网早期,SWF格式被广泛用于网页中的动画和交互式内容,尤其是在线教育平台,如沪江网。这款播放器是针对这个需求而开发的,旨在帮助用户顺畅地在本地系统上播放SWF格式的教育资源。 该版本0.3可能是该软件的...

    最全的fusioncharts 的swf文件

    7. **StackedColumn3DLineDY.swf**:3D堆叠柱状图与双轴线图的组合,提供了立体视觉效果,同时利用双轴线图展示额外数据系列。 8. **MSCombi2D.swf**:2D组合图,融合了柱状图和线图,帮助用户同时理解数值和趋势。...

    纯净swf播放器绿色版

    1. **兼容性**:由于SWF是Adobe Flash技术的核心格式,此播放器能够很好地支持各种类型的SWF文件,无论是简单的动画还是复杂的交互式内容,都能顺畅播放。 2. **用户体验**:简洁的界面设计使得操作简单直观,用户...

Global site tag (gtag.js) - Google Analytics