PDA

Просмотр полной версии : проблема с Function


MegaBug
16.10.2001, 16:21
Помогите разобраться с функтион. Дело в том, что у меня есть в основном таймлайне несколько переменных, значения которых зависят он положения ручек (считай кнопок) и функция должна постоянно значения этих переменных проверять, для чего вызывается постоянно (так как в основном таймлайне, то я ее вызываю переходом на предидущий кадр ) Так вот один раз она срабатывает, а на все последующие изменения переменных не реагирует.
Пра-а-а-блема! Помогите! Зарание спасибо.
P.S. сама функция находится в первом кадре основного таймлайна и вызывается тоже из разных кадров основного таймлайна.

Steve
16.10.2001, 19:41
Это скорее из-за того, что происходит что-то вроде переопределения функции с каждым тактом. Замечал такое дело.
Можно оставить этот первый фрейм в покое и делать цикл в последующих (скажем второй и третий) Путь первый будет как инициализационный и для объявления функции. Так грамотнее.

MegaBug
17.10.2001, 13:09
Да нет, сама функция находится в первом кадре и больше фильм туда не переходит. Функция вызывается из разных мест многократно. Но не через цикл, а так:
frame 1 function My() - обЪявление функции


frame 5: My(), goto next -вызывание функции, переход на6
frame 6: goto prev -переход на 5


frame 15: My(), goto next
frame 16: goto prev

Наверное это неправильно, но как еще можно отслеживать изменения значений переменных в шкале основного таймлайна постоянно и из разных мест?

Fisher
17.10.2001, 14:02
Зачем тебе все время контролировать? У тебя изменения происходят по событиям "ручек (считай кнопок) "? Так туда и навесь свой обработчик. Еще и проц разгрузишь от дурной работы.

Baltika
17.10.2001, 15:33
я чего-то не понял :rolleyes: , как вообще может что-то работать если ты в 6 кадре делаешь возврат в пятый и т.д. ??
ессно функция будет вызываться с одними и теми-же аргументами (они все же есть наверное).

MegaBug
18.10.2001, 18:47
Ситуация не такая простая. Вообще мне нужно смоделировать
работу передатчика - прибора, где множество ручек на разных блоках. Ручки по виду одинаковые, а по работе разные: одни поворачиваются плавно, другие дискретно, но на разное количество положений, одни ручки блокируют работу других. Вот я и решил сделать раз и на всегда одну ручку, у которой параметры задаются через define clip parametrs. Сделал. Каждая ручка создает в основном таймлайне переменные с значениями. От комбинации этих переменных зависит работа передатчика. Можно конечно вызывать функцию из ручек. Но получится как: При нажатии на ручку функция проверяет, может ли она вообще поворачиваться. Затем, если можно, ручка поворачивается. Функция меняет значения переменных. И вот тут проблема:
Дело в том, что у меня на экране весь передатчик с маленькими ручками и отдельно один из блоков передатчика с теми же ручками, но крупно. При при повороте крупных ручек должны поворачиваться мелкие. Но ведь для мелких ручек событие - только при нажатии.
Не цельно как то получается. Мне нужно, чтобы все действия решались одним UI - функцией. Но плана как это организовать нет. Затем и обращаюсь к опытным флешерам.

APM
18.10.2001, 21:22
Нормально отслеживать переменные можно только из события EnterFrame
Поэтому если это не нужно для анимации старайся чтобы было поменьше
gotoAndPlay во фреймах, а все управление и переходы переноси в обработчик этого события. Если ты пытаешься всем управлять из одной функции то логично и вызывать ее из одного места.

MegaBug
18.10.2001, 23:30
>>Нормально отслеживать переменные можно только из >>события EnterFrame
>>Поэтому если это не нужно для анимации старайся чтобы >>было поменьше
>>gotoAndPlay во фреймах, а все управление и переходы >>переноси в обработчик этого события.

Как событие может быть EnterFrame, но если проверка должна происходить постоянно, то на этот кадр надо постоянно переходить, а чем переходить если не gotoAndPlay?

>>Если ты пытаешься всем управлять из одной функции то >>логично и вызывать ее из одного места.

Из одного места вызывать не получится (в приборе несколько разных блоков и, соответственно они у меня в разных кадрах)
А чем черевато вызывать функцию из разных мест?

Ребята, а можно я кому-нибудь исходник кину? Заодно посмотрите на реализацию функции "ручки"- она у меня "умная"

APM
19.10.2001, 11:49
Ну вот опять поиск легких путей, вместо того чтобы самому разобраться,
Дело в том что во флеше "Стоп - это плей, а готу это стоп" - поясняю, Если мувик находится в состоянии стоп то событие EnterFrame вызывается
с той частотой fps с которой у тебя заказана анимация - ну загляни ты
сюда:
http://www.flasher.ru/forum/showthread.php?s=&threadid=21365

gOloVasTicK '~
19.10.2001, 13:39
Слуш, положи исходник, нифика не понятно :confused:
Пакни в зип и зааттач в мессадж, там внизу фича такая есь "Вложить файл"

MegaBug
19.10.2001, 13:46
Спасибо АРМ. Пойду разбираться....
Но посудите сами, я не ищу легких путей. Я чесно прочитал книгу Смольного, чесно ковырялся с флэшом. Возникли вопросы-устроил поиск в форуме по слову "function" Теперь знаю, что нужно искать по слову "Грабли" :}. А если серьезно, огромное Вам спасибо. Сам бы я очень долго искал такую информацию. Если у вас есть на форуме еще чтото типа "Ahtung Grably" дайте ссылоку. Меня еще интересует любая информация про синтаксис флаш5, особенности (в книге все по флаш4)

MegaBug
19.10.2001, 14:10
А вот и исходник. Картинки удалил , а то весит много.

Fisher
19.10.2001, 14:31
Глянь вот это. :) Может поможет. Обработчик привязан к событиям в кнопе. И никакой лишней обработки.
зы Головастик к барьеру. Только давай не увлекаться. По выстрелу и разбор полетов, а то это дело засасывает :)

Fisher
19.10.2001, 15:26
Маленькое дополнение - чтобы уж совсем как надо. Или не так? Все кнопки сделаны из одного универсального шаблона. С именами я думаю разберешся сам :p

gOloVasTicK '~
19.10.2001, 16:08
2Fisher:
Слуш, мне лееееееееееееееееень в таком большом исходнике рыться..... просто леееень :)

gOloVasTicK '~
19.10.2001, 16:15
2Рыбак:
Посмотрел твой исходник :) прикольно в общем, но онКлипЕвент(моусМове) в холостую пашет ;)

Fisher
19.10.2001, 16:32
Ладно тайм аут :) Будет что-то достойное - пиши. Кстати у тебя ася есть?

Fisher
19.10.2001, 16:52
Ничего подобного :) А условие ok? :p И кроме того моузовер это тебе не энтерфрэйм. Так что клипов 100 поработают :D :D :D . Знаю я твою фишку :D А я виш даже без хиттеста обошелся :) хотя и очень руки чесались. А как тебе мысля делать по одному шаблону а потом все потроха идентифицировать по верхнему имени? Это почище смарт клипа будет - удобнее. Сча сижу ковыряюсь.

MegaBug
19.10.2001, 17:04
Ребята вы о чем? Спасибо gOloVasTicK, спасибо fisher, но я ничего не понял из твоего последнего сообщения. Оно fisher'u
адресовано или мне?

gOloVasTicK '~
19.10.2001, 17:05
122706033 спросить Головастика ;)

MegaBug
19.10.2001, 17:44
Посмотрел исходник все стало понятно.

>>А как тебе мысля делать по одному шаблону а потом все >>потроха идентифицировать по верхнему имени? Это >>почище смарт клипа будет - удобнее. Сча сижу ковыряюсь.

А функцию обработки значений переменных (потрохов) вызывать из кнопки(symbol3), так?

Fisher
19.10.2001, 19:46
Привет MegaBug :)
Ты уж извени - это мы тут про свое :) И раз уж Головастик коментировать не хочет объясню я :p Или давай люче последний код положу а ты будешь сам спрашивать. Извени я твой исходник только посмотрел - вникать не вникал, но принцип примерно понял и сделал по своему - мне так проще было :)