Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   открыть картинку с диска и отобразить (http://www.flasher.ru/forum/showthread.php?t=139786)

FinalBoss 11.05.2010 14:05

открыть картинку с диска и отобразить
 
Здравсвуйте. Необходимо открыть произвольный растровый файл с диска через стандартное диалоговое окно открытия файлов и вывести его на экран ...
Решил попробовать сделать с помощью AIR, открытие через стандартное окно сработало без проблем, а вот с отображением выбранной картинки на экран не получается, нужно как-то этот filestream в bitmap превратить ...

Код AS3:

public function onBMPLoad(e:Event):void {                        
    var file:File = File.desktopDirectory;
    file.browseForOpen("Open");
    file.addEventListener(Event.SELECT, onSelectFile);
}
 
public function onSelectFile(e:Event):void {
    var file:File = e.target as File;
    var fileStream:FileStream = new FileStream();               
    fileStream.open(file, FileMode.READ);
    -----------------------
    addChild(fileStream);
}


nOobCrafter 11.05.2010 14:22

имхо аир обсуждается в другой ветке.
В обычном флеше это делалось путем загрузки фотки из байтмассива Loader.loadBytes(ByteArray); гляньте что вы получаете на выходе, может тоже подойдет. А вообще лучше сразу погуглить, готов поспорить есть куча готовых велосипедов.

FinalBoss 11.05.2010 19:36

нашел решение без использования эир, ниже то что касается конкретно моей задачи, а по ссылке можно посмотреть более развитый пример с исходником: http://www.adobe.com/devnet/flash/qu...ss_as3/#access надеюсь кому-нить поможет ....

Код AS3:

public var file:FileReference;
 
public function onBMPLoad(e:Event):void {                       
file = new FileReference();
file.addEventListener(Event.SELECT, onSelectFile);
var fileFilter:FileFilter = new FileFilter("Images: (*.jpeg, *.jpg, *.gif, *.png)", "*.jpeg; *.jpg; *.gif; *.png");
file.browse([fileFilter]);
}
 
public function onSelectFile(e:Event):void {
file.removeEventListener(Event.SELECT, onSelectFile);
file.addEventListener(Event.COMPLETE, onCompleteFile);
file.load();
}
 
private function onCompleteFile(event:Event):void        {
file.removeEventListener(Event.COMPLETE, onCompleteFile);
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadBytesHandler);
loader.loadBytes(file.data);
}
 
private function loadBytesHandler(event:Event):void {
var loaderInfo:LoaderInfo = (event.target as LoaderInfo);
loaderInfo.removeEventListener(Event.COMPLETE, loadBytesHandler);                       
addChild(loaderInfo.content);
}



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

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