关键字: flex

一直以来,由于处于安全上的考虑,flash一直无法对本地文件进行操作。目前针对该问题以经有了几种解决方案,如:利用MMSave函数保存数据,但需要调试环境的支持。结合Javascript保存数据,但有该方法有一个较大的缺点是,由于IE的限制,每次往本地保存数据时都IE都会弹出对话框询问,若装有杀毒软件的话,也会弹出警告的提示框。还有就是结合服务器端程序,如:asp,jsp等进行数据访问。在这里推荐一种使用SharedObject对象来进行数据访问的方法:

//注意这里的fooA,是要保存的文件名,后缀默认且必需为.sol
myObj = SharedObject.getLocal("fooA");         //生成一个本地共享对象
if (myObj.data.myObj == undefined) {         //如果该对象没有数据的场合
         trace("Storing Data, run me again");
         //以下是一个较复杂的数据结构
         //用来说明利用SharedObject对象也可以保存复杂的数据结构
         myObj = {};
         myarray = new Array();
         myarray.push({A:"106", B:"107", C:"108"});         //这是一个数据结构(要保存的数据1)
         myarray1 = new Array();
         myarray1.push({A:"1", B:"2", C:"3"});         //要保存的数据2
         //这里很令人困惑,其实这里的.fname和lname是任意写的你也可以写oname等
         myObj.fname = myarray;         //将数据放入数组中
         myObj.lname = myarray1;
         myObj.data.myObj = myObj;         //将数据赋值结共享对象
} else {
         trace("Retrieving Data");
         //取出数据文件.sol中的数据
         var firstname = myObj.data.myObj.fname;
         var lastname = myObj.data.myObj.lname;
         //由于保存的myObj.fname和.lname都是一个Array
         //所以取出来的myObj.fname也是一个Array
         trace("First Name: " + firstname[0]["A"]);
         trace("Last Name: " + lastname[0]["A"]);
}

SharedObject(共享对象)可以用来存储任何Flash支持的数据类型,比如数字、字符串、数组和对象等等。SharedObject按存放位置可分为本地型(存在客户端)和远程型(存在服务器端)。本地型共享对象的扩展名为.sol。对于Windows98(me)用户来说,默认的存储路径是:Application Data/Macromedia/Flash Player/服务器域名路径/Flash电影文件名.swf;对于Windows2000(xp)用户来说,默认的存储路径是:Documents and Settings/[User]/Application Data/Macromedia/Flash Player/服务器域名路径/Flash电影文件名.swf。本地型共享对象只能将数据保存在默认路径下,而且扩展名只能是.sol。在网上有看到说该方法受文件大小的限制,最大为1K,但经过反复实验发现,该方法并不受文件大小限制。

================================================

Flash Player 8 已增强了安全模型,在该安全模型中,默认设置为不允许本地计算机上的 Flash 应用程序和 SWF 文件与 Internet 和本地文件系统通信。

在 Flash Player 8 中,本地 SWF 文件可以具有以下权限级别:

只访问本地文件(默认) 本地 SWF 文件可从本地文件系统和统一命名约定 (UNC) 网络路径读取内容。

只访问网络       本地 SWF 文件可以访问网络(如 Internet),但不能访问安装该文件的本地文件系统。

故CMP(CenFun Music Player)默认是不可以直接在本地播放网络音乐的。

在网上查找资料,除了使用非官方Flash Player可以播放外,还可以在您的电脑添加一个受信任配置文件来解决,方法如下:

新建一个文本文件,如命名为:TrustFiles.txt       用来存放受信用配置,在文件中添加内容,如下:

c:/
d:/
e:/
f:/

有几个分区就添加几个,然后保存,将此文件放到下面的目录即可:

C:/Documents and Settings/Administrator/Application Data/Macromedia/Flash Player/#Security/FlashPlayerTrust

其中C是你的操作系统盘,Administrator是您的操作系统用户名,注意对应到您的情况,后面的目录如果没有就新建一个。

============================================

仅做开发者本地测试用,方法均来自网络,欢迎大家添加。
---------
1.http://www.wiyiflash.com/bbs/showthread.asp?postid=4537
        一种方法是修改你的发布设置,将“本地访问安全性”修改为"只访问网络"。还有一种仅仅是为了本地测试方便,你可以在本地的设置中放一个信任配置文件,
windows XP路径在:C:/Documents and Settings/用户名/Application Data/Macromedia/Flash Player/#Security/FlashPlayerTrust
如果不存在FlashPlayerTrust文件夹就创建一个。打开记事本,写上你的swf所在的文件夹如:
F:/CeShi
然后保存为CeShi.cfg,放置到FlashPlayerTrust文件夹中

2.Flash 开发的配置文件 FlashPlayerTrust
        来自http://www.cbmland.com/blog.php?archive/2006-06-0

自从flash8出世就收紧了安全策略。默认本地域不能访问网络。开发时确带来不少麻烦。今写了一个cmd文件来解决这个问题。一劳永逸,共享出来。下载下来双击既可。

允许c:d:e:f:盘上的任何Flash访问网络。也可以自己修改。仅供开发者使用!!!(only for 2000/XP)

rem FlashFlashPlayerTrust.cmd

c:

cd %windir%/system32/Macromed/Flash

md FlashPlayerTrust

cd FlashPlayerTrust

echo c: >myTrustFiles.cfg

echo d: >>myTrustFiles.cfg

echo e: >>myTrustFiles.cfg

echo F: >>myTrustFiles.cfg

cd %userprofile%/Application Data/Macromedia/Flash Player/#Security

md FlashPlayerTrust

cd FlashPlayerTrust

echo c: >myTrustFiles.cfg

echo d: >>myTrustFiles.cfg

echo e: >>myTrustFiles.cfg

echo F: >>myTrustFiles.cfg

===========================================

这个界面大家都应该碰到过吧。自从flash8出世就收紧了安全策略。默认本地域不能访问网络。开发时确带来不少麻烦。今写了一个cmd文件来解决这个问题。一劳永逸,共享出来。下载下来双击既可。

允许c:d:e:f:盘上的任何Flash访问网络。也可以自己修改。仅供开发者使用!!!(only for 2000/XP)

rem FlashFlashPlayerTrust.cmd

c:

cd %windir%/system32/Macromed/Flash

md FlashPlayerTrust

cd FlashPlayerTrust

echo c: >myTrustFiles.cfg

echo d: >>myTrustFiles.cfg

echo e: >>myTrustFiles.cfg

echo F: >>myTrustFiles.cfg

cd %userprofile%/Application Data/Macromedia/Flash Player/#Security

md FlashPlayerTrust

cd FlashPlayerTrust

echo c: >myTrustFiles.cfg

echo d: >>myTrustFiles.cfg

echo e: >>myTrustFiles.cfg

echo F: >>myTrustFiles.cfg

================================================

于是我决定制作这个小东东.
直接通过Windows右键菜单来修改SWF的安全策略:

点击下载(download:104K)
注:菜单命令可将同一目录下所有SWF文件进行批量更新.

SWF 在 Flash Player 8 表现出四种安全沙盒类型:
1,Remote (通过HTTP URL访问的SWF) 简单说就是放在网上的SWF(本地虚拟站点也算).
安全机制与Flash Player 6相同(crossdomain.xml)

2,Local-with-filesystem 默认方式,可访问本地文件系统,但不能与网络通讯.
也就是这种本地使用getURL()会看到安全提示对话框.

3,Local-with-networking 可以访问网络,但不能访问本地文件系统.
可以载入同一目录下的SWF: a.loadMovie("b.swf");
但不能这样:a.loadMovie("sub/b.swf");或a.loadMovie("c:/b.swf");
(上两种可通过 Flash Local Content Updater 直接转换)

4,Local-trusted (通过Settings Manager指定过的本地SWF.这种权限最大.
相当于Local-with-filesystem-with-network)

范例(安全沙盒类型检测):
::URL::http://dengjie.com/studio8/sandbox.swf
(试试把这个文件下载到本地,再看看显示结果.)

======================================

Flash Player 有几种不同的安全性沙箱。每个安全性沙箱确定 SWF 文件如何与本地文件系统、网络或如何同时与本地文件系统和网络交互。

默认的可以设置为只访问网络,或者只访问本地,如果要同时访问,那么要创建如下配置文件。

创建面向 Flash 开发的配置文件

Flash 8 创作工具在您的硬盘上设置了一个标志,将您标识为开发人员,使您可以使用"全局安全设置"面板面向开发人员的特定版本,而不是面向用户的"全局安全设置" 面板。此标志位于硬盘上的 FlashAuthor.cfg 文件中,该文件在安装 Flash Basic 8 和 Flash Professional 8 创作工具时自动安装。
FlashAuthor.cfg 文件所在目录如下:

Windows     boot disk/Documents and Settings//Application Data/Macromedia/Flash Player/#Security

Macintosh /Users//Library/Preferences/Macromedia/Flash Player/#Security/

默认情况下,该文件设置为 LocalSecurityPrompt=Author,表示在没有安装创作工具时您在计算机上看到的警告将您视为 Flash 开发人员而非用户。

您可以以最终用户的身份测试本地应用程序,并且可以看到最终用户看到的警告对话框。为此,请在文本编辑器中打开 FlashAuthor.cfg,并将 FlashAuthor.cfg 中的 LocalSecurityPrompt 更改为如下所示:

LocalSecurityPrompt=User

对于设计或开发过程中的其他开发人员或在其本地硬盘上测试 Flash 应用程序但没有安装 Flash 8 创作工具的用户,您可能需要为他们提供将 LocalSecurityPrompt 设置为 Author 的 FlashAuthor.cfg 文件。通过本地部署内容有助于您模拟最终用户体验。

注意:如果删除了 FlashAuthor.cfg 文件,则启动 Flash 8 创作工具时将重新创建该文件。

在硬盘上的 #Security 目录中,您可以创建一个 FlashPlayerTrust 目录,其中可以存储唯一的配置文件。您可以在这些文件内指定硬盘上要信任的目录或应用程序。此目录不需要管理访问权限,因此用户不具有管理权限也可以设置 SWF 文件的权限并测试应用程序。

如果不指定一个目录,则您的内容可能无法达到预期效果。FlashPlayerTrust 目录中的配置文件包含目录路径。该文件可包含一些目录的列表,您可以向该文件添加新的路径。Flash Player 要求配置文件中每行包含一个路径。将任何以 # 符号开头的行(之前没有前导空格)视为注释。

创建配置文件以信任某个目录:

1.定位到硬盘上的 #Security 文件夹。
2.在 #Security 文件夹内部创建一个名为 FlashPlayerTrust 的文件夹。
3.使用文本编辑器在 FlashPlayerTrust 目录中创建一个新文件,并将其另存为 myTrustFiles.cfg。 您可以对该配置文件使用任何唯一的名称。
4.定位到测试 Flash 应用程序的目录。
5.在文件中键入或粘贴每个目录路径(硬盘上的任何目录路径),一行一个目录路径。您可以在不同行上粘贴多个目录路径。完成时,文件将看起来如下所示:
C:/Documents and Settings//My Documents/files/
C:/Documents and Settings//My Documents/testapps/
6.保存对 myTrustFiles.cfg 的更改。
7.测试从您添加到该文件的目录中访问本地和网络文件的文档。

现在,此目录中保存的 Flash 应用程序就可以访问本地文件和网络了。

每个配置文件中可以保存大量目录路径,FlashPlayerTrust 目录中也可以保存大量 *.cfg 文件。

在运行一下刚才无法正确访问本地和网络的SWF文件,你发现,已经可以访问了。

flash如何同时访问本地文件系统和网络文件相关推荐

  1. PHP:访问本地文件系统

    PHP:访问本地文件系统 file:// 说明 用法 可选项 file:// file:// - 访问本地文件系统 说明 文件系统 是 PHP 使用的默认封装协议,展现了本地文件系统. 当指定了一个相 ...

  2. linux文件移动到hdfs,解决从linux本地文件系统上传文件到HDFS时的权限问题

    当使用 hadoop fs -put localfile /user/xxx 时提示: put: Permission denied: user=root, access=WRITE, inode=& ...

  3. 文件系统位于服务器,如何访问hadoop文件系统上的文件,该文件系统位于与本地计算机不同的服务器上?...

    我有一台本地计算机(local_user@local_machine).hadoop文件系统位于不同的服务器(some_user@another_server)上.hadoop服务器中的一个用户名为t ...

  4. flash AS3.0访问加载的SWF文件中的属性、方法以及类、库中的影片剪辑

    对于FLASH,我们可以把任何的可视化元件都看成某个类文件的具体实例,包括swf文件. 我们可以把swf文件看成一个类的具体实例,而它里面拥有个个其他类的实例对象,例如: 我们新建一个loaded.f ...

  5. 访问ntfs文件系统获取目标文件簇流

    NTFS文件系统总体布局 MBR(Master Boot Record,主引导记录)又叫主引导扇区,是计算机开机后访问硬盘时必须要读取的首个扇区,它在硬盘上的三维地址为0柱面,0磁头,1扇区(整个硬盘 ...

  6. flash不能访问本地文件

    flash出现"不能访问本地资源";解决方案 linux下,如果没有文件夹自行创建 在/home/{user}/.macromedia/Flash_Player/#Security ...

  7. 利用html5读取本地文本文件及图片文件

    利用html5可以对本地的如文本.图片等文件读取操作,html5定义了一个file对象类型来表示文件,每个file对象对应一个文件.file对象有3个属性:name.size.type.name是不包 ...

  8. java file 网络文件_Java 网络文件传输

    读者范围: 本文是一篇简短入门文章.本文假设读者对Java的IO系统和Java的网络系统有所了解. 正文: 关于文件传输的问题,实际也是一种IO读写的基本问题.对于网络而言也是一种IO读写问题.因此所 ...

  9. SWF 文件不能访问本地资源 只有仅限于文件系统的 SWF 文件和可信的本地 SWF 文件可以访问本地资源。...

    错误信息:SecurityError: Error #2148: SWF 文件 D:/demo/test/index.swf 不能访问本地资源 D:/demo/test/bin-debug/textL ...

  10. 第十一、十二、十三、十四章 网络配置管理、归档和远程复制同步文件、软件包管理、创建访问linux文件系统

    第十一章 网络配置管理 网络地址获取方式: 1)DHCP自动获取 2)手动配置 1.网卡配置文件: /etc/sysconfig/network-scripts/ [root@server0 Desk ...

最新文章

  1. ueditor php 附件,ueditor单独调用上传附件和图片的功能
  2. Bloom Filter 大规模数据处理利器
  3. Oracle里面的用户smsdb无法登录 LOCKED(TIMED)
  4. 用电脑更新手机ios系统_手机系统频繁提示更新,到底要不要更新?
  5. 目前看的图神经网络(GNN)论文的一些总结
  6. userscript.user.js 文件头
  7. python3动态加载模块的方法实现
  8. MYSQL快速导入大量数据
  9. sqlserver无法连接到服务器的常见原因和解决办法
  10. 一篇了解什么是Spring AOP
  11. 多线程android代码,android入门 — 多线程(一)(示例代码)
  12. Three.js Scene Graph
  13. java 协议开发_用Java的NIO开发网络协议
  14. 二叉树转为单链表——Flatten Binary Tree to Linked List
  15. 如何完整离线保存网页,包括网页完整特效?
  16. 电力系统三相短路计算机计算报告,电力系统分析三相短路计算习题.doc
  17. 网件 无线打印机服务器,NETGEAR Genie让普通打印机实现Air print功能
  18. python怎样更新requests库-足球运动员的体能训练
  19. Cobaltstrike内网工具的使用笔记
  20. 东软睿驰获本田加持的背后:传统车企与新势力的对垒升级

热门文章

  1. 教孩子学编程python pdf_教孩子学编程 PYTHON语言版 PDF_Python教程
  2. Excel函数公式大全—MATCH函数
  3. 1000以内完数c语言程序_求1000以内完数 c语言 。。
  4. 电脑编程工作工资多少?
  5. PHICOMM(斐讯)N1盒子 - recovery模式救砖卡登录页LOGO卡1%卡4%卡26%
  6. Arduino+sim800 gsm收发短信
  7. matlab 调速系统试验,实验三-双闭环直流调速系统MATLAB仿真.doc
  8. 计算机学报发表论文格式,计算机学报论文格式(24页)-原创力文档
  9. 【接口测试用例设计思路】
  10. Broadcom WICED Wi-Fi 研究BCM943362WCD4之STM32F205+43362通信