Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何检测空中目录下的任何文件更改?_Flash_Actionscript 3_File_Air_Directory - Fatal编程技术网

Flash 如何检测空中目录下的任何文件更改?

Flash 如何检测空中目录下的任何文件更改?,flash,actionscript-3,file,air,directory,Flash,Actionscript 3,File,Air,Directory,我见过使用计时器、获取文件列表并检查每个文件的更改的示例,但是有没有更简单的方法来实现这一点,例如 <mx:FileSystemList id="fs" visible="false" /> private function onCreationComplete():void { fs.directory = File.applicationDirectory.resolvePath('../../assets'); if (fs.directory.exists)

我见过使用计时器、获取文件列表并检查每个文件的更改的示例,但是有没有更简单的方法来实现这一点,例如

<mx:FileSystemList id="fs" visible="false" />

private function onCreationComplete():void
{
    fs.directory = File.applicationDirectory.resolvePath('../../assets');
    if (fs.directory.exists)
      addEventListener(FileEvent.DIRECTORY_CHANGE, onDirectoryChange);
}

private function onDirectoryChange(e:FileEvent):void
{
    trace("file was changed");
}

当文件更改时,这似乎不会触发使用FileMonitor类

教程中的代码:

import com.adobe.air.filesystem.FileMonitor;
import flash.filesystem.File;
import flash.events.Event;
import com.adobe.air.filesystem.events.FileMonitorEvent;

private var monitor:FileMonitor;

private function onSelectButtonClick():void
{
    var f:File = File.desktopDirectory;
    f.addEventListener(Event.SELECT, onFileSelect);
    f.browseForOpen("Select a File to Watch.");
}

private function onFileSelect(e:Event):void
{
    var file:File = File(e.target);

    if(!monitor)
    {
        monitor = new FileMonitor();
        monitor.addEventListener(FileMonitorEvent.CHANGE, onFileChange);
        monitor.addEventListener(FileMonitorEvent.MOVE, onFileMove);
        monitor.addEventListener(FileMonitorEvent.CREATE, onFileCreate);
    }

    monitor.file = file;
    monitor.watch();
}

private function onFileChange(e:FileMonitorEvent):void
{
    trace("file was changed");
}

private function onFileMove(e:FileMonitorEvent):void
{
    trace("file was moved");
}

private function onFileCreate(e:FileMonitorEvent):void
{
    trace("file was created");
}

使用FileMonitor类

教程中的代码:

import com.adobe.air.filesystem.FileMonitor;
import flash.filesystem.File;
import flash.events.Event;
import com.adobe.air.filesystem.events.FileMonitorEvent;

private var monitor:FileMonitor;

private function onSelectButtonClick():void
{
    var f:File = File.desktopDirectory;
    f.addEventListener(Event.SELECT, onFileSelect);
    f.browseForOpen("Select a File to Watch.");
}

private function onFileSelect(e:Event):void
{
    var file:File = File(e.target);

    if(!monitor)
    {
        monitor = new FileMonitor();
        monitor.addEventListener(FileMonitorEvent.CHANGE, onFileChange);
        monitor.addEventListener(FileMonitorEvent.MOVE, onFileMove);
        monitor.addEventListener(FileMonitorEvent.CREATE, onFileCreate);
    }

    monitor.file = file;
    monitor.watch();
}

private function onFileChange(e:FileMonitorEvent):void
{
    trace("file was changed");
}

private function onFileMove(e:FileMonitorEvent):void
{
    trace("file was moved");
}

private function onFileCreate(e:FileMonitorEvent):void
{
    trace("file was created");
}

对我知道那种方法。它使用一个计时器并检查文件,它只支持一个文件。那太可笑了。不幸的是,我认为您运气不好,除非您编写了一个本机可执行文件,它可以实际监视文件系统并使用本机进程API与之交互。但是我必须注意,最有可能的本机解决方案还包括某种计时器功能,或者需要接收事件,也由某种计时器功能生成的事件。原因很简单,就是可执行进程的性质。它们通常可以归结为一个无限循环,允许并检查状态变化。AIR 3将允许本机可执行文件,即Windows的DLL。坚持住,十月初就应该出来了。我想你是糊涂了。AIR3将允许捆绑运行时,因此您可以将AIR运行时捆绑到可执行安装程序包中。AIR 2.0已经允许您从actionscript运行本机可执行文件。是。我知道那种方法。它使用一个计时器并检查文件,它只支持一个文件。那太可笑了。不幸的是,我认为您运气不好,除非您编写了一个本机可执行文件,它可以实际监视文件系统并使用本机进程API与之交互。但是我必须注意,最有可能的本机解决方案还包括某种计时器功能,或者需要接收事件,也由某种计时器功能生成的事件。原因很简单,就是可执行进程的性质。它们通常可以归结为一个无限循环,允许并检查状态变化。AIR 3将允许本机可执行文件,即Windows的DLL。坚持住,十月初就应该出来了。我想你是糊涂了。AIR3将允许捆绑运行时,因此您可以将AIR运行时捆绑到可执行安装程序包中。AIR2.0已经允许您从actionscript运行本机可执行文件。