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

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

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

Регистрация: Oct 2009
Сообщений: 45
По умолчанию Как остановить движение мувика as2

Добрый день. Есть мувик, который движется по оси y при нажатии на кнопку. Нужно сделать, чтобы он останавливался, когда достигнет определенной точки. Вот как я делаю, но он не останавливается:

Код AS1/AS2:
on(release) {
	onEnterFrame = function () {
    slider._y = slider._y + 5;
	if (slider._y == 50) delete slider.onEnterFrame;
}
Спасибо.

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
У вас, получается, мувик slider внутри этой кнопки?
Код AS1/AS2:
on(release) 
{
	onEnterFrame = function () 
	{
		slider._y = slider._y + 5;
		trace(slider._y);
 
		if (slider._y >= 50) delete onEnterFrame ;
	}
}
Не пишите код на объектах - запутаетесь с областями видимости!
1. В вашем случае обработчик onEnterFrame назначается не на slider, а на саму кнопку.
2. В условии следует поставить "больше или равно", так как "равно" точно может и не быть.
__________________
Идите первым!

Старый 13.12.2012, 14:23
pekinessik вне форума Посмотреть профиль Отправить личное сообщение для pekinessik Найти все сообщения от pekinessik
  № 3  
Ответить с цитированием
pekinessik

Регистрация: Oct 2009
Сообщений: 45
slider отдельно, на главной сцене

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Тогда у вас при коде, который вы привели, мувик slider не должен быть виден, и движения вообще не должно происходить при нажатии:
Код AS1/AS2:
on(release) 
{
	trace(slider); //undefined
}
В данном случае, раз уж вам так хочется использовать очень устраевшую запись кода на объекте, сделайте так:
Код AS1/AS2:
on(release) 
{
	var sld:MovieClip = this._parent.slider;
 
	sld.onEnterFrame = function () 
	{
		sld._y = sld._y + 5;
 
		if (sld._y >= 50) delete sld.onEnterFrame ;
	}
}
Добавлено через 4 минуты
А еще правильнее сделать так: записать код в кадре:
Код AS1/AS2:
btn.onRelease = function  () 
{
	slider.onEnterFrame = sldOnEnterFrame;
};
 
function sldOnEnterFrame () 
{
	this._y += 5; //this ссылается на slider, хотя можно записать вместо этого slider
	if (this._y >= 50) delete this.onEnterFrame ;	
}
где btn - имя кнопки на сцене
__________________
Идите первым!

Старый 13.12.2012, 14:34
pekinessik вне форума Посмотреть профиль Отправить личное сообщение для pekinessik Найти все сообщения от pekinessik
  № 5  
Ответить с цитированием
pekinessik

Регистрация: Oct 2009
Сообщений: 45
это код вообще не хочет у меня работать, объект стоит на месте при нажатии на кнопку

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если вы о последнем коде, то должно быть так:
1. Код в кадре.
2. На сцене мувик с именем экземпляра slider
3. На сцене мувик или кнопка с именем экземпляра btn
См. пример
Вложения
Тип файла: rar slider.rar (9.2 Кб, 46 просмотров)
__________________
Идите первым!

Старый 13.12.2012, 14:39
pekinessik вне форума Посмотреть профиль Отправить личное сообщение для pekinessik Найти все сообщения от pekinessik
  № 7  
Ответить с цитированием
pekinessik

Регистрация: Oct 2009
Сообщений: 45
Код AS1/AS2:
btn.onRelease = function  () 
{
	slider.onEnterFrame = sldOnEnterFrame;
};
 
function sldOnEnterFrame () 
{
	this._y += 5; //this ссылается на slider, хотя можно записать вместо этого slider
	if (this._y >= 50) delete this.onEnterFrame ;	
}
Движение по оси y на 5px происходит, кода нажимаешь на кнопку 1 раз. 1 нажатие - 1 смещение на 5px

Добавлено через 2 минуты
все, заработало, БОЛЬШОЕ СПАСИБО!!!!!!!!!!!!!!!!!!!!

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну вот и отлично.
И насчет записи кода на объектах - так не делается уже лет 7-8, и на то много причин.
__________________
Идите первым!

Старый 13.12.2012, 14:56
pekinessik вне форума Посмотреть профиль Отправить личное сообщение для pekinessik Найти все сообщения от pekinessik
  № 9  
Ответить с цитированием
pekinessik

Регистрация: Oct 2009
Сообщений: 45
понятно, буду знать, спасибо!

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

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

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


 


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


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