![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2011
Сообщений: 19
|
Доброго времени суток, Форумчане !
У меня такой вопрос. Как проще описать процедуру "запоминания" и прорисовки мувиклипа ? Вот мои действия : 1. В первом кадре создаю три мувиклипа, называю их S1 (круг), S2 (квадрат), S3 (элипс). Там же в кадре пишу код проверки : 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); } } 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); } } // проверяем чему равен первый и второй мувик, и, в зависимости от этого, // рисуем их 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); } } Как мне лучше справиться с этой проблемой ? Буду признателен за любые идеи и мысли, исходник прилагаю. |
|
|||||
|
Опишите вкратце, чего вы имеете хотеть достигнуть?
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Избавьтесь от кода во многих кадрах. если уж пишите в кадрах - пишите ТОЛЬКО В ПЕРВОМ
__________________
Отряд Котовскага |
|
|||||
|
Модрон-ветеринар
|
Отступы делайте табуляцией в функциях, условных операторах.. везде. Плохо код читается.
Что касается оптимизации кода, то имя мувика или ссылка на него может быть составным, с использованием переменных. Например, в приближении к вашему случаю: И прислушайтесь к предыдущим постам.
__________________
Идите первым! Последний раз редактировалось mooncar; 13.09.2011 в 14:02. |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 19
|
Всем спасибо за посты
Цитата:
Цитата:
Цитата:
Цитата:
Жду ещё предложений. |
|
|||||
|
Модрон-ветеринар
|
Начните с того, что откажитесь от фреймов. Они тут и в аналогичных случаях не нужны. Фреймы во флеше использовать следует для анимации.
Пишите код в 1-м кадре, и все объекты тоже разместите в 1-м кадре и управляйте в определенные моменты их видимостью с помощью _alpha или _visible. Либо добавляйте из библиотеки с помощью attachMovie и удаляйте с помощью removeMovieClip,
__________________
Идите первым! |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 19
|
Цитата:
Например если кликнуто по клипу - attachMovie на его позицию другой клип.... Если ещё раз кликнуто - removeMovieClip |
|
|||||
|
Генерите двумерный массив с картами. Допустим 10 на 10
Генерите на его основе 10 на 10 кнопок. В одном кадре. Под каждую кладете клип-фигуру и делаете ему _visible = false И все. Клик по кнопке - показываем что там под ней скрыто - круг, квадрат али ишшо что. Запомнили фигуру в переменной var selectedFigure = 1..2 Кликаете по второй кнопке. Сравниваете тип лежащей там фигуры с открытой. Далее либо оставляете открытыми фигуры, либо обе закрываете. И никаких кадров. |
|
|||||
|
Регистрация: Sep 2011
Сообщений: 19
|
dark256, А можно пример на двух картах хотя бы ? А то я уже плотно погряз в создании массивов, присвоении видимости, и переменных... никак не могу дойти...
|
|
|||||
|
Регистрация: Sep 2011
Сообщений: 19
|
Может кто-нибудь ещё поделиться своим мнением ? Желательно с примером =)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:18. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|