很多时候,我们需要将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. Linux实战教学笔记36:PHP服务缓存加速深度优化实践

    一,PHP缓存加速器介绍与环境准备 1.1 PHP缓存加速器介绍 1.1.1 操作码介绍及缓存原理 当客户端请求一个PHP程序时,服务器的PHP引擎会解析该PHP程序,并将其编译为特定的操作码(Ope ...

  2. java算法 第七届 蓝桥杯B组(题+答案) 4.分小组

    4.分小组  (代码填空) 9名运动员参加比赛,需要分3组进行预赛.有哪些分组的方案呢? 我们标记运动员为 A,B,C,... I下面的程序列出了所有的分组方法. 该程序的正常输出为:ABC DEF ...

  3. 669. Trim a Binary Search Tree修剪二叉搜索树

    [抄题]: Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so ...

  4. ProxyPattern(23种设计模式之一)

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...

  5. Java TreeMap的排序

    TreeMap 和 HashMap 用法大致相同,但实际需求中,我们需要把一些数据进行排序:以前在项目中,从数据库查询出来的数据放在List中,顺序都还是对的,但放在HashMap中,顺序就完全乱了. ...

  6. C++ STL 全排列函数

    C++  全排列函数...一听名字就在<algorithm>中... 首先第一个说的是next_permutation: #include <algorithm> bool n ...

  7. echo $[1 + 2] shell中 $[] 在bash中同$(()),用于算术计算

    shell脚本编写:echo $[ 11#8+1] 输出结果是几,为什么,怎么算来的?  摘自:https://zhidao.baidu.com/question/334766451.html   结 ...

  8. CentOS 7 升级内核 Kernel

    安装kernel 首先安装elrepo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.e ...

  9. Makefile模板

    CC = gcc LD = gcc CFLAGS = -Wall -c LDFLAGS = SRC_DIRS = src test INC_DIRS = inc OBJ_DIR = obj OUT_D ...

  10. Java多线程设计模式(二)

        目录(?)[-] Guarded Suspension Pattern Balking Pattern Producer-Consumer Pattern   Guarded Suspensi ...