Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Автоматическая запись данных на usb (http://www.flasher.ru/forum/showthread.php?t=203173)

Sweet07 05.09.2013 11:09

Автоматическая запись данных на usb
 
Доброго времени суток.
Подскажите, как реализовать запись определённых данных (определяется приложением) на вставленный usb носитель автоматически(без действий пользователя). Так как флеш ограничен правами "тихой" работы (почти всеми), то можно ли к примеру с помощью флеш в внешнем текстовом документе хранить название файла, который нужно записать, и записывать его автоматически на вставленный usb-накопитель другой прогой?
С помощью какой программной среды это лучше (или хотя бы можно) реализовать.
Спасибо.
З.Ы: Это не создание вредоносной программы.

Aquahawk 05.09.2013 12:17

Если это air приложение то сможете и сами записать, а если веб версия, то нет, никак. Т.е. совсем не понятно что вы хотите, т.к. если какой-то программой что-то писать то это значит надо заставить пользователя скачать и поставить эту программу, тогда проще изначальную задачу на air решить.

Sweet07 05.09.2013 12:43

Пояснение
 
Суть задачи:
В коридоре стоит информационный киоск с расписанием и другой информацией (приложние сделано в флеш).
К примеру, в очередной раз поменялось расписание обучения или другая инфа. И нужно, чтоб родитель, студент или абитуриент вставил флешку в компьютер и автоматически на неё сохранилось новая информация, как только студент зашёл на соответствующую страницу или вставил флешку находясь на странице расписания.

Раньше это делалось через FileRefrence при нажатии кнопки, что открывало проводник и соответственно открывало дыру для недобросовестных человечков. Пробовал запускать внешний bat при переходе на страницу расписания, но возникли проблемы с определением и наличием устройства.
Было велено дыры залатать - вот и думаю.

Tails 05.09.2013 12:48

Sweet07,
Для нормальной работы с файловой системой, вам нужно сделать AIR или MDM Zinc приложение. Оба по сути расширяют возможности флешки как настольного приложения.

Котяра 05.09.2013 13:42

Если это киоск, то скорей всего там эйр и есть.
Записать можно просто через File.
http://help.adobe.com/ru_RU/FlashPla...stem/File.html

Sweet07 05.09.2013 18:20

Немного поискал и нашёл это: http://www.slideshare.net/JosephLabr...d-adobe-air-32

всем спасибо.

Ralph_DiMarko 05.09.2013 19:37

Зря вы не обратили внимание на сообщение об zinc-e, достаточно мощная штука и проста в интеграции.

Sweet07 06.09.2013 17:36

Я поступил таким способом:
Код AS3:

package  {
 
        import flash.display.MovieClip;
        import flash.filesystem.File;
        import flash.filesystem.FileStream;
        import flash.events.ProgressEvent;
        import flash.events.IOErrorEvent;
        import flash.net.FileReference;
        import flash.filesystem.*;
        import flash.events.*;
 
        public class Main extends MovieClip {
                private var volumes:Vector.<StorageVolume> = new Vector.<StorageVolume>;
                private var currFile:String="Project.swf";
                public function Main() {
                        volumes = StorageVolumeInfo.storageVolumeInfo.getStorageVolumes();
 
                                for (var i:int = 0; i < volumes.length; i++){
                                    if (volumes[i].isRemovable) {
                                        //trace(volumes[i].name, volumes[i].rootDirectory.nativePath);
                                        //copyFile(volumes[i].rootDirectory.nativePath,"Project.swf");
                                }
                        }
                        trace("вставьте usb-носитель");
                        StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_MOUNT, onVolumeMount);
                        StorageVolumeInfo.storageVolumeInfo.addEventListener(StorageVolumeChangeEvent.STORAGE_VOLUME_UNMOUNT, onVolumeUnmount);
                }
                private function copyFile(loc:*,fStr:String):void{
                        //trace(loc,fStr);
                        var file:File = File.applicationDirectory.resolvePath(fStr);
                        var newFile:File = File.userDirectory.resolvePath(loc+"/"+fStr);
                        file.addEventListener(Event.COMPLETE, fileCopyCompleteHandler);
                        file.addEventListener(IOErrorEvent.IO_ERROR, fileCopyIOErrorEventHandler);
                        file.copyToAsync(newFile, true);
                }
 
                private function fileCopyCompleteHandler(event:Event):void {
                        trace("Готово. Для продолжения работы извлеките usb-носитель. //"+event.target); // [object File]
                }
 
                private function fileCopyIOErrorEventHandler(event:IOErrorEvent):void {
                        trace("Ошибка копирования. Для продолжения работы извлеките usb-носитель");
                }
 
                private function onVolumeMount(event:StorageVolumeChangeEvent):void {
                        if (event.storageVolume.isRemovable) {
                                trace("Removable");
                                copyFile(event.rootDirectory.nativePath,currFile);
                        } else {return}
                }
 
                private function onVolumeUnmount(event:StorageVolumeChangeEvent):void {
                        trace(event.rootDirectory.nativePath);
                        trace("Для копирования документа вставьте usb-носитель");
                }
        }
}

Довольно интересно получилось.

Sweet07 06.09.2013 17:46

Вложений: 2
По презентации - не ту ссылку кинул.
Если кому нужно:
1. Что нового в Adobe AIR
2. Что нового в Flash Player 11


Часовой пояс GMT +4, время: 01:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.