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

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

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

Регистрация: Oct 2009
Сообщений: 72
По умолчанию Поведение ItemRenderer при событиях мыши

Доброго времени суток!
У меня стоит задача - сделать ItemRenderer для списка пользователей социальной сети.
В рендерере есть Group-подложка, который по умолчанию скрыт, и появляется только при наведении мыши на элемент, который отрисует рендерер. В этом Group есть кнопка, которая вместе с контейнером прячется/показывается.
В итоге вроде все хорошо, подложка показывается при наведении мыши и скрывается при уходе мыши с элемента. НО когда мышью наводимся на кнопку, которая в подложке - подложка мелькает, будто происходит событие ухода мыши с элемента. Подскажите пожалуйста, как с этим бороться?

Вот код ItemRenderer`а:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer 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="100" height="176" 
				autoDrawBackground="false"
				creationComplete="initComplete(event)"
				mouseOver="group1_mouseOverHandler(event)"
				mouseOut="group1_mouseOutHandler(event)">
	<fx:Declarations>
		<s:Resize id="big" target="{imageRound}" widthTo="70" heightTo="70" duration="100"/>
		<s:Resize id="low" target="{imageRound}" widthTo="50" heightTo="50" duration="100"/>
	</fx:Declarations>
 
	<fx:Script>
		<![CDATA[
			import mx.events.FlexEvent;
 
			protected function initComplete(event:FlexEvent):void
			{
 
			}
 
			protected function group1_mouseOverHandler(event:MouseEvent):void
			{
				low.stop();
				big.play();
				plashka.alpha = 1;
			}
 
			protected function group1_mouseOutHandler(event:MouseEvent):void
			{
				big.stop();
				low.play();
				plashka.alpha = 0;
			}
 
		]]>
	</fx:Script>
 
	<s:Group id="plashka" left="5" right="5" top="10" height="150" alpha="0">
		<s:Rect left="0" right="0" top="0" bottom="0" radiusX="4" radiusY="4">
			<s:fill>
				<s:LinearGradient rotation="90">
					<s:GradientEntry color="0xf0eee4" alpha="0.1"/>
					<s:GradientEntry color="0xf0eee4" alpha="1"/>
				</s:LinearGradient>
			</s:fill>
			<s:filters>
				<s:DropShadowFilter angle="90" distance="2" strength="1" blurX="4" blurY="8" alpha="0.6" color="0x4d4d4d"/>
			</s:filters>
		</s:Rect>
		<s:Button y="125" label="Выбрать" horizontalCenter="0"/>
	</s:Group>
 
	<s:VGroup left="5" right="5" top="23" height="125" gap="7" horizontalAlign="center">
		<s:Group id="imageRound" width="50" height="50">
			<s:Rect left="0" right="0" top="0" bottom="0" radiusX="45" radiusY="45"> <!-- THIS IS CIRCLEEEEEEE!!!! -->
				<s:fill>
					<s:LinearGradient rotation="90">
						<s:GradientEntry color="0xff00f0" alpha="0.61"/>
						<s:GradientEntry color="0xff0000" alpha="1"/>
					</s:LinearGradient>
				</s:fill>
			</s:Rect>
		</s:Group>
		<s:Label text="{data.first_name}"/>
		<s:Label text="{data.last_name}"/>
	</s:VGroup>
 
</s:ItemRenderer>

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

Регистрация: Feb 2006
Сообщений: 884
Записей в блоге: 2
Отправить сообщение для djyamato с помощью ICQ Отправить сообщение для djyamato с помощью Skype™
я бы использовал стэйты рендерера, у него уже есть механизм реагирования на события мышки.
Код AS3:
<s:states>
		<s:State name="normal"/>
		<s:State name="hovered"/>
		<s:State name="selected"/>
	</s:states>
 
	<s:Group id="plashka" 
			 left="5" 
			 right="5" 
			 top="10" 
			 height="150" 
			 alpha.normal="0"
			 alpha.hovered="1"
			showEffect="Fade">
		<s:Rect left="0" right="0" top="0" bottom="0" radiusX="4" radiusY="4">
			<s:fill>
				<s:LinearGradient rotation="90">
					<s:GradientEntry color="0xf0eee4" alpha="0.1"/>
					<s:GradientEntry color="0xf0eee4" alpha="1"/>
				</s:LinearGradient>
			</s:fill>
			<s:filters>
				<s:DropShadowFilter angle="90" distance="2" strength="1" blurX="4" blurY="8" alpha="0.6" color="0x4d4d4d"/>
			</s:filters>
		</s:Rect>
		<s:Button y="125" label="Выбрать" horizontalCenter="0"/>
	</s:Group>
 
	<s:VGroup left="5" right="5" top="23" height="125" gap="7" horizontalAlign="center">
		<s:Group id="imageRound" 
				 width.normal="50" 
				 height.normal="50"
				 width.hovered="150"
				 height.hovered="150"
				 resizeEffect="Resize">
			<s:Rect left="0" right="0" top="0" bottom="0" radiusX="45" radiusY="45"> <!-- THIS IS CIRCLEEEEEEE!!!! -->
				<s:fill>
					<s:LinearGradient rotation="90">
						<s:GradientEntry color="0xff00f0" alpha="0.61"/>
						<s:GradientEntry color="0xff0000" alpha="1"/>
					</s:LinearGradient>
				</s:fill>
			</s:Rect>
		</s:Group>
		<s:Label text="{data.first_name}"/>
		<s:Label text="{data.last_name}"/>
	</s:VGroup>
Обратите внимание:
Код AS3:
<s:Group id="imageRound" 
				 width.normal="50" 
				 height.normal="50"
				 width.hovered="150"
				 height.hovered="150"
				 resizeEffect="Resize">
http://help.adobe.com/en_US/flex/usi...3611-7ffe.html

Старый 29.10.2012, 12:35
Bond007 вне форума Посмотреть профиль Отправить личное сообщение для Bond007 Найти все сообщения от Bond007
  № 3  
Ответить с цитированием
Bond007

Регистрация: Mar 2010
Сообщений: 100
Попробуйте использовать события rollOut и rollOver вместо ваших.

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

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

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


 


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


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