Показать сообщение отдельно
Старый 19.04.2012, 19:58
bublic_bicubic вне форума Посмотреть профиль Отправить личное сообщение для bublic_bicubic Найти все сообщения от bublic_bicubic
  № 4  
Ответить с цитированием
bublic_bicubic
 
Аватар для bublic_bicubic

Регистрация: Mar 2010
Сообщений: 48
особенности областей видимости.
Функции работают, но во время выполнения iOne = handLength, то есть сardInHandOutline[iOne] = undefined
Всю эту конструкцию можно обернуть в вызов функции (Javascript-way):
Код AS3:
//активируем подсветку при наведении
( function ( card:InteractiveObject, outline:DisplayObject ):void {
	card.addEventListener( MouseEvent.MOUSE_OVER, function ( e:MouseEvent ):void {
		outline.visible = true;
	} );
	card.addEventListener( MouseEvent.MOUSE_OUT, function ( e:MouseEvent ):void {
		outline.visible = false;
	} );
} )( cardInHand[ iOne ], сardInHandOutline[ iOne ] );
Но я бы рекомендовал написать отдельный класс для карты:
Код AS3:
class CardInHand extends Sprite {
	private var body:InteractiveObject;
	private var outline:DisplayObject;
	public function CardInHand( bodyClass:Class, outlineClass:Class ) {
		body = new bodyClass();
		outline = new outlineClass();
		addChild( body );
		addChild( outline );
		outline.visible = false;
		addEventListener( MouseEvent.ROLL_OVER, onRollOver );
		addEventListener( MouseEvent.ROLL_OUT, onRollOut );
	}
	private function onRollOver( e:MouseEvent ):void {
		outline.visible = true;
	}
	private function onRollOut( e:MouseEvent ):void {
		outline.visible = false;
	}
}