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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.01.2009, 03:09
vcj вне форума Посмотреть профиль Отправить личное сообщение для vcj Посетить домашнюю страницу vcj Найти все сообщения от vcj
  № 1  
Ответить с цитированием
vcj
 
Аватар для vcj

Регистрация: Aug 2004
Адрес: дома
Сообщений: 194
Отправить сообщение для vcj с помощью ICQ
По умолчанию "Модульность"

Всем привет!
Ребята подскажите пожалуйста, как организовать такую весчь:
Есть калсс А:
Код AS3:
package Classes
{
	import flash.display.MovieClip;
	public class  A extends MovieClip
	{
		public function KakoytoMetod()
		{
			...
		}
	}
 
}
Есть класс B:
Код AS3:
package Classes
{
	import flash.display.MovieClip;
	import Classes.A;
 
	public class  B extends MovieClip
	{
		public function KakoytoMetod2()
		{
 
		}
	}
 
}
Класс А является основным (документ классом) для некоторого мувика(отдельного fla файла). Класс В является неким классом в другом fla документе в котором происходит загрузка с сети swf файла A типа (т.е. результирующего файла первого fla файла). Дилема в чом: Как у загруженного swf вызвать метод KakoytoMetod() и заставить его обсчатся с родителем (т.е. классом В)?

ПС: Не судите за грамотность(
ПС2: Если уже гдето повторялось - Ссори... - ткните носом.

Заранее благодарю за ответ!

Всех с Новым Годом и Рождеством христовым!

Старый 08.01.2009, 03:15
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 2  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Нужно написать ClassLoader, пример реализации например тут:
http://www.actionscript.org/forums/s....php3?t=135934
__________________
4am is time to rock

Старый 08.01.2009, 15:48
vcj вне форума Посмотреть профиль Отправить личное сообщение для vcj Посетить домашнюю страницу vcj Найти все сообщения от vcj
  № 3  
Ответить с цитированием
vcj
 
Аватар для vcj

Регистрация: Aug 2004
Адрес: дома
Сообщений: 194
Отправить сообщение для vcj с помощью ICQ
очень хороший вариант, но он грузит только графику, т.е. управлять загруженным свф не удаётся (((

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

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
после загрузки класса A нужно привести этот указатель к типу класса А:
Код AS3:
(loadedContent as A).KakoytoMetod2()
либо использовать для этих целей интерфейсы

Старый 08.01.2009, 16:20
vcj вне форума Посмотреть профиль Отправить личное сообщение для vcj Посетить домашнюю страницу vcj Найти все сообщения от vcj
  № 5  
Ответить с цитированием
vcj
 
Аватар для vcj

Регистрация: Aug 2004
Адрес: дома
Сообщений: 194
Отправить сообщение для vcj с помощью ICQ
с интерфейсами у меня плохо...

Старый 08.01.2009, 16:42
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 6  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Интерфейс, это как чистый виртуальный класс в C++, т.е. в нем описаны все функции, к которым можно получить доступ для класса, например:
Код AS3:
package common.interfaces 
{
	public interface IPanel
	{
		function set(bet:Number):int
 
		function update(balance:String):void
	}
}
Соответственно класс, который будет наследоваться от интерфейса гарантированно должен реализовывать методы, описанные в интерфейсе

Код AS3:
package common.interfaces 
{
	public class Panel extends MovieClip implements IPanel
 
	{
		function set(bet:Number):int
                      {
                             return 1;
                      }
 
		function update(balance:String):void
                      {
 
                      }
	}
}

Старый 08.01.2009, 16:54
vcj вне форума Посмотреть профиль Отправить личное сообщение для vcj Посетить домашнюю страницу vcj Найти все сообщения от vcj
  № 7  
Ответить с цитированием
vcj
 
Аватар для vcj

Регистрация: Aug 2004
Адрес: дома
Сообщений: 194
Отправить сообщение для vcj с помощью ICQ
А как интерфейс применять в основном коде? т.е. при создании екземпляров класса?

Старый 08.01.2009, 17:07
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 8  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Я так понимаю, Вы класс не создаете, Вы загрузаете его из внешней swf.
В основном коде будет что-то типа этого:
Код AS3:
var panel:IPanel;
 
panel = (loader.content as IPayout);
 
panel.set(3.14);

Старый 08.01.2009, 17:12
vcj вне форума Посмотреть профиль Отправить личное сообщение для vcj Посетить домашнюю страницу vcj Найти все сообщения от vcj
  № 9  
Ответить с цитированием
vcj
 
Аватар для vcj

Регистрация: Aug 2004
Адрес: дома
Сообщений: 194
Отправить сообщение для vcj с помощью ICQ
Цитата:
Я так понимаю, Вы класс не создаете, Вы загрузаете его из внешней swf.
Именно так! Мне нужно организовать как бы "Модульность".

Старый 08.01.2009, 17:32
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 10  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
>>Я так понимаю, Вы класс не создаете, Вы загрузаете его из внешней swf.

>>Именно так! Мне нужно организовать как бы "Модульность".

Можно загрузить классы из внешней swf и исользовать их как угодно

Пример для MovieClip, но не важно, важно класс
http://www.dnadillo.dn.ua/fla/load-MovieClip-class.html

Можно и для звука так-же
http://www.dnadillo.dn.ua/fla/sound_...e_receiver.swf
http://www.dnadillo.dn.ua/fla/sound_outside_swf.zip
http://www.dnadillo.dn.ua/fla/sound_...ouse_sound.swf

Центральная конструкция, забирающая классы у подгружаемой флешки
такая
Код:
var Класс:Class;
Класс= loader.contentLoaderInfo.applicationDomain.getDefinition("КлассИзПодгружаемойФлешки") as Class;


Последний раз редактировалось Alex Lexcuk; 08.01.2009 в 17:42.
Создать новую тему Ответ Часовой пояс GMT +4, время: 18:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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