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

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

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

Регистрация: Apr 2009
Сообщений: 104
По умолчанию некорректная работа подгруженного swf

Создал конструктор блок-схем. Работает все нормально. Но если подгружаю его в основной проект, то не желает работать часть кода. А точнее: на панельке podl_mc имеется пять видов стрелок st1,... По команде strelka.onMouseDown выбранная стрелка должна дублироваться и перетаскиваться на рабочее поле. В оригинале так и происходит, а вот после подгрузки - перестает.
Использую для загрузки MovieClipLoader.
Код AS1/AS2:
this._lockroot = true;
прописано.
после
Код AS1/AS2:
strelka.onMouseDown = function() {
трейсится,
а вот после
Код AS1/AS2:
if (this.hitTest(_xmouse, _ymouse) && podl_mc.hitTest(_xmouse, _ymouse)) {
глухо!
Код AS1/AS2:
var muv:MovieClip;
var d:Number = 0;
for (var s = 1; s<=5; s++) {
	var strelka:MovieClip = _root['st'+s];
	strelka.onMouseDown = function() {
		if (this.hitTest(_xmouse, _ymouse) && podl_mc.hitTest(_xmouse, _ymouse)) {
			d++;
			this.duplicateMovieClip('dupst'+d, 100+d);
			trace(this);
			muv = _root['dupst'+d];
			muv.startDrag(false);
			muv.onMouseDown = function() {
				if (this.hitTest(_xmouse, _ymouse) && !this.tr_mc.hitTest(_xmouse, _ymouse) && !this.ball1.hitTest(_xmouse, _ymouse)) {
					this.startDrag(false);
				}
			};
		}
	};
}
Я понимаю, что глюк связан с this(а может и нет), но как правильно записать это условие не знаю. Прошу вашей помощи.

Добавлено через 6 часов 23 минуты
После бессмысленных попыток изменить что-либо в коде, сообразил, что загрузочный модуль то у меня раскрывается на полный экран, а загружаемый swf остается прежних размеров и размещается по центру экрана. Получается несоответствие координат клипов-стрелок и (_xmouse, _ymouse). Код работает, только чтобы взять стрелку, мышку необходимо подвести правее и ниже. Т. е. необходимо пересчитывать координаты. Прочитал о localToGlobal(), но не могу сообразить координаты чего пересчитывать, если клипа strelka, то относительно чего и как потом то что получу применить для проверки условия
Код AS1/AS2:
if (this.hitTest(_xmouse, _ymouse) && podl_mc.hitTest(_xmouse, _ymouse)) {
Подскажите, пожалуйста, что пересчитывать и как это проще сделать.

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

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

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


 


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


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