很多时候,我们需要将swf放到网页加载,并且将相应的资源都放到网页上,在网页中加载swf通常是通过"*.swf?p=..&p2=..."这样的方式来调用这个swf和传参数的,如果这个网页和swf放在同一个目录(即同一个文件夹下)是没有问题的,可是对于一个项目来说,我们可能会有很多这样的网页,都放在一个文件夹下很难管理,于是我们需要把他们放到不同的文件夹下,比如用a.html去加载b.swf,a.html在../1/2下,b.swf在../3/4下,那我们的swf怎么去加载与swf同目录的资源呢,我们的做法是:获得swf的所在的绝对路径,要获得swf的绝对路径,可以这样:var url:String = stage.loaderInfo.url;我们需要将文件名去掉url.slice(0,url.lastIndexOf("/")+1);在网页上自然行得通了,按道理本机也行得通,但是实际上:显示安全沙箱出错或者加载资源出错,why?

在本机上,我们运行swf,得到url的值为,路径也就是file:///C://upload/;

在本机上,我们 运行同目录下的html文件,发现沙箱问题,加载问题等,url的值是file://C:\upload\,所以找不到

于是我们需要改成:url.slice(0,url.lastIndexOf("\\")+1);注意:前面的\只是转义字符,实际上就是让路径遇到最后一个"\"时截止,这样本机运行就没问题了。

下面写个例子:

var url:String="";
this.loaderInfo.addEventListener(Event.COMPLETE,onLoaderComplete);//当swf自身加载完成后调用
function onLoaderComplete(e:Event):void{
this.loaderInfo.removeEventListener(Event.COMPLETE,onLoaderComplete);
url = stage.loaderInfo.url;//获得主swf的绝对路径,将之作为URLRequest的路径
url = url.slice(0,url.lastIndexOf("/")+1);//将文件名去掉
url = url.slice(0, url.lastIndexOf("\\") + 1);//前面的\只是转义字符,实际上就是让路径遇到最后一个"\"时截止,为了能在本机上运行.
//补充说明:下面代码是接收从html传过来的参数,html传参数一般有两种方式,swf皆可以用下面方式获取这些参数,欲知请继续阅读:
for(var key:String in paramObj){
trace(paramObj[key]);
}
trace((e.target as LoaderInfo).parameters["url"],"htm参数url");
trace((e.target as LoaderInfo).parameters["callbackfn"],"htm参数callbackfn");
trace((e.target as LoaderInfo).parameters["cf"],"htm参数cf");
}

从html传参一般有两种方式:

一:

<param name="movie" value="/swf/Upload.swf?url=http://localhost:15100/Handler.ashx&callbackfn=fasdfdasf&cf=upfile.c" />

二:

<param name="movie" value="/swf/Upload.swf" />
<param name="FlashVars" value="url=http://localhost:15100/Handler.ashx&callbackfn=fasdfdasf&cf=upfile.c" />

[ActionScripte 3.0] swf和网页通信的更多相关文章

  1. javascript和swf在网页中交互的一些总结

    Javascript和swf在网页中交互一般可有以下几种情况: 1.swf和这些调用的javascript在同域 2.swf和这些调用的javascript在不同域,比如加载远程的swf然后call别 ...

  2. 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。

    基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍.最后我们将会实现一个基于S ...

  3. 在ASP.NET2.0里打印网页指定的内容(比如打印网页里的一个Table)

    原文:在ASP.NET2.0里打印网页指定的内容(比如打印网页里的一个Table) 打印指定内容: <html> <head> <script   type= " ...

  4. vue2.0 $emit $on组件通信

    在vue1.0中父子组件通信使用$dispatch 和 $broadcast,但是在vue2.0中$dispatch 和 $broadcast 已经被弃用. 因为基于组件树结构的事件流方式实在是让人难 ...

  5. HDC 2021 | HMS Core 6.0:连接与通信论坛,为App打造全场景连接体验

    如何在弱网环境下让用户享受无中断沉浸体验? 如何在全场景互联中让多设备交互如丝般顺滑? 如何在无网区域让移动终端发出紧急求助信息? 连接无处不在,连接与体验息息相关!流畅的网络体验已成为应用开发的关键 ...

  6. 最新管家婆财贸ERP C9 V22.0的应用网页版的财务软件1000用户补丁免狗授权注册机网络版软件下载

    管家婆财贸ERPC9应用价值: 1.多组织独立核算 多种组织形态核算,出具独立的三大财务报表及业务报表,发挥经营管理的积极性,便于专业化运营. 2.兼顾统筹与分权 满足多种集团统管与分权管控模式需求, ...

  7. [ActionScritp 3.0] 使用LocalConnection建立通信

    包 flash.net 类 public class LocalConnection 继承 LocalConnection → EventDispatcher → Object 语言版本:  Acti ...

  8. vue2.0父子组件之间通信

    父组件是通过props属性给子组件通信的来看下代码: 父组件: <parent> <child :child-com="content"></chil ...

  9. 图解从 URL 到网页通信原理

    前言 一.文本对话--从请求到响应 二.TCP/IP 协议族介绍 三.基于TCP/IP通信过程 四.TCP建立连接及断开(重点补充) 小结 前言 互联网的原始目的,就是为了传输文本(文本对话).那我们 ...

随机推荐

  1. [Unity Shader笔记]渲染路径--Forward渲染路径

    [Unity Shader笔记]渲染路径--Forward渲染路径 (2014-04-22 20:08:25) 转载▼ 标签: shader unity renderingpath forward 游 ...

  2. faster-rcnn目录介绍

    data 用来存放pretrained模型,比如imagenet上的,以及读取文件的cache缓存 experiments 存放配置文件以及运行的log文件,另外这个目录下有scripts可以用end ...

  3. iOS中wkwebview加载本地html的要点

    项目中有些页面,我采用了html页面开发,然后用wkwebview加载的设计.在加载过程中遇见了一些问题,在这里进行一些记载和讨论.如有不同意见欢迎进行评论沟通. 问题时候这样的: 在webview的 ...

  4. devcloud 基础架构

           

  5. CentOS压力测试工具Tsung安装和图形报表生成Tsung安装配置

    Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器.针对 HTTP 测试,Tsung 支持 ...

  6. 1、SSH框架整合

    1.建立项目 2.导入SSHjar包 http://pan.baidu.com/s/1hsELr04 3.引入web.xml文件 <?xml version="1.0" en ...

  7. [SoapUI] UrlEncode编码/UrlDecode解码网站

    http://tool.chinaz.com/Tools/URLEncode.aspx 解码: 编码:

  8. 深入理解Cookie和Session机制

    转载理解Cookie和Session机制 目录 Cookie机制什么是CookieCookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片设置Cookie的所有属性Coo ...

  9. O_DIRECT方式读取文件示例

    #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <sys/stat.h& ...

  10. 一句话说说java设计模式

    设计模式 看到标题,大家是不是觉得不可思议,java的23种设计模式那么‘复杂’,那么‘难懂’,用一句话怎么说的明白呢? 首先,各位看官不要误解,近来在回头看设计模式,之前都看过,但时间是把‘杀猪刀’ ...