`
hereson
  • 浏览: 1454265 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

让"Flash" 写文件(AS3)

阅读更多

目前,出于安全考虑Flash不支持写文件的操作,在AS3的API中找不到相应的方法。但是我们可以去看看其它的编程语言的文档,比如VB,VC++,Java。它们都支持对文件的操作。因此,我们的策略就是让Flash去调用一个执行写文件操作的应用程序来实现我们的计划。这里有两个知识点:

1、fscommand("exec", "Write_File.exe") 这句话的意思就是让 Flash 去调用一个名为Write_File.exe 的应用程序,这里有两点要非常注意:第一,被调用的程序必须在fscommand子文件夹中,并且调用时不能传递参数;第二,Flash 影片必需发布为一个 .exe 的可执行文件,即让一个可执行文件调用另一个可执行文件。 
2、System.setClipboard(string:String) 调用这句话时,可以根据给定的 String 参数来设置剪贴板。下面就开始制作吧,今天我们的 ActionScript 尤其简单哟!

步骤1:在舞台中放入一个输入文本框:实例名"input_txt";一个按钮:实例名"Submit_btn";

步骤2:在第一帧中加入 ActionScript;
// 提示用户在此输入要写入的信息
input_txt.text = "在此写入一些内容,点击按钮后提交!";

// 点击按钮后执行 onClick 函数
Submit_btn.addEventListener(MouseEvent.CLICK, onClick);
function onClick(evt:MouseEvent):void {
 // 将文本内容写入到剪贴板(Clipboard)中
 System.setClipboard(String(input_txt.text));
 // 执行用于写文件的应用程序(这里不用写 fscommand 路径名,程序默认到这里取)
 fscommand("exec", "Write_File.exe");
}

步骤3:在菜单中选择“文件”->“发布设置”,勾选"Windows 放映文件(.exe)",点击"发布";

步骤4:在当前目录下,创建命为 fscommand 的子目录(必需);

步骤5:万事具备,只欠东风!只要在 fscommand 子目录下再加入 Write_File.exe 就搞定了。您可以使用任何喜欢的语言去编写,如 VB, VC 甚至可以是 Java(用包装软件将 jar 包装成 exe,但不推荐这样使用,因为可能需要客户端去下载 jvm)。这里我使用 VC++ 制作一个 MFC 来生成Write_File.exe。整体思想很简单:读取剪贴板内容,创建文件,将读入的字符串写入文件。最终会在应用程序的同一目录下生成Save_Text.txt 文件,其内容就是我们在 Flash 的文本框中输入的。以下是 VC++ 代码摘要:
// 导入 fstream 库文件
#include "fstream.h"

// TODO: Add extra initialization here
// 在窗口的初始化中加入
//***************************************************************************
 // 获得存储路径
 CString strPath;
 GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));
 strPath.ReleaseBuffer();
 CString fullPath = strPath + '\\' + "Save_Text.txt";

 // 读取剪贴板
 char * buffer = NULL;
 CString fromClipboard;
 if (OpenClipboard()) {
    HANDLE hData = GetClipboardData(CF_TEXT);
    char * buffer = (char*)GlobalLock(hData);
    fromClipboard = buffer;
    GlobalUnlock(hData);
    CloseClipboard();
 }

 // 写文件
 ofstream outfile;
 outfile.open(fullPath);
 if (outfile.is_open()) {
    outfile << fromClipboard << endl;
    outfile.close();
 }
//**************************************************************************

步骤6:如果您不想使用其它语言编写也没关系,您可以直接使用下面我已经写好的这个 exe 文件(其中附有 Flash 源文件):http://www.fs2you.com/files/7bf1fb75-4fcb-11dd-aa18-0014221b798a/

结语:
好了,完成!我们实际上就是在使用剪贴板作为中间媒介来传送消息,这也是一种进程间通信的方式,因为所有进程都共享着同一个剪贴板。大家如果感兴趣可以把他制作成一个日记本的程序—— 每次生成文件的文件名都以系统日期和时间命名。本次教程中,没有太多实质的内容,甚至我们的主角都不是 Flash,但是它可以给我们一些启发。如果某些任务 Flash 无法完成,是否能让其它人来助我们一臂之力呢?一个好汉三个帮...

分享到:
评论

相关推荐

    Flash as3调用外部AS脚本

    首先,让我们理解AS3中的类和文件结构。在AS3中,每个类都对应一个AS文件,例如`Tool.as`可能包含了名为`Tool`的类。这样的设计使得我们可以将不同功能的代码分别放在不同的文件中,便于管理和协作。 要调用外部AS...

    flash as3 时钟

    在本文中,我们将深入探讨如何使用ActionScript 3(AS3)编程语言创建一个功能丰富的Flash时钟。这个时钟不仅包含传统的指针式时钟,还有电子时钟、秒表和闹钟功能。虽然代码可能略显粗糙,但其核心功能已经实现,这...

    flash游戏开发之 如何反编译.swf文件得到actionscript3 as3源代码.zip

    在Flash游戏开发中,有时我们需要对已有的SWF文件进行逆向工程,以获取ActionScript3(AS3)源代码,以便学习、分析或者修改。本文将深入探讨如何反编译SWF文件来得到AS3代码,这涉及到一系列工具和技术。 首先,...

    Flash as3 相册

    《Flash AS3 相册制作详解》 Flash AS3 相册是一种利用Adobe Flash软件和ActionScript 3.0编程语言实现的动态图片展示工具。它以其丰富的视觉效果和交互性,深受网页设计师和开发者喜爱。本文将深入探讨Flash AS3 ...

    Flash as3 全网站

    《深入探索Flash AS3全站开发》 Flash AS3全站开发是Web设计与开发领域中的一个重要组成部分,它结合了动态交互与视觉艺术,为用户提供丰富的网页体验。本专题将全面解析Flash AS3在构建全站过程中的核心知识点,...

    Flash写文件

    Flash AS3.0辅助写文件的exe。 详细说明参见文章http://hi.baidu.com/ccchu0/blog/item/c9150de9b6e26a5079f055fc.html

    flash AS3 way3d全景及3d相册演示源码

    本资源是基于Flash AS3和Away3D库的全景及3D相册演示源码,提供了丰富的3D视觉体验和用户交互功能。以下是对这些关键元素的详细解释: 1. **Flash AS3**: ActionScript 3是Adobe Flash平台上的编程语言,用于创建...

    FLASH AS3 SOCKET收发16进制示例

    在`示例.fla`文件中,这可能是一个Flash项目,其中包含了一个AS3脚本,用于展示如何在实际的Flash环境中实现上述步骤。通过查看源代码,你可以看到如何将AS3代码与Flash时间轴上的元素(如按钮、文本字段)结合在...

    FLASH CS4 AS3 整站源码

    .FLA文件是Flash的原始工程文件,其中包含了动画、图形、时间轴控制以及与AS3代码的链接。ActionScript 3是Flash平台上的编程语言,提供了更强大的面向对象编程能力,提升了性能,是创建交互式内容、游戏和网络应用...

    UDP.rar_as3 udp_flash as3.0 UDP_flash发送udp_udp as3_windows as3.0

    这个"UDP.rar_as3 udp_flash as3.0 UDP_flash发送udp_udp as3_windows as3.0"的压缩包,看起来包含了一个名为"UDP.fla"的文件,这是一个Flash的源文件,可能是一个AS3的项目,用于演示或教学如何在Flash中使用UDP...

    flash AS3 中文帮助文档

    时间轴控制是Flash的一大特点,AS3提供了关键帧、动作脚本命令等功能,让开发者能够灵活地控制动画播放。 对于游戏开发者,AS3的物理引擎和游戏框架如Box2D或Flixel的使用也会有所涉及。同时,AS3还支持3D渲染,如 ...

    FLASH AS3 雷达tuio+UDP协议示例

    5. **示例.fla**: 这是一个Flash的原始工程文件,包含AS3代码、舞台元素和动画设置。开发者可以使用Adobe Animate或Flash Professional打开此文件,查看和修改源代码以及动画资源。 6. **data.xml**: XML...

    flashas3手册

    《Flash AS3 手册》是一份详尽的资源,旨在帮助开发者深入理解和熟练运用ActionScript 3.0,这是Adobe Flash平台的核心编程语言。AS3是开发互动内容、游戏和富互联网应用(RIA)的强大工具,其语法严谨,性能优秀,...

    FLASH CS3(AS3)和JS之间通信

    标题“FLASH CS3(AS3)与JS之间通信”涉及的是两种主要的Web技术——Adobe Flash(使用ActionScript 3,简称AS3)和JavaScript之间的交互。这两种技术在Web开发中各自发挥着重要作用,Flash主要用于动画和多媒体内容...

    Flash CS3 +AS3键盘事件

    《Flash CS3 + AS3键盘事件深度解析》 在Flash CS3中,ActionScript 3(AS3)作为强大的编程语言,为开发者提供了丰富的交互功能。其中,键盘事件的处理是构建用户界面和游戏控制不可或缺的一部分。这篇内容将深入...

    用as2.0写的flash饼图程序打包

    在这个"用as2.0写的flash饼图程序打包"的资源中,我们可以深入探讨几个关键知识点。 1. **ActionScript 2.0**:AS2.0是Flash MX 2004引入的脚本语言版本,它增强了面向对象编程的能力,包括类、包、继承和接口等...

    Flash as3 动态菜单

    总结来说,要创建一个Flash AS3动态菜单,你需要理解AS3的基础语法,熟悉面向对象编程,掌握事件处理机制,并且能够利用FLA文件进行图形和动画设计。通过`Menu.as`编写逻辑代码,`menu.fla`进行可视化设计,结合`...

    flashas3 api使用手册

    Flash Player是运行AS3代码的客户端环境,用于展示SWF文件。而Flash Media Server则是一个服务器端平台,用于实时流媒体和交互式应用程序。两者结合,可以实现丰富的媒体交互,如视频聊天、直播和游戏。 四、...

    flash AS3 动画教程

    【标题】"Flash AS3 动画教程"揭示了Adobe Flash Professional中ActionScript 3.0的动画制作技术。ActionScript是Flash平台的核心编程语言,主要用于创建交互式内容、游戏和丰富的互联网应用程序(RIA)。AS3是其第...

    flash读取.obj文件生成3d贴图模型(as2 as3)

    在本项目中,我们探讨了如何使用ActionScript(AS2 和 AS3)来读取.obj文件并生成3D贴图模型。.obj文件是一种常见的3D模型格式,由Wavefront公司开发,通常用于存储3D几何数据、纹理坐标以及面信息。在Flash环境中,...

Global site tag (gtag.js) - Google Analytics