Показать сообщение отдельно
Старый 10.08.2012, 17:53
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 1  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
По умолчанию Подключить объекты на один класс или снова проблема обращения

Можно ли кучу объектов расположенных на сцене подцепить на один класс?
Смысл таков:
-в Flash-е есть сцена с картой (у которой свой класс, подключенные через св-ва объекта)
-карта разделена на полсотни участков, у каждого своё имя (имена есть в массиве), но без подключенных классов
-внутри каждого из участков есть объекты и я к ним не могу достучаться, у них тоже нет своих классов
Во всяком случае, не хочет теперь:
Код AS3:
public class myMap extends MovieClip {
...
function addLesteners(myArray:Array):void{
 var someStr:String;
 var someStrB:String;
 for (var i:Number=0; i<myArray.length; i++)
 {
  someStr=myArray[i][3];//строчка типа: Uch001
  someStrB="w"+someStr.slice(3,20);//Переводится в: w001 - и каждый подобъект содержит клип с таким роликом w001, w002, w003
  this.getChildByName(someStr).visible=false;//Если оставить так, то работает
  this.getChildByName(someStr).getChildByName(someStrB).visible=false;//А так, не работает
  this.getChildByName(someStr).addEventListener(MouseEvent.ROLL_OVER, tochOnROLL_OVER_MO);//Работает
 }
}
 
}
Обязательно ли этим подобъектам назначать классы? И можно ли им назначить один и тот же класс (не програмно, а через Flash)? Даже, наверно, не на один класс, а одно, как бы это сказать... поведение, что-ли.

Даже это не работает:
Код AS3:
trace(this.getChildByName(someStr).numChildren);//1119: Обращение возможного неопределенного свойства numChildren через ссылку со статическим типом flash.display:DisplayObject .
 
trace(this.getChildByName(someStr));// <- [object MovieClip]
Почему одни дочерние клипы без классов видны, а другие нет? И почему numChildren не выдаёт просто 0?

Добавлено через 2 часа 3 минуты
Вообще не догоняю ситуацию.
В основном коде пишу:
Код AS3:
var MyMap:myNewMap=new myNewMap();
MyMap.x=1300;
MyMap.y=550;
stage.addChild(MyMap);
MyMap.initMyMap(ListArray);
а myNewMap.sa:
Код AS3:
trace(stage.MyMap);// <- 1119: Обращение возможного неопределенного свойства MyMap через ссылку со статическим типом flash.display:Stage .

ТАК! Заменил все имена типа w001, w002, w003 на одно: hilight. Но это не принципиально. Написал:
Код AS3:
MovieClip(this.getChildByName(someStr)).hilight.visible=false;
и всё получиось, но при это я искренне не понимаю, что произошло. Если не сложно, объясните, чего не случилось-то?


Последний раз редактировалось zerAlex2; 10.08.2012 в 20:06.