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

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

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

Регистрация: Jun 2004
Сообщений: 14
По умолчанию Не видит функции

Всем привет.
Скажем, есть мувик, со свей функцией.
к которой я обращаюсь так
mc.PushMe(mc);
И это работает. Затем я создаю его дубликат:
newObj = mc.duplicateMovieClip("newbox0",100);
И это работает. Я присваиаю ему новую координату, он там создаётся и появляется.
Но вот дальше
newObj.PushMe(newObj); не работает.
trace(newObj.PushMe(newObj)) выписывает "undefined",
тогда как trace(newObj) выписывает "_level0.newbox0", то-есть, объект существует.

В чём проблема, дорогие други? Не дайте помереть в неведении! Спасибо!

Старый 01.07.2004, 12:08
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 2  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Если ты пытаешься вызвать ф-цию сразу после дублирования - и не должно работать. Функция еще не определилась, т.е. сначала отрабатывает скрипт после дупликэйта, и только ПОТОМ начинается выполнение скрипта (и определение ф-ций) в первом кадре нового клипа. Варианты решения:

1 Ждать, пока не определится ф-ция.
2 Прописать ее в AS2 КЛАССЕ для этого клипа.
__________________
...убивать людей не удовольствия ради, но для еды.

Старый 01.07.2004, 12:43
Тафарель вне форума Посмотреть профиль Отправить личное сообщение для Тафарель Найти все сообщения от Тафарель
  № 3  
Тафарель

Регистрация: Jun 2004
Сообщений: 14
А можно поподробнее о втором пункте?

Старый 01.07.2004, 13:22
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 4  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Пишешь класс, расширяющий MovieClip в *.as файле, в линкейдже мувика его указываешь. В этом случае инициализация классовых ф-ций происходит при создании/дублировании клипа, т.е. ДО выполнения следующей после создающей/дублирующей команды. Вроде того, что у только что приаттаченного мувика есть gotoAndPlay, stop и другие методы класса.
__________________
...убивать людей не удовольствия ради, но для еды.

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

Регистрация: Jun 2004
Сообщений: 14
Спасибо!

Старый 01.07.2004, 15:11
Тафарель вне форума Посмотреть профиль Отправить личное сообщение для Тафарель Найти все сообщения от Тафарель
  № 6  
Тафарель

Регистрация: Jun 2004
Сообщений: 14
А где можно увидеть пример?

Старый 01.07.2004, 16:13
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 7  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Пример чего? Как писать классы? В хелпе по MX2004.
__________________
...убивать людей не удовольствия ради, но для еды.

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

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

Код:
// написать в клипе
#initclip
// линк к самому клипу
var origin = _root.blablabla.something;
origin.f = function () { .. };
origin.p = "property";
#endinitclip
тогда тем что написано в первом кадре можно будет пользоваться сразу как только клип появился на сцене...

но это не подходит для случая когда нужно дублировать клип.
просто иногда удобно запихнуть все функции, которые нигде больше не нужны в один клип, не создавая классов и не заморачиваясь с тем когда там что отработает и станет доступно.


Последний раз редактировалось Nox Noctis; 02.07.2004 в 16:34.
Старый 02.07.2004, 22:04
DeliMIter вне форума Посмотреть профиль Отправить личное сообщение для DeliMIter Найти все сообщения от DeliMIter
  № 9  
DeliMIter
некрофил
 
Аватар для DeliMIter

Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
Инитклип сакс.
__________________
...убивать людей не удовольствия ради, но для еды.

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

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Оригинал написал(а) DeliMIter
Инитклип сакс
где сакс - это индекс, отвечающий за порядок выполнения блока, в случае если в одном кадре должны проинициализироваться несколько таких блоков(в разных клипах)

да, ты прав, важное дополнение :)

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

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

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


 


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


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