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

EventArgExtend.as
package myeventhelper
{
public class EventArgExtend
{
public function EventArgExtend()
{
}
public static function create(f:Function,...arg):Function //addEventListener注册事件进行传递参数的方法
{ //EventArgExtend.create(comB.onGetParentTotal,this)
......

理解 flex actionscript

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

Flex设置浏览器标题

在Flex下设置页面浏览器标题Title工有两种方式:
1(推荐此方法).利用BrowserManager类设置Title:
BrowserManager.getInstance().setTitle("***信息系统");
可以将上面一行代码写在系统的初始化函数中
2.在Apllicaaction标签下设置pageTitle属性:
  <mx:Application xmlns:mx="http://www.adobe.com/ ......

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号