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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Aug 2006
Сообщений: 8
По умолчанию Событие onPress и динамический клип

Привет всем.

Есть скрипт, который после второго клика пользователя по мувику "field" рисует стрелку по двум координатам. После создания пытаюсь определить стрелке событие onPress, но ничего не получается. Подскажите, как можно отследить это событие.

Actions для клипа "field":

Код AS1/AS2:
on (press) {
	// рисование стрелки
	function Arrow(objName:String, x1:Number, y1:Number, x2:Number, y2:Number, color, alpha) {
		if(color == undefined) color = 0x000000;
		if(alpha == undefined) alpha = 100;
 
		var mc:MovieClip = _root.field.createEmptyMovieClip( objName, _root.field.getNextHighestDepth());
 
		mc.lineStyle(2, 0, 100);
		mc.moveTo(x1, y1);
		mc.lineTo(x2, y2);
 
		// рисуем стрелку на конце линии
		var arrow:MovieClip = mc.attachMovie( "arrowHead", "arrowHead", 0 );
 
		arrow._x = x2;
		arrow._y = y2;
		arrow._rotation = Math.atan2(y2 - y1, x2 - x1 ) * ( 180 / Math.PI );
 
		// пытаемся определить функцию для события клика по стрелке
		// этот вариант не работает
		mc.onPress = function():Void {
			trace(1);
		}
 
		// этот тоже
		var listener:Object = {};
		listener.onPress = function():Void {
			trace(1);
		}
		mc.addListener(listener);
 
		return mc;
	}
 
	/* Если включен режим рисования стрелок */
	if(_root.drawMode) {
		// первый клик
		if(_root.c.length == 0) {
			// запоминаем координаты
			_root.c[0] = [_root.field._xmouse, _root.field._ymouse];
		}
		// второй клик
		else if(_root.c.length == 1) {
			// запоминаем координаты
			_root.c[1] = [_root.field._xmouse, _root.field._ymouse];
 
			// массив со стрелками
			var ArrowName:String = "arrow" + _root.arrows.length;
			_root.arrows.push(ArrowName);
 
			// рисуем стрелку			
			_root.arrows[ArrowName] = Arrow(ArrowName, _root.c[0][0], _root.c[0][1], _root.c[1][0], _root.c[1][1]);
 
			// очищаем координаты
			_root.c = new Array();
 
			// функция отключает режим рисования
			_root.toogleDrawMode();
		}
	}
}
 
// _root.c - массив с координатами стрелки
Рисование стрелки работает на ура, а вот хочется еще добавить возможность ее редактирования. Заранее благодарю.

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

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

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


 


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


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