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

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

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

Регистрация: Sep 2008
Сообщений: 27
Post Доступ к конкретному MovieClip из кода.

У меня проблема какая то странная вообще.

На сцене лежит 2 мувика, один player а другой cursor.
Для каждого прописан класс. И вот в коде класса для cursor я пишу:
Код:
trace(player.x);
а он мне выдаёт ошибку при тестинге:
Цитата:
1120: Access of undefined property player.
Я чёт не пойму как это у "player" не установлен параметр "x" ? Или как? Как вообще обратиться к мувику нахдящемуся на сцене из кода?

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
это значит что у cursor нет свойства player
Вы ведь из класса курсо обращаетесь.. а это равносильно this.player.x, где
this это cursor

теоретически к player можно обратиться так:
parent.player

Старый 25.09.2008, 18:06
CrazyPHP вне форума Посмотреть профиль Отправить личное сообщение для CrazyPHP Найти все сообщения от CrazyPHP
  № 3  
Ответить с цитированием
CrazyPHP

Регистрация: Sep 2008
Сообщений: 27
Попробавал:
Код:
trace(parent.player.name);
выдало опять ошибку:
Цитата:
1119: Access of possibly undefined property player through a reference with static type flash.displayisplayObjectContainer.
и та же самая ошибка если делать через root.player.name, stage.player.name;

ничё не пойму, в примерах везде из классов обращаятся к мувикам на сцене прямо вот так: имя_клипа.свойство ; И у них всё работает .... вообще не пойму.

Старый 25.09.2008, 18:57
CrazyPHP вне форума Посмотреть профиль Отправить личное сообщение для CrazyPHP Найти все сообщения от CrazyPHP
  № 4  
Ответить с цитированием
CrazyPHP

Регистрация: Sep 2008
Сообщений: 27
Во ! нашёл способ ... через parent только немного не так... а вот так:
Код:
var player = parent.getChildByName("player");
и теперь player можно творить чё хочешь

Старый 26.09.2008, 18:03
flashmade вне форума Посмотреть профиль Отправить личное сообщение для flashmade Найти все сообщения от flashmade
  № 5  
Ответить с цитированием
flashmade

Регистрация: Sep 2008
Сообщений: 3
Можно еще и так:
parent["player"].x

Только почему в данном случае не работает обычный доступ через точку.
Может кто знает?

Старый 26.09.2008, 18:11
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 6  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от flashmade Посмотреть сообщение
Можно еще и так:
parent["player"].x
Подобные конструкции крайне не желательны.
Цитата:
Сообщение от flashmade Посмотреть сообщение
Только почему в данном случае не работает обычный доступ через точку.
Может кто знает?
Потому что тип parent - DisplayObjectContainer, это не динамический класс, а свойство player - динамическое.
Можно использовать кастинг в MovieClip, который динамический, и все будет работать:
Код:
trace((parent as MovieClip).player.name);

Старый 26.09.2008, 18:24
flashmade вне форума Посмотреть профиль Отправить личное сообщение для flashmade Найти все сообщения от flashmade
  № 7  
Ответить с цитированием
flashmade

Регистрация: Sep 2008
Сообщений: 3
Спасибо за объяснение с точкой.
а почему доступ через [] нежелателен?

Старый 26.09.2008, 18:34
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от flashmade Посмотреть сообщение
а почему доступ через [] нежелателен?
Нетипизированный доступ к некоторому свойству у объекта, у которого оно не описано. Каст в MovieClip тоже не сильно лучше.

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

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от __etc Посмотреть сообщение
Нетипизированный доступ к некоторому свойству у объекта, у которого оно не описано.
+1
Цитата:
Сообщение от __etc Посмотреть сообщение
Каст в MovieClip тоже не сильно лучше.
Однозначно.

Старый 26.09.2008, 18:34
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 10  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от flashmade Посмотреть сообщение
а почему доступ через [] нежелателен?
Я имел в виду, что обращение через parent не желательно.
Есть много причин.
При таком обращении переменная должна быть публичной, что уже не очень хорошо.
Сложный и запутанный код, не соответствующий грамотному ООП.
И вообще, если есть необходимость такого обращения - рассылайте события.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
movieclip

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

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


 


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


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