![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
Наверно один из глупых вопросов, но:
Как из одного экземпляра класса, созданного в одном мувике обратиться к экземпляру другого класса, созданного в другом мувике? У меня не получается, хоть убейте! Как обращаться? |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
не надо создавать экземпляры классов в мувиках...это тоже самое, что писать код в мувиках...нет смысла тогда вообще классы использовать (имхо).
Как я обычно делаю (в кратце): 1. создаю главный класс. 2. в этом классе создаю экземпляры других классов, которые абосютно независимы. Общаются они с главным классом с помощью EventDispatcher. 3. При создании экземпляра класса, обычно передаю параметр контейнера (если надо). Плюсы в том, что классы независимы друг от друга...не используют никаких сеттеров и можно с лёгкостью использовать в разных проектах абсолютно ничего не меняя. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
я из тех, кто по делает по старинке- "всё в мувиках", НО ОЧЕНЬ ХОЧУ ПЕРЕУЧИТЬСЯ ПОСОВЕТУЙТЕ КНИГИ.
а теперь о классах, 1. как в классе реализовать onEnterFrame 2.EventDispatcher - синтаксис подскажите. 3.мувики создавать из экземпляра класса, используя библиотеку, или заранее в _root поместить? 4.почему код в классе не работает? class mov {
var mc:<здесь наверно надо что-то написать>;
function = setPos(p_mc){ //передаём функции имя нужного клипа, находящегося в _root.
mc="_root."+p_mc; //mc - как-бы ссылка на мувик в руте(это конечно не правильно, но в мувике(actions) работает)
mc.x=100; //пытаемся переместить её
}
}
Как cделать ссылку на мувик? Желательно пример кода. Последний раз редактировалось Freeeeeeeman; 03.12.2007 в 00:27. |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
в данном случае лучше юзать статический метод:
во фла: P.S. названия классов принято писать с большой буквы а методов с маленькой |
|
|||||
|
Modus ponens
|
import mx.transitions.BroadcasterMX;
import mx.transitions.OnEnterFrameBeacon;
//
class MyPseudoTween {
static var __initBeacon = OnEnterFrameBeacon.init();
static var __initBroadcaster = BroadcasterMX.initialize (MyPseudoTween.prototype, true);
public var addListener:Function;
public var removeListener:Function;
public var broadcastMessage:Function;
function MyPseudoTween() {
this.addListener (this);
_global.MovieClip.addListener(this);
}
function onEnterFrame():Void {
trace("I was subscribed to the clip event onEnterFrame!");
};
}
А вообще - это шутка по большому счету (хоть и рабочая) %) Смысл в том, что чтобы реализовать в классе onEnterFrame, нужно чтобы существовал хотябы 1 клип (вообще, хоть где-нибудь), и уже к нему и привязываться. Собственно, это уже реализовано в классе Tween, в пакете mx, который приходит (но не является обязательным) вместе с другими классами от Макромедии. Но это какое-то не самое удачное (хотя... даж не знаю, я их все равно люблю =) творение Макромедии (особенно в мануале CS3 совсем ничего про этот пакет нету...) Есть еще довольно популярная библиотека mcTween (вроде бы так называется - поискать в Гугле), но я не вдавался в подробности, так что не буду рекомендовать ее вместо.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 03.12.2007 в 03:39. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
Спасибо за пердыдущие ответы.
Вот ещё чтот с классами творится, вернее с ними всё в порядке, это я не могу что-то сделать. класс A: класс B: вызывающий код: Почемуто не работает, помоему не вызывается функция C()? |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
Да (бьет себя по голве) недоглядел. Но уже всё исправил.
работает всё норм спасибо. Последний раз редактировалось iNils; 06.12.2007 в 21:27. |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
методы пишите с маленьких букв, а классы с больших! так же не забывайте про типизацию
|
|
|||||
|
Регистрация: Nov 2007
Сообщений: 51
|
ok, попробую приучить себя к этому.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|