关于flash后台通信问题,大家先看下
火山的Flash+asp教程:
http://bbs.blueidea.com/thread-2701824-1-1.html
转入正题。
其实这个问题,我一直都忽略了。我是从Flash MX时代走过来的人,MX2004出来后,AS就没有再去认真地学下去,直到现在,Player7后的很多新功能我几乎都没有用过,像Tween类,filters类等等。
FileReference类其实也有很长一段时间没引起我的兴趣,但是,看了Flash 8自带的Sample以后,发觉这东东蛮有用的,可以选择本地图片,然后显示在Flash里头。
不过,它的显示是通过上传,然后再下载来实现的,觉得很麻烦,看个本地图片也要经过网络(不过当初没有怪它,大概是要演示FileReference类的upload吧),决定把它改装一下,做个本地的图片浏览器。Flash 8能支持jpg,gif,png三类图片,能改出来觉得用途还是有滴。
然而,一切都让我失望了,搞了大半天,都不能把图片直接读出来,就是因为FileReference类无法获取文件的路径,只能得到文件名,想用loadMovie或者mcLoader类通过图片路径读取相应图片,还是没办法。可是,感觉只是差一点点啊。
虽然帮助文件没有提到如何获取文件路径,但是我仍不死心,总感觉是有的,于是,我写了下面的代码测试:
import flash.net.FileReference;
var fr:FileReference = new FileReference();
fr.browse();
var listener:Object=new Object();
fr.addListener(listener)
listener.onSelect = function(file:FileReference) {
for (var i in file) {
trace(i+":"+file[i]);
}
};
选好了一个文件以后,输出的结果
_listeners:[object Object]
creator:undefined
creationDate:Thu Feb 15 20:58:03 GMT+0800 2007
modificationDate:Thu Feb 15 20:58:04 GMT+0800 2007
size:3753620
type:.mp3
name:2007127171248.mp3
晕了,用for来枚举都得不到路径,看来这次是彻底绝望了。限制安全性也不用限制成这样吧,Macromedia?
而且,这也将意味着,代码中的file对象不能自己手动构造,必须通过FileReference的browse方法来构造。因为,仅通过输出的结果,是不可能得到你浏览的文件的,就是因为没了路径。
通过各大搜索引擎去寻找如何获取文件路径的答案,都是只有问的,没有回答的。
因为问这一问题的人不多,所以,这事情早搁浅了,一直没管它。
后来,朱高兄想做个可以播放本地音乐的播放器,是因为他看中了Flash 8的FileReference类。但是,当我道出了FileReference类不能获得文件路径的真相以后,他的这一想法就像我当初做图片浏览器的想法那样,给打消了。
最近又有人问到了此问题,看来,也是时候要研究下了。
http://bbs.blueidea.com/thread-2721771-1-1.html
要解决FileReference中的这一问题,至少目前来说,靠Flash是没有用的了,既然网页里头的文件域有完整路径,我们为何不去应用一下呢?
所以,解决此问题,用到的,主要还是Flash与js的通讯了,之前的教程都是用fscommand来弄,这次尝试用ExternalInterface来实现,所以,接下来会先介绍ExternalInterface类的用法(这个相信大多数人会了,说简单些),然后就是文件域中的一个相当于FileReference中browse的一个方法,以及类似于FileReference中onSelect的一个事件。
演示地址:
http://hbro.cincn.com/HBrO/course/fileField/fileField.html
进入实例讲解之前,先介绍上面所说的几点内容:
1 ExternalInterface类的使用
这里均以网页里Flash与js的通讯为例。首先,在Flash里头,ExternalInterface类是在Flash.net包里头,一般为方便以后调用该类时不输入此路径,as里会先添加
import flash.net.FileReference
添加了这一句以后,在使用该类时,就不需要重复输入flash.net了。
接着,要在Flash里头调用js的函数,可以使用call方法
call(methodName:String, [parameter1:Object])
为方便演示,我使用js一个内置的alert方法来进行测试。
新建个Flash文档,保存为ExternalInterface.fla,然后输入下面的代码:
import flash.net.FileReference;
ExternalInterface.call("alert",1);
发布一下,然后在IIS下测试你刚生成的网页,就会看到有个1的对话框出来了。就是说,Flash调用js的函数这一步已经实现。
然后,就是到js控制Flash了。js可以调用Flash里头的函数,这里,ExternalInterface类也起到重要的作用。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyuweb/1215.html
发表评论
-
asp+access+as3+flash留言本教程——flash篇
2010-04-10 13:48 598[1b] 需要源文件留下email [/1b] [1b]成业作 ... -
TOMCAT+JSP+ACCESS+FLASH连接数据库
2010-04-10 13:48 642很多新人问FLASH和数据库连接的方法,这里介绍一下,后台可 ... -
Flash全站的技术应用-Flash也能播放wmv,wma
2010-04-10 13:47 682前言 Flash能播放除flv,m ... -
flash插入网页技巧-让浏览器响应鼠标滚轮
2010-04-10 13:47 706flash插入网页后,当flash获得焦点,也就是开始操作fl ... -
as3游戏开发之打气球系列(二)
2010-04-09 14:11 520HI,经过了昨天疯狂的理 ... -
我对as3声音架构的理解
2010-04-09 14:11 553一直都对as3的声音架构 ... -
as3.0游戏开发之打气球系列(一)
2010-04-09 14:11 485好久没有写正经的文章 ... -
as3按钮事件
2010-04-09 14:10 524在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 14:10 625很不错的视频教程 原文地址: http://blog.sina ... -
as3按钮事件
2010-04-09 12:01 544在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 12:00 481很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 12:00 571[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
舞台对象与脚本的关联--ReferenceError: Error #1056的处理
2010-04-09 12:00 832在 Flash 9中, 你可以把一个舞台对象关联到一个[1b] ... -
舞台对象与脚本的关联--ReferenceError: Error #1056的处理
2010-04-09 12:00 975在 Flash 9中, 你可以把一个舞台对象关联到一个[1b] ... -
Flash绘制美丽风景画之海滩
2010-04-08 11:33 669过前段时间学习,我们掌握了鼠绘的一些初步知识,今天我们来综合一 ... -
Flash制作卷轴水墨画展开动画效果
2010-04-08 11:33 555北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅 ... -
Flash鼠绘入门第十三课:绘制美丽春日飞燕
2010-04-08 11:33 560相传燕子于春天社日北 ... -
跑动的小火柴人(flash动画)
2010-04-08 11:33 512本教程描绘的是完全用ActionScript做的一个火柴棍小人 ... -
Flash与Ps打造模糊渐变动画
2010-04-08 11:32 654在电子杂志设计制作尤其是模版制作的过程中,需要使用Flash专 ... -
画人物的几个步骤
2010-04-08 09:49 759眼珠的画法: 1、用渐变色沟个圆。 2、把渐变的焦点移动 ...
相关推荐
Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载 一文的源码的完整工程文件,包含FLEX客户端和 ASP.NET服务端源码! 在VS2010和FLash builder4 中运行!
fl包可用于纯as工程的ui应用,而filereference则是官方的demo
完成的文件上传功能。使用FileReference类实现。还有多文件上传
Adobe flash3 AIR 更新 中文 Adobe flash3 AIR 更新 中文
Flash 上传图片 控件 FileReference FileReferenceList 支持多选上传及FileReference、FileReferenceList结合使用
Flex与.NET互操作 使用FileReference+HttpHandler实现文件上传/下载
flex 利用FileReference上传firefox报2038错误,在网上收集的一些解决办法和资料
import flash.net.FileReference; var allTypes:Array = new Array(); var imageTypes:Object = new Object(); imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)"; //指示可以上传的文件类型 ...
鉴于adobe并没有提供FileReference对浏览的文件的完整路径的接口。只能采用JS和fileinput控件来获取本地路径了。
//AS3将文本文件保存到本地 仅5行代码 多么简单 import flash.net.FileReference; var fileRef:FileReference = new FileReference();
FLEXd多文件上传,上传前MD5验证允许那些文件可以上传
通过flash.net.FileReference实现打开本地图片或音乐目录,有滤镜,可以设路径,仿照千千静听的波幅显示
使用FileReference类 使用AIR文件系统API 第章:存储本地数据 共享对象 加密的本地存储区 第章:在AIR中使用本地SQL数据库 关于本地SQL数据库 创建和修改数据库 操作SQL数据库数据 使用同步和异步数据库操作 对SQL...
flex 打开本地图片并进行显示 var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onLoadByted);... loader.loadBytes(this.fileReference.data);
param.ItemDate = (this.parameters.ItemDate == undefined || this.parameters.ItemDate == "") ? 31457280 : this.parameters.ItemDate;//ItemDate单文件大小限制,-1表示不限制,默认值为30M ...
import flash.net.FileReference; import flash.utils.ByteArray; [SWF(width=800,height=600,backgroundColor=0xffffff)] public class PrintScreen extends Sprite { private var bitmapData:BitmapData; ...
在项目开发过程中,经常会遇到文件上传下载的问题。但在flex中由于安全沙箱的原因flex程序不能直接访问本地文件,但是flex SDK中提供了FileReference和FileReferenceList两个类,可以通过这两个类来实现文件的上传...
如果你和我遇见一样的问题:用actionscript写一个需要操作本地文件(比如excel文件)之后批量导出jpg的工具,那么filereference不支持在没鼠标操作的情况下一次性多操作,你可以用zip的方式,单击鼠标,批量保存。
Flex Builder 3 下载安装与项目创建详细说明 Flex中利用FileReference类下载文件的例子| 中文Flex例子
flex 导出excel工具包 用法如下: ... ... import mx.collections.ArrayCollection; import mx.controls....private var fileReference:FileReference; private var xls:Class; private var sheet:Sheet; 。。。。。。