Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   SharedObject файл .sol (http://www.flasher.ru/forum/showthread.php?t=94237)

SEXER 07.04.2007 14:41

SharedObject файл .sol
 
Ребята вопрос в следующем:
1.можно ли изменить путь сохранения файла .sol? Понятно, что по умолчанию он сохраняется в C:\Documents and Settings\...
2. Насколько мне известно из флэша можно запускать bat-файлы. Так вот, если например я хочу с помощью bat-файла скопировать некий файл (назовем его jim.sol) из C:\Documents and Settings\jim.sol в C:\ , то в bat-файле я пишу строку copy C:\Documents and Settings\jim.sol C:\ и не копируется!!! Издругих папок все ок! Так вот где тут у меня ошибка? Дело в том, что забрать файл нужно именно из C:\Documents and Settings\. Может директорию C:\Documents and Settings\ надо как-то по другому называть?:wacko:

etc 07.04.2007 14:46

А каким образом вы собираетесь скопировать файл (запустить .bat) и зачем, если флеш все-равно его не откроет?

SEXER 07.04.2007 15:59

Запустить .bat можно так: fscommand("exec", "wordrun.bat"); флэш не откроет .sol, но может оттуда считывать данные (текст). И это у меня работает. Только вот меня интересуют вопросы, которые я задал выше.

etc 07.04.2007 16:28

fscommand работает только в режиме projector. Советую не извращаться, а использовать MDM Zinc если нужна запись в файлы.

SEXER 07.04.2007 16:40

Извините, но можно поподробнее? Что это за режим projector? Только не посылайте в help пожалуйста:)
Я тут нашел в форуме, что можно указать путь для сохранения файла .sol вот так: sharedobject.getLocal("theFlashCookie","путь"), но если указать C:\, то символ "\" влияет на закрывающие ковычки и текст, следующий дальше получается в ковычках. Что-то тут не так...

iNils 07.04.2007 16:45

Путь отсчитывается внутри папки для sol, то есть внутри нее вы можете создать путь для хранения, а выше нее - нет.

etc 07.04.2007 16:46

http://www.multidmedia.com/

http://livedocs.macromedia.com/flash.../00001727.html
Цитата:

The exec command runs in the subdirectory fscommand only. In other words, if you use the exec command to call an application, the application must reside in a subdirectory named fscommand. The exec command works only from within a Flash projector file.
http://livedocs.macromedia.com/flash.../00002665.html

SEXER 07.04.2007 17:01

Хорошо, iNils спасибо - тогда .sol оставляем в покое.

Теперь нужно выяснить с .bat.
_etc я знаю, что fscommand запускает только bat-файл, который хранится в директории fscommand данного проекта - это понятно. Хорошо, немного отойдем от этого.

Я думаю, что команды DOS знают многие. Скажите мне как и папки C:\Documents and Settings\jim.* скопировать любой файл например в корень диска C:\. Я бы написал так: copy C:\Documents and Settings\jim.* C:\, но так не работает - из других директорий, например, из copy C:\WINDOWS\jim.* C:\ - все отлично! Так что же с этой злополучной директорией Documents and Settings не так???

iNils 07.04.2007 17:12

В названии Documents and Settings содержаться пробелы, поэтому надо весь путь заключить в кавычки.

etc 07.04.2007 17:20

Потому что в DOS имена папок ограничены восемью символами. Да и, между прочим, по пути к sol есть рандомное название папки. Как вы собираетесь обойти сей момент, я не знаю.

Например, в макоси путь к SO выглядит как /Users/User/Library/Preferences/Macromedia/Flash Player/#SharedObjects/AUDKV98C/ (имя последней папки рандомное, равно как и под Win)

SEXER 07.04.2007 17:41

iNils - спасибо, действительно так и нужно было. Но вот как в DOS с русскими буквами? Если на пути к объекту есть папка Администратор.USER? По-моему DOS не воспринимает кирилицу.

_etc идея такова: с одного компа в сети файл .sol сохраняется в сеть, а другой комп забирает оттуда. И наоборот. Соответственно для каждого компа в .swf прописывается путь откуда будет копироваться .sol

etc 07.04.2007 17:44

Идея понятна, как вы собираетесь забрать sol файл, не зная название одной из папок? Запустить .bat можно с помощью exe-ролика, а не swf.

SEXER 07.04.2007 23:39

_etc - понятно, я и собираюсь скомпилировать в exe-ролик.

Вопрос остается: как в DOS с русскими буквами? Если на пути к объекту есть папка Администратор.USER? По-моему DOS не воспринимает кирилицу. Или я не прав?

etc 08.04.2007 00:09

Я же говорю, не надо извращаться, надо пользовать MDM Zinc.

SEXER 08.04.2007 00:13

_etc - тут уже дело принципа. Кстати, MDM Zinc входит в какой-нибудь пакет или это отдельный продукт и где его можно скачать если не секрет со всеми прилагающимися ключиками, если конечно у вас осталась ссылочка.))
Ребята выяснилось, что DOS нормально понимает кирилицу. Вот какой парадокс обнаружил: если пишу в DOS такую строку copy "C:\Documents and Settings\Администратор.USER\theFlashCookie.sol" c:\ - то работает! Файл успешно копируется.
А вот если эту же строку в bat-файле, то не пашет! Что-то ему не нравится с Администратор.USER. Так вот что?

etc 08.04.2007 00:16

За ключики у нас плюс полагается.
А ссылку на сайт разработчика я ещё дал на той странице.

iNils 08.04.2007 01:38

Цитата:

Сообщение от SEXER
Ребята выяснилось, что DOS нормально понимает кирилицу. Вот какой парадокс обнаружил: если пишу в DOS такую строку copy "C:\Documents and Settings\Администратор.USER\theFlashCookie.sol" c:\ - то работает! Файл успешно копируется.
А вот если эту же строку в bat-файле, то не пашет! Что-то ему не нравится с Администратор.USER. Так вот что?

Кириллицу в bat файле надо сохранять в dos кодировке.

SEXER 08.04.2007 11:09

iNils приведите пример, если не сложно. Что значит в dos кодировке?
__etc что значит у вас плюс полагается?

Ребята вот узнал, что bat-файл кириллицу понимает только в OEM-кодировке (CP 866) (может кому пригодится). Но каким образом написать в данной кодировке?

etc 08.04.2007 13:19

Цитата:

Сообщение от SEXER
__etc что значит у вас плюс полагается?

http://flasher.ru/forum/rules.php пункт 3.

Цитата:

Сообщение от SEXER
Ребята вот узнал, что bat-файл кириллицу понимает только в OEM-кодировке (CP 866) (может кому пригодится). Но каким образом написать в данной кодировке?

Найти редактор, который умеет в этой кодировке сохранять.

Kikasso 08.04.2007 13:28

Цитата:

ђгббЄЁҐ ЎгЄўл - *Ґ Їа®Ў«Ґ¬*.
Перевод: Русские буквы - не проблема.
Поставь UltraEdit, чтоли. Наисал, File->Conversions->ANSI to OEM

iNils 08.04.2007 19:08

Я пользуюсь для этого Far'om.

SEXER 09.04.2007 12:18

Итак, задача копирования решена. Я воспользовался программой Aditor3 - сохранял bat-файл в DOS-кодировке и все сработало.
__etc а какая папка будет изменяться? Ведь я буду ставить exeшник каждому пользователю в локальной сети и конкретный путь прописывать для каждого пользователя. При запуске exeшника будет из сети скачиваться файл .sol и помещаться в указанную папку на локальном компьютере (в папку, куда по умолчанию пишется .sol - опытным путем это легко узнать - нужно только 1 раз запустить exeшник). При сохранении инфа будет записываться в .sol, а затем .bat-файл будет скидывать обратно .sol в сеть. И так каждый рабочий комп в сети. Ну конечно все еще нужно отладить и попробовать.

etc 09.04.2007 13:01

Ну если юзер захочет переустановить плеер или ещё чего-нибудь сотворить, то хана файлику.

SEXER 09.04.2007 15:28

нужно делать резервное копирование (допустим в конце дня) в другую папку в сети. Просто работают по 5 человек в смене. Одному из них сделать кнопку "Резервное копирование" и что бы он в конце дня пересохранял файл. В общем нужно попробовать.

iNils 09.04.2007 15:31

SEXER, в любом случаи, это весьма шаткая конструкция.

SEXER 12.04.2007 11:28

Да уж, ничего не получилось... Проблема вот в чем: 1. bat-файл запускается позже, чем функция считывания данных из sol-файла, соответственно если флэшка не находит в директории sol-файл, то она создает свой (пустой) и уже работает с ним, а тот, который скопировалчся bat-файлом после закрытия флэшки перезаписывается. Но это может и можно обойти используя setInterval. 2. И это самое важное, чего я не знал - запись в sol-файл происходит после того, как exeшник закрывается, соответственно нет возможности после записи 1 элемента сразу отправить обновленный sol-файл в локальную сеть.

Выход остается один - использовать MDM Zinc (который вы мне советовали) для записи данных в файл и считывания оттуда. Я вроде скачал вторую версию данного продукта, но что-то не пойму как им пользоваться в нужных мне целях. Да, там есть функции сделать exeшник, сделать ео как триал (на несколько дней, что бы работал), но как сделать так, что бы моя флэшка могла открывать файлы и записывала в них данные - этого я не нашел. Если можете - подскажите где можно что-то почитать, или примеры может есть...

etc 12.04.2007 11:44

Метод flush сразу записывает на диск.

Но MDM Zinc лучше. Читайте документацию к программе, в конце-концов.

SEXER 13.04.2007 10:21

Да, flush записывает хорошо, но если файл sol в процессе работы нужно заменить на другой с таким же названием, то как быть?

CorC 13.04.2007 10:38

Меняйте, а потом заново делайте
Код:

SharedObject.getLocal(Name);

etc 13.04.2007 11:19

Не сработает, ибо кешируется на время выполнения. Т.е. файл переписывается, да, но новые данные из него не берутся, все в памяти.

Я же предлагал MDM Zinc в самом начале?

CorC 13.04.2007 11:27

Хм, а если там есть какой то сервер, с которого все обновляется, то почему бы ХМЛ не попользоваться? И от кеша можно спастись...

SEXER 13.04.2007 13:05

Да, предлагали, но все никак не могу найти документацию...

CorC 13.04.2007 13:40

Какую документацию? по XML?
http://livedocs.adobe.com/flash/8/main/00002862.html

SEXER 13.04.2007 16:20

CorC SharedObject.getLocal(Name); - не срабатывает, тут __etc прав. Если докажете обратное - буду рад.
__etc рад бы использовать MDM Zinc, но не могу с лету понять как там сохранять во флэш файлы. А описание пока не нашел. Да и может 2-ая версия, которая у меня есть не может этого - сейчас вроде 2.5 имеется.

iNils 13.04.2007 16:30

Цитата:

Сообщение от SEXER
рад бы использовать MDM Zinc, но не могу с лету понять как там сохранять во флэш файлы. А описание пока не нашел. Да и может 2-ая версия, которая у меня есть не может этого - сейчас вроде 2.5 имеется.

Например так
Код:

mdm.FileSystem.saveFile("c:\\myText.txt", "My text data");
Вообще смотрите класс mdm.FileSystem, там много чего для этого есть.

SEXER 13.04.2007 17:15

iNils спасибо, попробую. А я еще вот как нашел:
Код:

fscommand("mdm.savetofile","\"имя_файла.txt",\"текст\"");
но это не работает...

Inils я так понимаю
Код:

mdm.FileSystem.saveFile("c:\\myText.txt", "My text data");
это нужно писать в макромедиа в ActionScript, там же где и обычно пишется скрипт, а не где-то в MDM Zinc?
Кстати, если я пишу это, то ничего не происходит!? и почему в имени пути стоит два "\\"? Что-то не врубаюсь...

iNils 13.04.2007 18:14

1. Не надо писать одно сообщение за другим, надо нажать кнопку "изменить" из последнего поста и добавить текст.
2. Для оформления своего кода, надо использовать теги [code][/code].
3.
Код:

mdm.FileSystem.saveFile("c:\\myText.txt", "My text data");
в самом коде флеша
4. После генерации swf, надо с помощью mdm zinc создать exe файл, тогда код будет работать
5. Потому, что один \ не является отображаемым символов, а существует для отображения escape последовательности (например \n - символ новой строки), поэтому для вывода \, нужно написать \\ (первая \ служит началом escape последовательности, а вторая символом который нужно отобразить).

chingachgoog 13.04.2007 19:23

полу OFF
 
Цитата:

Сообщение от iNils
Вообще смотрите класс mdm.FileSystem, там много чего для этого есть.

Насколько я понимаю, эток класс записывает лишь текстовую информацию (в разных формах)?
А как быть, если надо записать звук (видео)?

iNils 13.04.2007 19:58

Цитата:

Сообщение от chingachgoog
А как быть, если надо записать звук (видео)?

Если бы вы могли получить массив данных звука или видео, то можно было бы записать бинарный файл. Сам флеш (только в as3 можно получить массив звука) это сделать не может, но mdm zinc позволяет работать с внешними dll, вполне возможно, что с их помощью можно сделать что то подобное.


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

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