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

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

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

Регистрация: Dec 2009
Сообщений: 77
По умолчанию управление 3мя movie clipами

есть ТРИ movie clipа
при нажатии кнопки нужно проиграть клипы в последовательности 1,2,3
при нажатии другой кнопки нужно проиграть их обратно 3,2,1
movie клипы находят в библиотеке
то есть как их кинуть на экран по нужным координатам и проиграть?
желательно чтобы между клипами не было видно "склейки" - все шло непрерывно - сами клипы идут непрерывно

Старый 14.01.2010, 09:19
Bankomat вне форума Посмотреть профиль Отправить личное сообщение для Bankomat Найти все сообщения от Bankomat
  № 2  
Ответить с цитированием
Bankomat

Регистрация: Jun 2004
Сообщений: 83
мб разместить их в 3х разных кадрах, и в каждом кадре установить стоп
а кнопки просто перескакивать будут по кадрам

первые три кадра расположить в порядке 123 в конце 3 кадра стоп
потом следующие три кадра расположить 321 в конце кадра 6 стоп
=)

Старый 14.01.2010, 09:39
manuscripti вне форума Посмотреть профиль Отправить личное сообщение для manuscripti Найти все сообщения от manuscripti
  № 3  
Ответить с цитированием
manuscripti

Регистрация: Dec 2009
Сообщений: 77
уточню
123 - персонажная анимация - то есть кнопка всегда находится в другом слое
то есть потом нужно играть 1234
или 1278
где 2 например будет некий центральный кадр - то ест всем должен управлять as

Старый 14.01.2010, 11:06
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Не нужно никаких кадров, есть ведь AS.
Создайте массивы сценариев, где опишите переходы:
Код AS1/AS2:
var mode1:Array = [1, 2, 3];
var mode2:Array = [3, 2, 1];
Делайте аттач нужных мувиков в зависимости от сценария, то есть по значениям из массивов.
В конце каждого ролика должен быть записан вызов функции смены мувика.
Что-то такое:

Код AS1/AS2:
//Сценарии последовательностей вызова мувиков с анимацией. Нулевой элемент - заглушка, не рабочий.
//Следующие - рабочие номера мувиков (идентификаторов в библиотеке)
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").
- код последнего кадра мувиков...
Вложения
Тип файла: rar Работа со сценариями.rar (8.3 Кб, 18 просмотров)


Последний раз редактировалось mooncar; 14.01.2010 в 12:06.
Старый 14.01.2010, 11:10
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если что, то в конце сценария нужно обнулять счетчик currentStep, чтобы можно было запустить другой или тот же сценарий заново.
Для этого в функции нужно проверку на существование очередного элемента текущего сценарного массива сделать. Если там есть элемент-номер, то все как обычно, если нет - то currentStep = 0 и никаких действий.. ну или надпись выводить "Конец", или переход еще куда-то на ваше усмотрение...

Старый 14.01.2010, 11:25
manuscripti вне форума Посмотреть профиль Отправить личное сообщение для manuscripti Найти все сообщения от manuscripti
  № 6  
Ответить с цитированием
manuscripti

Регистрация: Dec 2009
Сообщений: 77
как грамотно сделать - чтобы при проигрывании сценария его координату x например можно было менять? - к пример он должен приближаться к тому месту где был щелчок мышки?


Последний раз редактировалось manuscripti; 14.01.2010 в 11:29.
Старый 14.01.2010, 11:30
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Типа тогда так:
Код AS1/AS2:
this.attachMovie(itemToPlace, instanseName, this.getNextHighestDepth(), {_x:_xmouse, _y:_ymouse});
Вообще про щелчки мышкой вы ничего не говорили. Код выше просто будет размещать очередной мувик в текущих координатах мыши. Если мышь уводится - там и будет очередной.

Старый 14.01.2010, 11:30
manuscripti вне форума Посмотреть профиль Отправить личное сообщение для manuscripti Найти все сообщения от manuscripti
  № 8  
Ответить с цитированием
manuscripti

Регистрация: Dec 2009
Сообщений: 77
и как например сделать
играет к примеру сценарий 1234567
во время 5 клипа произошел щелчок мыши и нужно начать играть сценарий 5,10,20,55

Добавлено через 1 минуту
только клипы нужно играть по своим координатам

Старый 14.01.2010, 11:46
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Как переключаться между режимами - это вы сами придумайте, я не знаю, что там у вас.
Код AS1/AS2:
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;
	}
}
Еще раз повторюсь - принцип смены режимов - за вами. Делать это нужно внутри функции onMouseDown по известному вам алгоритму.. Создайте еще один глобальный сценарный массив, в котором держите уже соответствия "какой проигрывается мувик сейчас - какой соответствует ему номер mode при щелчке мыши", и меняйте mode внутри onMouseDown.
Надеюсь, идею вы поняли.


Последний раз редактировалось mooncar; 14.01.2010 в 12:01.
Старый 14.01.2010, 12:12
manuscripti вне форума Посмотреть профиль Отправить личное сообщение для manuscripti Найти все сообщения от manuscripti
  № 10  
Ответить с цитированием
manuscripti

Регистрация: Dec 2009
Сообщений: 77
спасибо буду разбираться

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

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

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


 


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


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