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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Oct 2007
Сообщений: 12
Question Доступ к флеш-документу из класса

Господа, у меня следующая проблема. Мне нужно из класса обратиться к методу, который написан во флеш-документе? Если бы это был метод другого класса, то мне всё было бы понятно - через интерфейсы. Но что собой представляет основной флеш-документ? И как сообщить классу, какие у него есть методы?

И можно ли обратиться к методу не основного флеш-документа, в котором данный класс будет использован, а внешнего?

Старый 21.10.2007, 08:29
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 2  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Либо передавать ссылку на основной флеш документ в класс, либо обращаться через _root.
Второй части вопроса не понял, что значит внешнего?
__________________
Free-lance | Twitter | Me

Старый 23.10.2007, 13:55
Shidan вне форума Посмотреть профиль Отправить личное сообщение для Shidan Найти все сообщения от Shidan
  № 3  
Ответить с цитированием
Shidan

Регистрация: Oct 2007
Сообщений: 12
1) OK. Но для этого надо в классе указать интерфейс основного флеш документа. (Иначе как класс будет знать, что переданный ему объект реализует данный метод?) Отсюда развитие вопроса: что нужно сделать, чтобы основной флеш документ реализовывал интерфейс? Методы интерфейса в нём есть. Но как об этом сказать классу?

2) Т. е. где-то на файловой системе лешит откомпилированный fla-файл, к объектам и методам которого я хочу получить доступ.

Старый 23.10.2007, 14:07
son_of_war вне форума Посмотреть профиль Отправить личное сообщение для son_of_war Найти все сообщения от son_of_war
  № 4  
Ответить с цитированием
son_of_war

Регистрация: Mar 2006
Сообщений: 125
Отправить сообщение для son_of_war с помощью ICQ
Не путай описание класса и работающий мувик. Нельзя к произвольному файлу swf обратиться и спросить "а не являетесь ли вы потомком такого-то класса". Проверить наличие тех или иных функций на определенном уровне в мувике можно по имени, зная где он находится или передать ссылку в экземпляр этого класса, про который ты говоришь. Если объект с опреденным именем в данном месте отсутствует ты получишь значение undefined. Имей в виду - функции тоже являются экземплярами класса function и их наличие можно проверить точно также как и других объектов.
Если твой класс грузится в мувик, который сам в свою очередь подгружается где-то в основной мувик, то основной мувик будет доступен через ссылку _level0

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

Регистрация: Oct 2007
Сообщений: 12
Про функциональный тип понял.

А можно простой пример кода про подгрузку и обращение к функциям fla- или swf-файла? Хочется разгрузить основной документ.

Старый 24.10.2007, 12:57
son_of_war вне форума Посмотреть профиль Отправить личное сообщение для son_of_war Найти все сообщения от son_of_war
  № 6  
Ответить с цитированием
son_of_war

Регистрация: Mar 2006
Сообщений: 125
Отправить сообщение для son_of_war с помощью ICQ
ну смотри допустим создаешь ты главный мувик 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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