易截截图软件、单文件、免安装、纯绿色、仅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 actionscript

as 不允许overload...即对于同一个函数名不能有不同的参数列表和返回值
类中的geter 和 setter 与其他的方法一样,除了
1.get函数没有参数,并且必须有返回值,并且必须有get关键字
2.set函数必须有参数并且没有返回值,并且必须有set关键字
Java代码
public function get sampleProperty( ):Str ......

Flex单元测试工具(FlexMonkey)


Testing Flex applications with FlexMonkey 1.0
Without automation, testing the UI components of your Flex
application can be tedious and time consuming. Adobe includes an
automation framework in Flex to enable developers to create automated
tests that operate at the GUI level. FlexMonkey
1.0 i ......

10 个FLex MVC框架


10 个FLex MVC框架
AdobeFlex及相关技术正成为RIA领域的主流。虽然Flex社区的规模还远比不上Java或Microsoft平台,但它正在FlexRIA开发者们的栽培下稳健地成长。许多开源开发框架也因此被创造出来:
Cairngorm(下载)
Cairngorm是最老也最成熟的Flex框架。它现在由Adobe拥有并开源,而且被Adobe的RIA顾问服 ......

flex中getDefinitionByName 函数的使用

在项目中自定义一个CheckboxGroup,这个控件里面包含多个Checkbox想控制Checkbox的行为:所以使用查找一下帮助使用flex中经典方法:getDefinitionByName 函数的使用
public function getDefinitionByName(name:String):Object
返回参数 name 中指定的类引用
参数 name:String - 类名称
返回 Object - 返回参数 name 中 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号