Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flash Приложения: AIR, Zinc и тд. (http://www.flasher.ru/forum/forumdisplay.php?f=94)
-   -   Связать программу с расширением файла (http://www.flasher.ru/forum/showthread.php?t=214250)

Godwarlock 25.05.2017 20:45

Связать программу с расширением файла
 
Всем привет. Есть программа, которая создает файл, скажем формата .map. Вопрос в следующим, как мне сделать так, чтобы при запуске файла формата .map запускалась эта программа и в нее тут же загружалось содержимое .map? Как например есть .psd для фотошопа, запускаем psd открывается фотошоп и все содержимое этого psd. Что для этого нужно сделать? Или вот есть AwayBuilder(Away3D), написанный на air. Так вот там реализована такая фича, что я могу просто запустить файл формата .awd, запускается прога и в нее заносится содержимое файла.

faraday 26.05.2017 00:45

правая кнока мыши на файле - открыть с помощью - выбрать программу, дальше указываешь путь к ней и ставишь галочку http://prntscr.com/fc406j

Godwarlock 26.05.2017 01:11

Это первое, что я сделал, когда захотел сделать нечто подобное. Но вся проблема в том, что открывается только программа, но в программу не заливается содержимое этого файла. Если посмотреть в сторону AwayBuilder, то при создании .awd файла, файлы с этим расширением автоматом настраиваются под эту прогу и когда запускаешь этот файл, открывается прога, а содержимое сразу же загружается в нее.

caseyryan 26.05.2017 06:33

Если, скажем, у тебя файл называется someFile.pp, назначь свою прогу как дефолтную для него
Код AS3:

if (NativeApplication.supportsDefaultApplication) {
        NativeApplication.nativeApplication.setAsDefaultApplication("pp");
}

Добавь в дескриптор описание своего типа файла
Код AS3:

<fileTypes> 
                <fileType>
                        <name>AppByGodwarlock</name>
                        <extension>pp</extension>
                        <description>Super app</description>
                        <contentType>application/cool-app</contentType>
                        <icon>
                                <image16x16>assets/icon16.png</image16x16>
                                <image32x32>assets/icon32.png</image32x32>
                                <image48x48>assets/icon48.png</image48x48>
                                <image128x128>assets/icon128.png</image128x128>
                        </icon>
                </fileType>
        </fileTypes>

Учти, что атрибут name в дереве fileType не допускает пробелов

Потом добавь слушатель InvokeEvent к NativeApplication.nativeApplication
Код AS3:

NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
function onInvoke(e:InvokeEvent):void {
        trace("путь к твоему файлу " + e.arguments[0]);
        var file:File = new File(e.arguments[0]);
        // работа с файлом
}

Как-то так. А дальше уже, имея на руках путь до файла, открывай этот файл приложением как тебе нужно


п.с. Этот способ не работает, пока не установишь приложение в систему. Из отладчика пробовать бесполезно.

Godwarlock 27.05.2017 15:21

caseyryan Спасибо, на днях попробую и отпишусь


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

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