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

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

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
По умолчанию Как отменить действие функции?

Имею следующую ситуацию:
В фильме 2 мувика.

В кадре:

function abc() {
mc.onEnterFrame = function() {
mc._x = mc._x+(_root._xmouse-mc._x)*0.08;
mc._y = mc._y+(_root._ymouse-mc._y)*0.08;
};
}
На втором мувике:

onClipEvent (enterFrame) {
if (this.hitTest(_root._xmouse, _root._ymouse, 1)) {
_level0.abc();
}
}

Как остановить действие функции, т.е. прекратить драгание mc, когда курсор уходит из области второго мувика?
Помогите, плиз. Пробовал по разному, не выходит(

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

Регистрация: Aug 2001
Сообщений: 4,121
итак, 2 мувика:
– один зовут 'mc' и на нем никакого скрипта нету (его будем драгать)
– другой неважно как зовут и он является полем, над которым должен происходить драг

на мувик-поле повесь:
Код:
onClipEvent (load) {
	dragAction = function () {
		_parent.mc._x += (_root._xmouse-_parent.mc._x)*0.08;
		_parent.mc._y += (_root._ymouse-_parent.mc._y)*0.08;
	};
}
onClipEvent (enterFrame) {
	if (this.hitTest(_root._xmouse, _root._ymouse, 1)) {
		action = dragAction;
	} else {
		action = null;
	}
	action();
}
вот... так попроще наверное, и к тому же весь скрипт в одном окошке


Последний раз редактировалось Nox Noctis; 26.04.2002 в 18:36.
Старый 26.04.2002, 18:46
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 3  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Спасибо большое! Я делал нечто подобное, но писал неправильно в поле value, вот так:
_root.mc.= _x + (_root._xmouse-_root.mc._x)*0.08;
_root.mc.= _y + (_root._ymouse-_root.mc._y)*0.08;

А так невозможно...

Старый 26.04.2002, 18:49
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 4  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
то есть :
_root.mc._x= _x + (_root._xmouse-_root.mc._x)*0.08;
_root.mc._y= _y + (_root._ymouse-_root.mc._y)*0.08;

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

Регистрация: Aug 2001
Сообщений: 4,121
так прикольнее:
Код:
_root.createEmptyMovieClip("field", 1);
field.lineStyle(1, 0), field.beginFill(0xCCCCCC);
field.lineTo(400, 0), field.lineTo(400, 300);
field.lineTo(0, 300), field.lineTo(0, 0), field.endFill();
_root.createEmptyMovieClip("targ", 2);
targ.lineStyle(20, 255), targ.lineTo(.15, 0);
//
targ.onEnterFrame = function() {
	this.newX = this._x+(_root._xmouse-this._x)*.08;
	this.newY = this._y+(_root._ymouse-this._y)*.08;
	if (field.hitTest(this.newX, this.newY, 1)) {
		this._x=this.newX, this._y=this.newY;
	}
};

Старый 26.04.2002, 19:34
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 6  
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Так, оно, конечно, прикольнее , но весит на 15 байт больше чем руками рисованный вариант При равных параметрах обЪектов.

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

Регистрация: Aug 2001
Сообщений: 4,121
ну, я графику рисовал скриптом просто чтоб сюда полный скриптец выложить - который можно скопипастить и посмотреть что получается

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

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

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


 


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


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