易截截图软件、单文件、免安装、纯绿色、仅160KB

关于跳过flex的sandbox实现访问本地资源的解决方案

需求: 
开发flex的过程中遇到一个问题。flex的项目需要在客服端显示一个局域网类的一台服务器的文件目录结构,并且要能够点击访问。
预想:
flex在以前的版本里面没有file类,这个可以用java代码在后台进行处理,生成xml文件。前台的flex到相应目录下面读取数据即可。
困难:
flash被下载到客服端,有严格的安全限制。如果flash能控制你的系统,那这个计算机世界太恐怖了。
flash的sandbox的内容很多,可以到网上去搜搜看。
现在问题是在客服端,点击访问本地资源的链接时,弹出flash错误:不能访问本地资源,只有信任的程序才能访问本地资源
解决方案:
这个问题很怪,在IE上面是能点击开来的,IE会用本地的打开方式来打开相应的文件,略过不提。
还要flex没有把路都堵死了,flex可以调用javascript代码(flash.external.ExternalInterface)。
在firefox里面有个插件叫做Noscript,可以允许js代码访问本地资源。还有一个插件叫locallink可以使用file://
而在chrome里面现在暂时还没有这样的功能,但是chrome有个插件叫IE tab。
所以下面就是我的解决方案:
IE: window.open("file://*");
firefox:安装Noscript,配置信任“your site”,"file://",同样是window.open("file://*");
chrome:待续
相关代码如下:
flex URLUtil:
import flash.external.ExternalInterface;
public class URLUtil    {
protected static const WINDOW_OPEN_FUNCTION : String = "window.open";
public static function openWindow(url : String, window : String = "_blank", features : String = "") : void {
var str:String= dealUrl(url);
ExternalInterface.call(WINDOW_OPEN_FUNCTION, "file:///"+str, window, features);
}
private static function dealUrl(str:String):String{
var string:String=str.substr(2);
var array:Array=string.split("\\");
var url:String="//";
for(var i:int=0;i<array.length;i++){
if(array[i] == ""){
url=url+array[i];
}else{
url=url+array[i]+"/";}
}
return url;
}
}
还有一个js 方法不要忘记了
获得user.agent。不同的浏览器不同的处理方法。


相关文档:

flex多文件上传工具

   flex多文件上传工具(自用)
JAVA类
package com.shine.framework.flexUpload;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; ......

FLEX中的Fluorine网关与WebService的区别

因为无论是FLEX,还是Silverlight、AJAX,他们都无法直接操作数据库(据最新消息,微软有了Microsoft .NET RIA Services,它可以直接操作数据库,我期待着她能在VS2010中出现),通常用WEBSERVICE等中间人的方式来进行SOAP协议的的文本传输,效率很低(大家试一下就会知道简直无法忍受),FLEX为了加快传输速度,于是制定了 ......

flex 客户端缓存 module swf(转)

flex或者flash客户端的缓存,并不是指浏览器的缓存,浏览器的缓存在一定时间后会过期,先作此声明。
使用flex或者flash开发出来的网站最大的问题就是swf文件过大,国内网速有限,导致加载时间过长,这样会丢失很多潜在的客户。
flex使用RSL技术,可以解决框架的缓存与共享,很大程度的解决了加载问题。但是如果项目过大, ......

flex通过blazeds与java实现增删改查

用的是MySQL数据库。
1,建一个userdb库,再建userinfo表,字段:id(int),username(varchar),password(varchar)。
create database userdb;
use userdb;
create table userinfo(
id int(10) not null auto_increment,
username varchar(20),
password varchar(20),
primary key(id));
2,DBConnection.jav ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号