Используя lib Fzip под Adobe Air App

Я в настоящее время работаю над проектом для Adobe Air (1.5.3), и я должен разархивировать файл, скопировать часть его содержания в другой файл.

Затем я видел, что люди говорили о Fzip (http://codeazur.com.br/lab/fzip) lib. Проблема состоит в том, что я не знаю, как "импортировать" или пользоваться этой библиотекой с JavaScript и Adobe Air, так как JavaScript не имеет директивы импорта.

Как мне может удаться сделать это?

1
задан Rafael Oliveira 4 May 2010 в 17:33
поделиться

2 ответа

Я опубликовал демонстрацию того, как использовать FZip с Adobe Air и Javascript. Надеюсь, он прояснит вам ситуацию.

Короче говоря, вам нужно извлечь SWF-файл из скомпилированного SWC (когда применимо) и получить доступ к классу.

Демонстрация довольно проста и на самом деле просто доказательство концепции, но вы сможете легко ее расширить.

http://www.drybydesign.com/2010/05/12 / adobe-air-fzip-without-flex /

-Ari

1
ответ дан 3 September 2019 в 00:48
поделиться

Пример Ари довольно хорош, и он заставил меня начать, но он упустил некоторые довольно важные вещи - например, запись несжатых файлов обратно на диск. И zip-файл не обязательно должен быть размещен удаленно - особенность AIR в том, что он работает как локальное приложение... Вот пример, который развивает хорошее начало, которое дал нам Ари. (Я использую HTML5, чтобы быть крутым, модным и современным! :)-

<!DOCTYPE HTML>
<html> 
 <head>
    <title>Test Fzip</title> 
<script type="application/x-shockwave-flash" src="scripts/fzip.swf"></script>
<script type="text/javascript" src="scripts/AIRAliases.js"></script>
<script type="text/javascript" src="scripts/AIRIntrospector.js"></script>
<script type="text/javascript" src="scripts/jquery-1.4.2.js"></script>
<script type="text/javascript">
        var fzip;
        if (window.runtime) {
            if (!fzip) 
                fzip = {};
                fzip.FZip = window.runtime.deng.fzip.FZip;
                fzip.FZipFile = window.runtime.deng.fzip.FZipFile;
        }
        var file = air.File.documentsDirectory.resolvePath("test.zip");
        //file.url
        var zip = new fzip.FZip;
        zip.addEventListener(air.Event.OPEN, onopen);
        zip.addEventListener(air.Event.COMPLETE, oncomplete);
        zip.load(new air.URLRequest(file.url.toString()));

        function oncomplete(event) {
            var count = zip.getFileCount();
                        alert(count);

            for ( var idx = 0; idx < count; idx++)
            {
                var zfile = zip.getFileAt(idx);
                // alert(zfile.filename);
                var uzfile = air.File.applicationStorageDirectory.resolvePath(zfile.filename);
                var stream = new air.FileStream();
                stream.open( uzfile, air.FileMode.WRITE );
                stream.writeBytes( zfile.content,0, zfile.content.length );
                stream.close();
            }

        }

        function onopen(event) {
            alert("file is opened");
        }
</script>
 </head> 
    <body> 


    </body> 
</html>
1
ответ дан 3 September 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: