Использование Fzip lib в приложении Adobe Air - PullRequest
1 голос
/ 04 мая 2010

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

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

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

Ответы [ 2 ]

1 голос
/ 16 июля 2010

Пример Ари довольно хорош, и это заставило меня начать, но он упустил некоторые довольно важные вещи, такие как запись несжатых файлов обратно на диск. И 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 голос
/ 13 мая 2010

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

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

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

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

-Ari

...