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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 22.01.2004, 18:01
  № 1  
robotech
Guest

Сообщений: n/a
По умолчанию как лучше организовать слежение???

Есть к примеру 30 переключателей, которые представляют собой мувиклип из двух кадров: в первом кадре кнопка перехода на второй кадр, во втором кадре кнопка перехода на первый. И есть некий мувик, который должен не проигрываться если не один из переключателей не включен (2-й кадр), а если один и более включено - мувик должен играть.
Как лучше организовать такое?

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

Регистрация: Oct 2000
Адрес: Ukraine Lugansk
Сообщений: 852
Отправить сообщение для Fisher с помощью ICQ
На кнопе

1 кадр
on (release) {
_root.ok+=1;
}

2 кадр
on (release) {
_root.ok-=1;
}

На муве
onClipEvent (enterFrame) {
if (_root.ok>2) {
play();
} else {
stop();
}
}


Последний раз редактировалось Fisher; 22.01.2004 в 19:07.
Старый 22.01.2004, 19:21
  № 3  
robotech
Guest

Сообщений: n/a
Спасибо, я так и думал.
Только наверное лучше вот так:

В первом кадре фильма

_root.ok=0;

На кнопе

1 кадр
on (release) {
_root.ok+=1;
if (_root.ok>0) {
_root.muvik.play();
}
play();
}

2 кадр
on (release) {
_root.ok-=1;
if (_root.ok=0) {
_root.muvik.stop();
}
play();
}

На муве (_root.muvik) ничего.
Лучше запихну в функцию, а то потом облом менять код на сорока кнопках...

Или все таки оставить на мувике код

onClipEvent (enterFrame) {
if (_root.ok>0) {
play();
} else {
stop();
}
}
для страховки? А то говорят может не успеть присвоить значение и проверить...

Старый 22.01.2004, 19:29
Fisher вне форума Посмотреть профиль Отправить личное сообщение для Fisher Найти все сообщения от Fisher
  № 4  
Fisher

Регистрация: Oct 2000
Адрес: Ukraine Lugansk
Сообщений: 852
Отправить сообщение для Fisher с помощью ICQ
Да я просто общий прынцып обрисовал
Потести - поэксперементируй.


Последний раз редактировалось Fisher; 22.01.2004 в 19:31.
Старый 22.01.2004, 19:49
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 5  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
друзья мои, мы здесь программированием занимаемся, или, простите, чем ? :))

флажками программируем ?
про побитовые операции мы ничего не слышали ?
что такое ксор не знаем ?
где ваша фантазия ! :(

запускаем исходник, жмём любое количество кнопок - смотрим что получилось.

код из исходника:
Код:
// создаем 50 кнопок
for (var i = 0; i<50; i++) {
	var neo = this.attachMovie("switch", "btn"+i, i);
	// раскидываем кнопки от балды
	neo._x = random(Stage.width);
	neo._y = random(Stage.height);
	// запоминаем индекс кнопки 
	neo.idx = i; 
	// на нажатие
	neo.onRelease = function() {
		// если кадр первый - идем во второй, и наоборот
		this.gotoAndStop(this._currentframe-1 || 2); 
		// что такое XOR читаем в хэлпе ВНИМАТЕЛЬНО 
		_root.btest ^= 1 << this.idx;  
	};
}
// общий для кнопок флажок
btest = 0;
// следим за флажком
player.onEnterFrame = function() {
	if (_root.btest) {
		this.play();
	} else {
		this.stop();
	}
};
единственное ценное в этом коде помечено красным цветом. остальное - лирика.

что происходит - мы каждой кнопке даем индекс. при нажатии мы инвертируем один бит флажка btest. если все биты флажка равны нулю - то флажок будет false. если хоть один бит единица - то уже true.

по трудоемкости исполнения — такой вариант кода ниже плинтуса.
по гибкости — попробуйте придумать лучше.
Вложения
Тип файла: zip 4robotech.zip (5.9 Кб, 112 просмотров)

Старый 22.01.2004, 20:12
  № 6  
robotech
Guest

Сообщений: n/a
СПАСЫБА, попробуем разобраться.
Токо это у меня не просто кнопки, а кнопки включающие и выключающие звук (присоедененный), и не раскиданны рандомом а в определенном порядке....
Миксер музыкальный короче.
Может кто кстати знает исходники миксеров, где все грамотно, програмно построено?

Старый 22.01.2004, 20:33
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 7  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Оригинал написал(а) robotech
Токо это у меня не просто кнопки, а кнопки включающие и выключающие звук (присоедененный), и не раскиданны рандомом а в определенном порядке
нет никакой разницы.

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

а то что у тебя кнопки еще кучу действий делают - это уже твое дело и к этом вопросу не относится.

Старый 23.01.2004, 10:37
Fisher вне форума Посмотреть профиль Отправить личное сообщение для Fisher Найти все сообщения от Fisher
  № 8  
Fisher

Регистрация: Oct 2000
Адрес: Ukraine Lugansk
Сообщений: 852
Отправить сообщение для Fisher с помощью ICQ

Старый 23.01.2004, 13:07
  № 9  
robotech
Guest

Сообщений: n/a
Непонятна эта строка

this.gotoAndStop(this._currentframe-1 || 2);

а точнее принцип действия вот этого this._currentframe-1 || 2

Старый 23.01.2004, 13:42
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 10  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
это то же самое что
Код:
if (this._currentframe-1 == 0) {
	this.gotoAndStop(2);
} else {
	this.gotoAndStop(this._currentframe-1);
}
только гораздо компактнее

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

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

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


 


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


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