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

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

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
По умолчанию Вывод части изображения в компоненте

Чтобы не плодить кучу картинок, решил все значки поместить на один длинный PNG (15 х 150) и выводить часть этого изображения в зависимости от данных, т. е. просто перемещать PNG размещая нужный значок напротив зоны видимости (15 х 15). Не получается спрятать остальные значки, они тоже выводятся. Как их спрятать?

Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx" width="15" height="15">
	<fx:Script>
		<![CDATA[
			[Bindable] public var newY:int = 0;
 
		]]>
	</fx:Script>
	<s:Image x="0" y="{newY}" smooth="true" source="@Embed('assets/signs.png')"/>
</s:Group>
Код AS3:
<components:Sign newY="{signY}" width="15" height="15"/>
__________________
In Code We Trust

Старый 05.04.2012, 13:51
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Не проще ли на pure as3 написать "вырезатель" нужной картики, bitmapData & bitmap ,
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Да есть ещё как минимум 5 способов это сделать. Но хотелось бы знать как это сделать на Flex.
__________________
In Code We Trust

Старый 05.04.2012, 14:05
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 4  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Просто это будет очень рессурсоемко ,
а в вашем случае, вам нужно двигать не s:Image , а его source
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Я вот сейчас сделал так:

Код AS3:
protected function creationCompleteHandler(event:FlexEvent):void
			{
			img.mask = mask as DisplayObject;
			}
 
		]]>
	</fx:Script>
	<s:Image x="0" y="{newY}" smooth="true" source="@Embed('assets/signs-expert.png')" id="img"/>
	<s:Image x="0" y="0" source="@Embed('assets/mask.png')" id="mask"/>
Где mask - это пустая png размерами 15 на 15. Вроде работает, но насколько это ресурсоемко?
__________________
In Code We Trust

Старый 05.04.2012, 14:20
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 6  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
тогда уж проще было :
Код AS3:
var shape:Shape = new Shape();
shape.graphics.drawRect(0,0,15,15);
img.mask = shape;
Ресурсоемко в плане того, что у вас создается > 3 DisplayObject'ов и т.п.

Можно сделать функцию у какого-нибудь менеджера которая будет возвращать вам нужный объект.



Код AS3:
<s:Image smooth="true" source="tilemanage.getTile(1)" id="img"/>
private var tilemanage:TileManager;
protected function creationCompleteHandler(event:FlexEvent):void
			{
			tilemanage = new TileManager('assets/signs-expert.png');
			}
//TileManager:
Пусть TileManager грузит основную png, из ее BitmapData создает сколько нужно маленький объектов и возвращает.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
С TileManager очень интересно. Спс.
А вот со спрайтами и шейпами я пробовал - вообще ничего не выводит. Видимо их нужно помещать на сцену, а в флексе это опять же не просто.
__________________
In Code We Trust


Последний раз редактировалось Astraport; 05.04.2012 в 14:26.
Старый 05.04.2012, 15:35
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 8  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Цитата:
а в флексе это опять же не просто.
Почему?
Код AS3:
<mx:UIComponent id="place"/>
private function addToPlace(data:DisplayObject):void
{
place.addChild(data);
}
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 05.04.2012, 18:55
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 9  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от Astraport Посмотреть сообщение
Да есть ещё как минимум 5 способов это сделать. Но хотелось бы знать как это сделать на Flex.
У вас какое-то странное понимание, что такое Flex.
__________________
משיח לא בא
משיח גם לא מטלפן

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
У вас какое-то странное понимание, что такое Flex
Возможно, но тогда это бы звучало немного длиннее:
"Но хотелось бы знать как это сделать с использованием MXML компонентов с минимальным участием as3."
__________________
In Code We Trust

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

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

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


 


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


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