![]() |
Flash может больше.
Ниже представлен мой пример сохранения произвольного текста в произвольный файл из Flash. Для демонстрации выше сказанного, в моем примере пользователь имеет возможность сам вводить текст, который будет сохраняться. А так же пользователь может вводить имя, расширение файла, определять будет текст в файле дописываться или будет создаваться новый файл со вписанным в него текстом (переписывание). Так же пользователь может выбирать: будет файл сохраняться в папке fscommand (по умолчанию) или в другом месте на жестком диске (тут есть ограничения: названия каталогов в пути не должны содержать пробелов и символов кириллицы).
Для тех кто не понимает что это значит, объясню: 1)Возможность передавать параметры bat файлам или java script файлам (используя WSH) из Flash. Думаю не надо объяснять какие широкие возможности это раскрывает. 2)Возможность создания собственных редакторов, типов файлов (скажу только, что для этого используются команды Assoc и Ftype). 3)Ну и, разумеется, сохранение любого объема любых текстовых символов в файле на жестком диске. P.S.: сначала скачайте, а потом я объясню как я это сделал, если потребуется. Скачать - по ссылке: Clb2txt4.exe - 793 кб |
Ну-ка колись, как это сделал, давно так хотел, вот только область в jpg можно?
|
Код:
fscommand("exec", "ClrClb.exe"); |
гы:) стока мучений?;) есть интересная коммандочка Mmsave :) . народ, а под браузеры слабо сейвить? кнешна слабо. вот подождем 8 флэш и тада будет не слабо;)
|
Цитата:
//этот вырванный код - код одного кадра и тем более с ошибками; да и не в коде сдесь дело |
Гы.. сенкс. Начитался уж;) даже AsNative() Начинаю пользоваться, чтобы код никто взломать не думал:)
В 8 флэше обещали открыть доступ к чтению инфы на локальных дисках и все такое:) Ну макромедия уж давно презентует презентует да никак не выпрезентуется:) |
Цитата:
1)Clb2bat.exe – эта программа при запуске записывает текущее содержание буфера обмена в файл system.bat. 2)ClrClb.exe – программа, которая при запуске очищает буфер обмена. Дело в том, что при сохранении необходимо, чтобы буфер обмена изначально был чист, во избижании глюков с кириллицей (но это уже флэшевская трабла). В моем примере буфер очищается при запуске программы и при каждом сохранении.Что касается моего примера, то, в идеале, нужно было бы очищать буфер при каждой активации окна flash приложения; а так все равно возможны глюки. Итак, вначале Flash запускает программу ClrClb.exe, которая очищает буфер. Затем, Flash заносит в буфер текст со следующей структурой: echo твой_текст >>/> путь\ твой_текст_2.твой_текст_3 , где ● твой_текст – текст который будет записываться в файл; ● >>/> - добавить текст в уже существующий файл или создать файл и вписать в него текст; ● путь\ - необязательный параметр, место, куда будет сохраняться файл на жестком диске; по умолчанию сохраняется в ту же папку где находится bat файл; ● твой_текст_2 – имя файла; ● твой_текст_3 – расширение файла; Следующий шаг: Flash запускает программу Clb2bat.exe, которая записывает данное содержание буфера в файл system.bat. Ну и последний шаг: Flash запускает файл system.bat, который в соответствии с заданной ему командой записывает указанный пользователем текст в файл с указанными именем и расширением. Если кого то все еще интересует исходник моего демонстрационного примера, вот он: Скачать по ссылке: Clb2txt_Final.fla |
огромное тебе спасибо, но мы читеры уже давно декомпилировали, но всё же, так оно ужобнее, разумеется авторсто за тобой! =)
|
А не легче юзать ActiveX в самом html:
Цитата:
|
Этот код должен в HTML лежать? Тогда у меня ничего не получается. :( В любом случае, ведь нужно определять сохроняемый текст (как и все остальные атрибуты) из Flash, иначе теряется всякая произвольность. Так можно и просто Bat файл создать, который будет вызываться из Flash:
Код:
echo текст > c:\test.txt |
Ты кажись функцию саму забыл вызвать, напиши где-нить после body потом
Код:
<a href="" onMouseClick="writetext('ostgur')">LOL</a> |
Честное слово не работает. При клике просто открывается диск С:\, и никакой файл test.txt там не появляется. Неважно. Ты скажи мне, есть какие небудь способы передовать параметры из Flash в HTML ( без серверных скриптов, PHP - My SQL мы уже знаем, это неподходит)? Иначе просто повторюсь...
...В любом случае, ведь нужно определять сохроняемый текст (как и все остальные атрибуты) из Flash, иначе теряется всякая произвольность. Так можно и просто Bat файл создать, который будет вызываться из Flash: Код:
echo текст > c:\test.txt |
Юзай Куки, иначе как не знаю или жди, как и я, Flash намбер 8!
|
Цитата:
Как это кода меньше? Даже если некий документ Save.html, содержащий этот код, сохраняет текст в файл (у меня нихрена не получается), то этот документ соответствует, по функциям, bat файлу Save.bat, содержащему код: Код:
echo ostgur > c:\test.txtА теперь посмотрим на размеры: Save.html - 566 байт; Save.bat - 25 байт; Ну, что теперь скажешь. ;) Что касается передачи параметров, то я придлажил, в примере, хороший вариант использования буфера обмена. И для передаси параметра bat файлу, достаточно двух строк кода: Код:
System.setClipboard(echo текст > имя.расширение); P.S: Зря что ли я так распинался объясняя принципы моего примера (см. пред. страницу). Все равно меня не понимают. :( P.S(2):скачать пример и исходник можно на предыдущей странице . |
да я и не спорю, но там нужны ещё и внешние файлы, а в моём примере нет, и у тебя этот способ только на приложении работает!
|
У тебя в примере отсутствует возможность передовать параметры. В таком случае возвращаемся назад, чем хуже один bat файл.
Кстати, ты мог бы скинуть свой готовый HTML, у меня ничего не получается. Может что делаю не так. |
Вложений: 1
лови! ;) :)
|
Код:
у тебя этот способ только на приложении работает! |
Ну и что, зато на web можно легко функцию вызвать даже из того же Flash, тем паче, что он приложение в кэше создаёт, а не на самом сервере!
|
Тогда уж лучше использовать Shared Object, если говорить про web. Для web существует масса других способов сохранения. Все это уже обсуждалось и выглядит бонально. А мне надоело объеснять тебе эти вещи. Ведь имено недостатки использования Shared Object локально, побудили меня сделать этот пример. Мне казалось что это понятно. Тем более, что толку вызывать HTML, если ты не можешь передавать ему информацию для сохранения из Flash.
Повторяю мой пример для локального использования, для локальных приложений, а не для web. |
все супер! это очень поможет при разработке одного приложения, авторство сохраню, спасибо
|
|
спору нет, респект!!!
|
а вот посмотрите этот пример
|
Цитата:
Цитата:
|
не могу скачать...
|
Ценно, ценно. Но напиминаю, что существует swf studio, позволяющая сделать все в одном флаконе. Также есть вариант с работой вручную с delphi, c++ или иным билдером и Shockwave flash active-x элементом, что дает возможности пракрически неограниченные.
Данный же вариант интересен как готовое бесплатное решение. :) |
Не могу скачать http://fa-flashworld.narod.ru/source...u/Clb2txt4.rar
|
про Swf Satudio
раз уж речь зашла о SWf Studio кто знает где достать крэк (s/n)
для SWf Studio v3 ? |
:cool: было уже... http://www.flexilight.ru/other/Save.zip
меню тоже вроде нельзя убрать - оказывается все просто (в Дельфях). |
нюансы публикации
Все клево работает. только вот вопрос немного в сторону:
как удалось сделать ехе-шку в 7 версии флеша размером 520кб, когда сам плеер 7 версии больше 900кб? большая просьба просветить. |
Цитата:
P.S: Кроме того существует еще и Jugglor, который также хорошо компрессирует приложения (только Flash:swf or exe), и много других программ. |
Цитата:
|
а во Flash MX работает эта команда?:
System.SetClipboard("мойТекст"); |
Не знаю, как в МХ, а в МХ 2004 работает
|
у меня не помещается ничего в буфер
хотя синтаксис соблюден: System.setClipboard(string:String) : Boolean |
А разве не Void? Ты конкретный пример, как ты его юзаешь дай, шаблон я видел и у мя всё работает! У тя Flash или Flash Professional?
|
В первом и единственном кадре:
// очищаем буфер fscommand("exec", "fscommand\\clear.exe"); //складываем в буфер строку zak zak = "mamamylaramu"; k1 = System.setClipboard(zak); //проверяем как прошла операция по складированию в буфер if (k1) {k = "da";} else {k = "net";}; //то что теперь в буфере переписываем в текстовый файл fscommand("exec", "fscommand\\bm.exe"); ==================== проверка на k1 дает отрицание Файлы bm.exe и clear.exe работают точно. А вот еще! а ведь даже очистки буфера не происходит, т.е типа clear.exe не запустился??? P.S. я только перехожу на MX... все было на 5.. но там обнаружился глюк со звуком - не хочет пятый плеер правильно обрезать звук в начале :( |
А нафик буфер чистить?! И зачем проверять правильность выполнения? Я эт делаю так System.setClipboard("blablabla"); и всё работает
|
да, это не обязательно... это так пытаюсь исключить всякие ошибки! и проверки нужны для трассинга
|
| Часовой пояс GMT +4, время: 14:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.