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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.05.2008, 21:52
МышьБарометр вне форума Посмотреть профиль Отправить личное сообщение для МышьБарометр Найти все сообщения от МышьБарометр
  № 1  
Ответить с цитированием
МышьБарометр

Регистрация: Oct 2007
Сообщений: 13
По умолчанию Как сделать чтобы ролик проигрывался только (!) 1 раз

Опять с тем же вопросом.
Собсно код. Требуется чтобы ролик при наведении мыши на объек проигрывался только один(!) раз. И все. Больше чтоб никада. В простом коде это реализуется полностью
типа так
Код:
 _global.i = 1; // глобальная переменная (код в кадре)

a.onRollOver = function()
{  if (i == 1) // 

	b.gotoAndPlay(1);
	Mouse.hide()
	a.removeMovieClip();
i = 2 
}

чуть усложнила код и вот:

Код:
 
_global.i = 1;
glaz1.onEnterFrame=function  () {
	this._rotation=(Math.atan2(_ymouse-this._y,_xmouse-this._x)*180/Math.PI)
}
glaz2.onEnterFrame=function  () {
	this._rotation=(Math.atan2(_ymouse-this._y,_xmouse-this._x)*180/Math.PI)
}
i = 1;
pole.onRollOver = function()
{  if (i == 1) // 
	prig._alpha = 100;
	prig.gotoAndPlay(1);
	Mouse.hide()
	i = 2
	}
В идеале все должно быть так. Навожу мыш на объект "pole" запускается мувиклип prig. Он проигрывается. Навожу второй раз мышь - ничего не происходит.

Но в суровой жизни ролик начинает проигрываться ровно столько раз, сколько мышь попадает на объект pole. Где же ошибка? Нужно же, чтоб ролик prig больше никогда не проигрывался пока не будет перезапущен весь swf


Последний раз редактировалось МышьБарометр; 10.05.2008 в 21:57.
Старый 10.05.2008, 21:57
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Информация к размышлению
Код:
_global.i = 1;
_global.a = 2;
i = 10;
trace (_global.i)
trace (i)
trace (a)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.05.2008, 22:11
МышьБарометр вне форума Посмотреть профиль Отправить личное сообщение для МышьБарометр Найти все сообщения от МышьБарометр
  № 3  
Ответить с цитированием
МышьБарометр

Регистрация: Oct 2007
Сообщений: 13
Спасибо. Иду размышлять.

Старый 10.05.2008, 22:33
МышьБарометр вне форума Посмотреть профиль Отправить личное сообщение для МышьБарометр Найти все сообщения от МышьБарометр
  № 4  
Ответить с цитированием
МышьБарометр

Регистрация: Oct 2007
Сообщений: 13
Поразмыслив. Обнаружено что переменная "И" не запоминает значение 2. Которое вроде бы должна запомнить. И которое помешает мувиклипу проиграться заново

Не ну я туплю, но я реально не понимаю, почему вставляя правильный рабочий код №1
Код:
_global.i = 1; // глобальная переменная (код в кадре)

a.onRollOver = function()
{  if (i == 1) // 

	b.gotoAndPlay(1);
	Mouse.hide()
	a.removeMovieClip();
i = 2 
}
в вариант №2 и получая вот это
Код:
_global.i = 1;
glaz1.onEnterFrame=function  () {
	this._rotation=(Math.atan2(_ymouse-this._y,_xmouse-this._x)*180/Math.PI)
}
glaz2.onEnterFrame=function  () {
	this._rotation=(Math.atan2(_ymouse-this._y,_xmouse-this._x)*180/Math.PI)
}


pole.onRollOver = function()
{  if (i == 1) 
    prig._alpha = 100
	prig.gotoAndPlay(1);
	Mouse.hide()
	prig.removeMovieClip();
i = 2 
}
переменная i не хочет запоминать значение 2


Последний раз редактировалось МышьБарометр; 10.05.2008 в 22:35.
Старый 10.05.2008, 22:38
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Где-то что не так сделали. Отсюда не видно.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.05.2008, 02:33
Роман Вадимович вне форума Посмотреть профиль Отправить личное сообщение для Роман Вадимович Найти все сообщения от Роман Вадимович
  № 6  
Ответить с цитированием
Роман Вадимович

Регистрация: May 2007
Сообщений: 232
Уважаемый автор.
Если нужно при наведении мыши проигрывать ролик только 1 раз - можно использовать такой простой код:
Код:
mc.onRollOver = function()
{
  this.play();
  delete this.onRollOver;
}
При этом в мувике mc в первом и последнем кадре должен быть прописан код:
Код:
stop();

Старый 11.05.2008, 12:57
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Но если onRollOver должен постоянно что то делать, даже если мувик уже проигрался (скажем, гадить в логи) то метод что Вы предложили не подходит.
То Автор:
_global - это фу.

Код:
var i = 1;

a.onRollOver = function()
{  if (i == 1) b.gotoAndPlay(1);
i = 2 
}
Или, если неймется с глобалкой:

Код:
_global.i = 1;

a.onRollOver = function()
{  if (_global.i == 1) b.gotoAndPlay(1);
_global.i = 2 
}

Старый 11.05.2008, 13:23
Роман Вадимович вне форума Посмотреть профиль Отправить личное сообщение для Роман Вадимович Найти все сообщения от Роман Вадимович
  № 8  
Ответить с цитированием
Роман Вадимович

Регистрация: May 2007
Сообщений: 232
Код:
mc.onRollOver = function()
{
  if(!this.played)
  {
    this.played = true; this.play();
  }
  // Нагадить в логах
}

Старый 11.05.2008, 15:05
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Можно и так, но лучше подписать ещё
Код:
mc.played=false;
Ибо у меня не всегда срабатывало !undefined_var==false

Старый 18.05.2008, 22:44
МышьБарометр вне форума Посмотреть профиль Отправить личное сообщение для МышьБарометр Найти все сообщения от МышьБарометр
  № 10  
Ответить с цитированием
МышьБарометр

Регистрация: Oct 2007
Сообщений: 13
Спасибо большое. Кажись заработало.

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

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

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


 


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


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