![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2007
Сообщений: 12
|
Господа, у меня следующая проблема. Мне нужно из класса обратиться к методу, который написан во флеш-документе? Если бы это был метод другого класса, то мне всё было бы понятно - через интерфейсы. Но что собой представляет основной флеш-документ? И как сообщить классу, какие у него есть методы?
И можно ли обратиться к методу не основного флеш-документа, в котором данный класс будет использован, а внешнего? |
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
Либо передавать ссылку на основной флеш документ в класс, либо обращаться через _root.
Второй части вопроса не понял, что значит внешнего? |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 12
|
1) OK. Но для этого надо в классе указать интерфейс основного флеш документа. (Иначе как класс будет знать, что переданный ему объект реализует данный метод?) Отсюда развитие вопроса: что нужно сделать, чтобы основной флеш документ реализовывал интерфейс? Методы интерфейса в нём есть. Но как об этом сказать классу?
2) Т. е. где-то на файловой системе лешит откомпилированный fla-файл, к объектам и методам которого я хочу получить доступ. |
|
|||||
|
Не путай описание класса и работающий мувик. Нельзя к произвольному файлу swf обратиться и спросить "а не являетесь ли вы потомком такого-то класса". Проверить наличие тех или иных функций на определенном уровне в мувике можно по имени, зная где он находится или передать ссылку в экземпляр этого класса, про который ты говоришь. Если объект с опреденным именем в данном месте отсутствует ты получишь значение undefined. Имей в виду - функции тоже являются экземплярами класса function и их наличие можно проверить точно также как и других объектов.
Если твой класс грузится в мувик, который сам в свою очередь подгружается где-то в основной мувик, то основной мувик будет доступен через ссылку _level0 |
|
|||||
|
Регистрация: Oct 2007
Сообщений: 12
|
Про функциональный тип понял.
А можно простой пример кода про подгрузку и обращение к функциям fla- или swf-файла? Хочется разгрузить основной документ. |
|
|||||
|
ну смотри допустим создаешь ты главный мувик m1.fla, в нем создаешь клип с именем экземпляра скажем my_mc и в этом клипе прописываешь функцию
function blabla() { trace("blablabla"); }; и в первом кадре главной ленты пишешь loadMovieNum("m2.swf",1); потом создаешь файл класса скажем test.as class test{ function test() { if (_level0.my_mc.blabla == undefined) { trace("функция blabla клипа my_mc не найдена"); }else { _level0.my_mc.blabla(); } } }; потом создаешь второй мувик m2.fla, в который будешь грузить класс (я так делаю чтобы ты понял как пользоваться _level) в его первом кадре пишешь tst = new test(); trace(_root); Если ты просто скомпилишь второй мувик - ты увидишь сообщение функция blabla клипа my_mc не найдена _level0 Это говорит о том что класс не нашел клипа my_mc и текущий мувик m2 является корневым - _level0 Если ты скомпилишь первый мувик m1 - ты увидишь сообщение blablabla _level1 Это говорит о том что класс, загруженный в m2 нашел в мувике верхнего уровня клип my_mc и в нем функцию blabla и запустил ее И второе - то, что мувик m2 теперь не корневой а лежит на уровне _level1 |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|