Показать сообщение отдельно
Старый 13.09.2011, 07:08
_LennY_ вне форума Посмотреть профиль Отправить личное сообщение для _LennY_ Найти все сообщения от _LennY_
  № 1  
Ответить с цитированием
_LennY_
 
Аватар для _LennY_

Регистрация: Sep 2011
Сообщений: 19
Question Как "запомнить" выбранный мувик ?

Доброго времени суток, Форумчане !

У меня такой вопрос. Как проще описать процедуру "запоминания" и прорисовки мувиклипа ?


Вот мои действия :

1. В первом кадре создаю три мувиклипа, называю их S1 (круг), S2 (квадрат), S3 (элипс). Там же в кадре пишу код проверки :

Код AS1/AS2:
stop();
// Выбираем нужный мувик и рисуем его в следующем кадре
onMouseDown = function():Void {
if (S1.hitTest(_root._xmouse, _root._ymouse))
{ 
gotoAndStop(2);
} 
if (S2.hitTest(_root._xmouse, _root._ymouse)) 
{  
gotoAndStop(3);
} 
if (S3.hitTest(_root._xmouse, _root._ymouse))
{ 
gotoAndStop(4);
} 
}
2. Во втором третьем и четвёртом кадре рисую выбранный мувик и выбираю второй мувик

Код AS1/AS2:
S = 1; // переменная для запоминания первого мувика
stop();
// Выбираем нужный мувик и рисуем его в следующем кадре
onMouseDown = function():Void {
if (S1.hitTest(_root._xmouse, _root._ymouse))
{ 
SS = 1; // переменная для запоминания второго мувика
gotoAndStop(5);
} 
if (S2.hitTest(_root._xmouse, _root._ymouse)) 
{ 
SS = 2; // переменная для запоминания второго мувика
gotoAndStop(5);
} 
if (S3.hitTest(_root._xmouse, _root._ymouse))
{ 
SS = 3; // переменная для запоминания второго мувика
gotoAndStop(5);
} 
}
3. В пятом кадре проверяю какие мувики выбраны, и, в зависимости от этого, рисую их с шестого по четырнадцатый кадр.

Код AS1/AS2:
// проверяем чему равен первый и второй мувик, и, в зависимости от этого,
// рисуем их
 
if (S == 1) // если первый мувик равен "кругу"
{ 	if (SS == 1) // и если второй мувик равен кругу то рисуем круг и круг
{ gotoAndStop(6); }
if (SS == 2) // и если второй мувик равен квадрату то рисуем круг и квадрат
{ gotoAndStop(7); }
if (SS == 3) // и если второй мувик равен элипсу то рисуем круг и элипс
{ gotoAndStop(8); }
} 
if (S == 2) // если первый мувик равен "квадрату"
{ 	if (SS == 1) // и если второй мувик равен кругу то рисуем квадрат и круг
{ gotoAndStop(9); }
if (SS == 2) // и если второй мувик равен квадрату то рисуем круг и квадрат
{ gotoAndStop(10); }
if (SS == 3) // и если второй мувик равен элипсу  то рисуем круг и элипс
{ gotoAndStop(11); }
} 
 
if (S == 3) // если первый мувик равен "элипсу"
{ 	if (SS == 1) // и если второй мувик равен кругу то рисуем элипс и круг
{ gotoAndStop(12); }
if (SS == 2) // и если второй мувик равен квадрату то рисуем элипс и квадрат
{ gotoAndStop(13); }
if (SS == 3) // и если второй мувик равен элипсу то рисуем круг и элипс
{ gotoAndStop(14); }
}
Получается что я горожу "большой огород", который растёт в геометрической прогрессии, а ведь ещё надо как то описывать и третий мувик ...
Как мне лучше справиться с этой проблемой ?
Буду признателен за любые идеи и мысли, исходник прилагаю.
Вложения
Тип файла: rar qwestion.rar (6.1 Кб, 29 просмотров)