很多时候,我们需要将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. JAVA集合中的迭代器的遍历

    JAVA中的迭代器,迭代实质上就是遍历,在JAVA中使用iterator()方法进行迭代.需要注意的是,iterator()方法的返回值是Iterator对象.Iterator对象有三个方法,hasN ...

  2. iOS调试程序的方法

    IOS各种调试技巧豪华套餐 普通操作 如图3 基本的断点操作如下 图4 点击那个黑列列就创建了一个断点,再次点击就临时取消这个断点(但是不删除),长按那个断点拖出去就删除了(mac os的系统工程师就 ...

  3. [转]NDK编译库运行时报dlopen failed: cannot locate symbol "__exidx_end" 解决办法

    原文链接:http://blog.csdn.net/acm2008/article/details/41040015 当用NDK编译的库在运行加载时报如下错: dlopen("/data/d ...

  4. zabbix主机自动注册

    一.主机自动注册的流程 zabbix agent指定server active主动自己的信息提供给zabbix_server,zabbix_server根据提供的信息自动添加主机,方便. 二. lin ...

  5. Weblogic10.3.6部署解决CXF webService 调用报错: “Cannot create a secure XMLInputFactory”

    一,解决步骤 1.添加jar包 stax2-api-3.1.4.jar woodstox-core-asl-4.4.1.jar 2.编写监听器 package com.neusoft.cxf.list ...

  6. SqlServer——索引

    索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表.在数据库系统中建立索引主要有以下作用: l快速存取数据: l保证数据记录的唯一性: l实现表与表之间的参照完整性: l在使用O ...

  7. java的集合框架详解

    前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法. 在Java语言中,Jav ...

  8. STL中 map 和 multimap

    1. 所在头文件<map>. 命名空间std, 声明如下: namespace std{ template <class Key,class T, class Compare = l ...

  9. SQL Server数据库大型应用解决方案总结(转)

    出处:http://tech.it168.com/a2012/0110/1300/000001300144.shtml [IT168 技术]随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计 ...

  10. [GO]goexit的使用

    package main import "fmt" func test() { defer fmt.Println("cccccccccccc")//在函数退出 ...