Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Как остановить функцию во Flash?
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
Alone
Отправлено: 16 Февраля, 2008 - 03:05:35
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




Есть например любая функция наподобии такой:
CODE:
function starField(x, y, n) {
for (var i = 0; i<n; i++) {
var star = this.createEmptyMovieClip("star"+i, i);
var dot = star.createEmptyMovieClip("dot", 0);
star._rotation = Math.random()*180;
star._x = x;
star._y = y;
dot.lineStyle(0, 0xFFFFFF, 200);
dot.moveTo(0, 1);
dot.lineTo(0, 0);
dot.onEnterFrame = mover;
dot.speed = Math.random()*100;
}
}
starField(400, 300, 150);


Т.е. функция вставляется в кадр и работает до конца ролика. Фиг остановишь Улыбка
Вопрос в том как остановить?
Причём остановить так чтобы остановить только её а не весь мувик.

Функция stop() естественно не подходит.
Подскажите плз...
Т.е. на конкретном кадре её нужно тормознуть не тормозя при этом весь фильм.
 
 Top
ETC Администратор
Отправлено: 16 Февраля, 2008 - 07:30:30
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




А где функция mover?
 
 Top
Alone
Отправлено: 16 Февраля, 2008 - 08:36:44
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




ETC пишет:
А где функция mover?

это я пример привёл.

Если это прниципиально то вот:

CODE:
function mover() {
this._y += this.speed;
this._yscale += 10;
this.speed++;
if (this._y>500) {
this._y = 0;
this.speed = Math.random()*10;
this._yscale = 100;
}
}
 
 Top
ETC Администратор
Отправлено: 16 Февраля, 2008 - 09:16:53
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Надо пробежаться по массиву всех dot и сделать delete dot.onEnterFrame у них.
 
 Top
Alone
Отправлено: 16 Февраля, 2008 - 10:06:35
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




Чёт сложно как-то.
А просто запретить как-нить функцию во флеше разве нету типа stop()
Вообще не понятно почему функция продолжает работать когда фрейма с нею уже нет (закончился) По идее если фрейм заканчивается то это значит конец работы...

Ну если этих самых dot в функции нет то тогда как?
 
 Top
ETC Администратор
Отправлено: 16 Февраля, 2008 - 10:11:38
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




stop() останавливает воспроизведение клипа, а не кода в нем.
Я бы посоветовал для начала разобраться к приведенном коде, а уж потом задавать вопросы.
 
 Top
Alone
Отправлено: 16 Февраля, 2008 - 13:02:11
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




ETC пишет:
stop() останавливает воспроизведение клипа, а не кода в нем.

Это понятно.
Но неужели нет никакой фишки останавливающей функцию?
Такие вещи вроде часто должны юзаться. Это тяжко разбираться с кодом каждой функции чтобы её останавливать в нужном месте.

А если функции на сотни строк.....
Что-то тут не так.
Должна быть какая-то фишка без головоломки с кодом.....
 
 Top
ETC Администратор
Отправлено: 16 Февраля, 2008 - 13:17:44
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




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

Нет никаких фишек, ты сто раз в сотне мест включил функцию, значит должен выключить её точно так же в той же сотне мест.
 
 Top
Alone
Отправлено: 16 Февраля, 2008 - 13:55:55
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




ETC

Ладно.
Вот этот код которы я привёл (все две части) у меня находятся только в одном фрейме.
Больше нет нигде.
Что я должен сделать?

Просто написать в конце этого кода в этом фрейме это:
delete dot.onEnterFrame

Или в том фрейме где я хочу чтобы эта функция больше не работала?
 
 Top
ETC Администратор
Отправлено: 16 Февраля, 2008 - 14:04:09
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Я уже написал ответ в четвертом посте.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« Flash »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0352]     [ Gzipped ]