|
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
управление 3мя movie clipами
есть ТРИ movie clipа
при нажатии кнопки нужно проиграть клипы в последовательности 1,2,3 при нажатии другой кнопки нужно проиграть их обратно 3,2,1 movie клипы находят в библиотеке то есть как их кинуть на экран по нужным координатам и проиграть? желательно чтобы между клипами не было видно "склейки" - все шло непрерывно - сами клипы идут непрерывно |
|
|||||
Регистрация: Jun 2004
Сообщений: 83
|
мб разместить их в 3х разных кадрах, и в каждом кадре установить стоп
а кнопки просто перескакивать будут по кадрам первые три кадра расположить в порядке 123 в конце 3 кадра стоп потом следующие три кадра расположить 321 в конце кадра 6 стоп =) |
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
уточню
123 - персонажная анимация - то есть кнопка всегда находится в другом слое то есть потом нужно играть 1234 или 1278 где 2 например будет некий центральный кадр - то ест всем должен управлять as |
|
|||||
Модрон-ветеринар
|
Не нужно никаких кадров, есть ведь AS.
Создайте массивы сценариев, где опишите переходы: Делайте аттач нужных мувиков в зависимости от сценария, то есть по значениям из массивов. В конце каждого ролика должен быть записан вызов функции смены мувика. Что-то такое: //Сценарии последовательностей вызова мувиков с анимацией. Нулевой элемент - заглушка, не рабочий. //Следующие - рабочие номера мувиков (идентификаторов в библиотеке) var mode1:Array = [0, 1, 2, 3]; var mode2:Array = [0, 3, 2, 1]; var playMode:Number ; //текущий сцеарий var currentStep:Number = 0; //текущий шаг анимации btn1.onRelease = function () { playMode = 1; manageAnim (); }; btn2.onRelease = function () { playMode = 2; manageAnim (); }; function manageAnim () { currentStep++; //удаляем старый мувик на сцене var itemToRemove:String = 'mc' + (currentStep - 1); //находим имя предыдущего мувика на сцене для удаления this[itemToRemove].removeMovieClip(); //удаляем //добавляем новый мувик на сцене var itemToPlace:String = 'mc_id' + this['mode' + playMode][currentStep];//вычисляем id след. мувика в библиотеке var instanseName = 'mc' + currentStep; this.attachMovie(itemToPlace, instanseName, this.getNextHighestDepth(), {_x:100, _y:100}); } //ВАЖНО! Внутри каждого мувика-анимации в последнем кадре должен стоять вызов функции: // _parent.manageAnim(); - в библиотеке идентификаторы связывания (Правой кнопкой на мувике - "Linkage"). - код последнего кадра мувиков... Последний раз редактировалось mooncar; 14.01.2010 в 12:06. |
|
|||||
Модрон-ветеринар
|
Если что, то в конце сценария нужно обнулять счетчик currentStep, чтобы можно было запустить другой или тот же сценарий заново.
Для этого в функции нужно проверку на существование очередного элемента текущего сценарного массива сделать. Если там есть элемент-номер, то все как обычно, если нет - то currentStep = 0 и никаких действий.. ну или надпись выводить "Конец", или переход еще куда-то на ваше усмотрение... |
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
как грамотно сделать - чтобы при проигрывании сценария его координату x например можно было менять? - к пример он должен приближаться к тому месту где был щелчок мышки?
Последний раз редактировалось manuscripti; 14.01.2010 в 11:29. |
|
|||||
Модрон-ветеринар
|
Типа тогда так:
Вообще про щелчки мышкой вы ничего не говорили. Код выше просто будет размещать очередной мувик в текущих координатах мыши. Если мышь уводится - там и будет очередной. |
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
и как например сделать
играет к примеру сценарий 1234567 во время 5 клипа произошел щелчок мыши и нужно начать играть сценарий 5,10,20,55 Добавлено через 1 минуту только клипы нужно играть по своим координатам |
|
|||||
Модрон-ветеринар
|
Как переключаться между режимами - это вы сами придумайте, я не знаю, что там у вас.
var mode1:Array = [0, 1, 2, 3]; var mode2:Array = [0, 3, 2, 1]; var playMode:Number; //текущий сцеарий var currentStep:Number = 0; //текущий шаг анимации this.onMouseDown = function () { this['mc' + currentStep].removeMovieClip(); //удаляем последний мувик из старой последовательности x0 = _root._xmouse; y0 = _root._ymouse; currentStep = 0; playMode = 1; //вот тут нужно задавать номер сценария - примерно как- я написал в конце manageAnim (); } function manageAnim () { currentStep++; //удаляем старый мувик на сцене var itemToRemove:String = 'mc' + (currentStep - 1); //находим имя предыдущего мувика на сцене для удаления this[itemToRemove].removeMovieClip(); //удаляем //добавляем новый мувик на сцене var itemToPlace:String = 'mc_id' + this['mode' + playMode][currentStep];//вычисляем id след. мувика в библиотеке if (this['mode' + playMode][currentStep]) { var instanseName = 'mc' + currentStep; this.attachMovie(itemToPlace, instanseName, this.getNextHighestDepth(), {_x:x0, _y:y0}); } else { currentStep = 0; } } Надеюсь, идею вы поняли. Последний раз редактировалось mooncar; 14.01.2010 в 12:01. |
|
|||||
Регистрация: Dec 2009
Сообщений: 77
|
спасибо буду разбираться
|
Часовой пояс GMT +4, время: 18:23. |
|
« Предыдущая тема | Следующая тема » |
|
|