Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.09.2011, 23:19
maksimov вне форума Посмотреть профиль Отправить личное сообщение для maksimov Найти все сообщения от maksimov
  № 1  
Ответить с цитированием
maksimov
 
Аватар для maksimov

Регистрация: Jan 2010
Сообщений: 28
По умолчанию source для BitmapImage

Условие:
Значением source у BitmapImage, является Bindable'овая переменная типа String, которая может быть либо равна "", либо пути к изображению. В первом случае BitmapImage послушно ничего не делает, во втором - загружает и отображает изображение.

Задача:
Добавлять на конец пути к изображению, ещё несколько символов(к примеру:"=s100"). Но добавлять их только в том случае, если строка не пустая(иначе BitmapImage будет считать этот "хвостик" - путём к картинке, и пытаться её загрузить).


Я, пока что нашёл только вот такой вариант:

Код AS3:
<s:BitmapImage id="myImage"
		x="20" y="20" width="100" height="100"
		horizontalAlign="center"
		verticalAlign="middle"
		scaleMode="letterbox"
		smooth="true"
		smoothingQuality="high"
		source="{image}{(image!='')?'=s100':''}"/>
Насколько сей вариант "кошерный", или возможно есть какие-то более грамотные подходы?
__________________
GAE + Flex = CyoaWare =)

Старый 20.09.2011, 23:38
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 2  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Если это работает, то лучше заняться чем-то более полезным чем поиск кошерных вариантов.
Тоже самое можно написать в AS3, но зачем...

Старый 20.09.2011, 23:42
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 3  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
И это работает? С двумя фигурными скобками?
Что-то кажется, что правильнее было бы во всех смыслах поместить туда вызов функции, которая будет возвращать строку (или null).

Старый 21.09.2011, 12:00
maksimov вне форума Посмотреть профиль Отправить личное сообщение для maksimov Найти все сообщения от maksimov
  № 4  
Ответить с цитированием
maksimov
 
Аватар для maksimov

Регистрация: Jan 2010
Сообщений: 28
Цитата:
Сообщение от Astraport Посмотреть сообщение
Если это работает, то лучше заняться чем-то более полезным чем поиск кошерных вариантов.
Ну... даже самый большой проект, состоит из мааааленьких "кирпичиков". И если эти "кирпичики" некачественные, то и ожидать качественного функционирования от проекта не приходится.

Если вот так, "на авось", оставлять сомнительные решения, то вскоре код превратиться в помойку... =(


Цитата:
Сообщение от Dimitry_II Посмотреть сообщение
И это работает? С двумя фигурными скобками?
Вроде да. Когда писал - сам сомневался, что так можно. =)


Цитата:
Сообщение от Dimitry_II Посмотреть сообщение
Что-то кажется, что правильнее было бы во всех смыслах поместить туда вызов функции, которая будет возвращать строку (или null).
То же так думаю. Но как это реализовать - что-то не соображу.
__________________
GAE + Flex = CyoaWare =)

Старый 21.09.2011, 12:53
Dimitry_II вне форума Посмотреть профиль Отправить личное сообщение для Dimitry_II Найти все сообщения от Dimitry_II
  № 5  
Ответить с цитированием
Dimitry_II

Регистрация: Jan 2010
Сообщений: 211
А что сложного? - Первое - должна возвращать String (null или строку), второе - в качестве параметра ОБЯЗАТЕЛЬНО должен быть биндовый параметр (тот же image).

Старый 22.09.2011, 02:28
aux вне форума Посмотреть профиль Отправить личное сообщение для aux Найти все сообщения от aux
  № 6  
Ответить с цитированием
aux

Регистрация: Sep 2011
Сообщений: 2
а через Loader\URLLoader не пробовали?

Старый 22.09.2011, 10:50
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 7  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Как-то не понятно, как эта конструкция с двумя фигурными скобками вообще работает... Откуда ты взял такой вариант? Там есть объяснение?

Старый 22.09.2011, 14:00
maksimov вне форума Посмотреть профиль Отправить личное сообщение для maksimov Найти все сообщения от maksimov
  № 8  
Ответить с цитированием
maksimov
 
Аватар для maksimov

Регистрация: Jan 2010
Сообщений: 28
Цитата:
Сообщение от Dimitry_II Посмотреть сообщение
А что сложного? - Первое - должна возвращать String (null или строку), второе - в качестве параметра ОБЯЗАТЕЛЬНО должен быть биндовый параметр (тот же image).
Спасибо, сработало! =) Я как то даже и не подумал, что "биндовость" параметра "пробивает прямо сквозь функцию".


Цитата:
Сообщение от Silicium Посмотреть сообщение
Как-то не понятно, как эта конструкция с двумя фигурными скобками вообще работает...
"Сам в шоке." =) Когда писал - сам не был уверен, что mxml это "съест".


Цитата:
Сообщение от Silicium Посмотреть сообщение
Откуда ты взял такой вариант? Там есть объяснение?
Можно смело считать это "моим личным изобретением". =))))




Теперь осталось понять, какой вариант правильнее:

Вариант 1.
Код AS3:
[Bindable]
public var image:String
...
<s:BitmapImage id="myImage"
		x="20" y="20" width="100" height="100"
		horizontalAlign="center"
		verticalAlign="middle"
		scaleMode="letterbox"
		smooth="true"
		smoothingQuality="high"
		source="{image}{(image!='')?'=s100':''}"/>
Вариант 2.
Код AS3:
[Bindable]
public var image:String
public function i(value:String, arg:String):String
{
	if (value && value != "")
	{
		return value + arg;
	}
	return null;
}
...
<s:BitmapImage id="myImage"
		x="20" y="20" width="100" height="100"
		horizontalAlign="center"
		verticalAlign="middle"
		scaleMode="letterbox"
		smooth="true"
		smoothingQuality="high"
		source="{i(image, '=s100')}"/>
__________________
GAE + Flex = CyoaWare =)

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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