![]() |
Доступ к конкретному MovieClip из кода.
У меня проблема какая то странная вообще.
На сцене лежит 2 мувика, один player а другой cursor. Для каждого прописан класс. И вот в коде класса для cursor я пишу: Код:
trace(player.x);Цитата:
|
это значит что у cursor нет свойства player
Вы ведь из класса курсо обращаетесь.. а это равносильно this.player.x, где this это cursor теоретически к player можно обратиться так: parent.player |
Попробавал:
Код:
trace(parent.player.name);Цитата:
ничё не пойму, в примерах везде из классов обращаятся к мувикам на сцене прямо вот так: имя_клипа.свойство ; И у них всё работает .... вообще не пойму. |
Во ! нашёл способ ... через parent только немного не так... а вот так:
Код:
var player = parent.getChildByName("player"); |
Можно еще и так:
parent["player"].x Только почему в данном случае не работает обычный доступ через точку. Может кто знает? |
Цитата:
Цитата:
Можно использовать кастинг в MovieClip, который динамический, и все будет работать: Код:
trace((parent as MovieClip).player.name); |
Спасибо за объяснение с точкой.
а почему доступ через [] нежелателен? |
Цитата:
Есть много причин. При таком обращении переменная должна быть публичной, что уже не очень хорошо. Сложный и запутанный код, не соответствующий грамотному ООП. И вообще, если есть необходимость такого обращения - рассылайте события. |
Цитата:
|
Цитата:
Цитата:
|
Спасибо за объяснения.
Какой же из способов обращения из класса к другим мувиклипам на main timeline будет наилучшим? |
player подписать на событие
в cursor сгенерировать событие или как вариант, если cursor создается динамически, то в конструктор передавать player. |
Цитата:
Правильно так: - в cursor сгенерировать событие - Main подписать на событие - в обработчике обратиться к player либо при подписке указать в качестве обработчика метод из player либо в обработчике перенаправить событие к player (зависит от задачи) Цитата:
|
Цитата:
Цитата:
с точки зрения ооп как раз нормальный вариант. хотя все зависит от задачи. может будет много экземпляров player. тогда лучше через события. зы: как мне кажется курсор лучше вообще сделать синглтоном |
| Часовой пояс GMT +4, время: 02:38. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.