
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
Flex - проблема с загрузкой картинки
|
||
| Философия, технологии, алгоритмы! |
![]() |
|
|
Опции темы |
|
|
#1 |
|
Mоdеrаtоr
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33
|
Flex - проблема с загрузкой картинки
Как реализовать следующую схему: пользователь щёлкает по кнопке, открывается окно для выбора файла картинки, затем эта картинка загружается во флешку и показывается в отдельном окне. Когда пользователь загружает ещё одну картинку, то в окне появляется ещё одна картинка, и т.д.
Я реализовываю так: создаю FileReference file, затем с помощью browse и load загружаю картинку и передаю file.data в качестве аргумента функции, которая в другом классе (точнее, MXML-модуле) создаёт img:Image=new Image(); img.source=data (data - это переданный file.data) Происходит крэш. В чём проблема?! ![]() P.S. Если что - Flex 3 SDK 3.5 ActionScript 3. |
|
|
|
|
#2 |
|
Форумец
Сообщений: 152
Регистрация: 03.07.2006
|
Хорошо бы код в студию.
Вот такой точно работает на сдк 3.4 и 3.5, на других не пробовал. Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
applicationComplete="init()">
<mx:Script>
<![CDATA[
import mx.controls.Image;
private var fr:FileReference;
private const imagesFilter:FileFilter = new FileFilter("Изображения", "*.jpg;*.gif;*.png");
private function init():void
{
fr = new FileReference();
fr.addEventListener(Event.SELECT, frSelectHandler);
fr.addEventListener(Event.COMPLETE, frCompleteHandler);
}
private function frSelectHandler(e:Event):void
{
fr.load();
}
private function frCompleteHandler(e:Event):void
{
var i:Image = new Image();
i.source = fr.data;
images.addChild(i);
}
]]>
</mx:Script>
<mx:Button id="browse" click="fr.browse([imagesFilter])" x="10" y="10" label="Открыть"/>
<mx:Tile x="10" y="40" id="images">
</mx:Tile>
</mx:Application>
|
|
|
|
|
#3 |
|
Mоdеrаtоr
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33
|
Ismail, там я тоже спросил.
-=QWERTY=-, код не привёл, потому что он на ноуте, ноут к сети не подключен, перепечатывать лень. Сейчас проверю, спасибо.P.S. Спасибо, нашёл ошибку - я пытался обратиться к file.data раньше, чем картинка была загружена. Последний раз редактировалось DeniSS1; 28.12.2009 в 16:42. |
|
|
|
|
#4 |
|
Mоdеrаtоr
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33
|
Возникла другая проблема - креша нет, а картинка не выводится. Вот код
В одном из классов: Код:
_components[n].image=file.data Код:
private var _image:Image=new Image();
public function set image(img:ByteArray){
_image.source=img;
addChild(_image);
}
|
|
|
|
|
#5 |
|
Форумец
Сообщений: 152
Регистрация: 03.07.2006
|
А какой класс наследует твой класс?
|
|
|
|
|
#7 |
|
Форумец
Сообщений: 152
Регистрация: 03.07.2006
|
К сожалению всех тонкостей флекса не знаю, могу только предположить, что на спрайте не отображаются компоненты, которые наследуются от UIComponent. Может как то и можно добавить, но я пока не нашел способа.
|
|
|
|
|
#8 |
|
Mоdеrаtоr
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33
|
Появился ещё вопрос по Flex-у:
(Внимание! Чтение этого текста опасно для вашего стиля программирования!) Есть класс Figure со свойством coords:Array. В другом классе есть public static var figures[]. В третьем классе GraphicsLayer некая функция инициализирует значения figures[] объектами класса Figure Код:
GraphicsLayer.figures[i]=new Figure(); GraphicsLayer.figures[i].coords[0]=new Point(mouseX, mouseY); Код AS3: Код:
GraphicsLayer.figures[0].coords[0].x Последний раз редактировалось DeniSS1; 30.12.2009 в 14:17. |
|
|
|
|
#11 |
|
Mоdеrаtоr
Сообщений: 1,617
Регистрация: 09.10.2007
Возраст: 33
|
Нагуглил сам, http://www.flasher.ru/forum/showthre...F4%E0%E9%EB%E0
|
|
|