PDA

Просмотр полной версии : textField внутри "матрешки"


Romannn
08.03.2011, 23:22
Здравствуйте, уважаемые. Ситуация следующая:
у меня есть следующая конструкция:
к _root цепляю 1_mc
к 1_mc цепляю 2_mc
при этом в 2_mc уже находится, скажем, text_mc, и последний делает какие-то действия, заданные анимацией в раскадровке (предволожим, движется справа-налево и меняет уровень _alpha). А проблема, собственно, в том, что ТЕКСТ в text_mc мне надо помещать динамически.
Вопрос: возможно ли это сделать в принципе?

обратиться к text_mc в коде не могу, хотя в библиотеке он зарегистрирован и расшарен для AS. Флеш отказывается вообще видеть какое-либо содержимое 2_mc, т.е. не помогают ни прямое обращение типа _root.1_mc.2_mc.text_mc, ни обращения типа _root.1_mc.2_mc.getInstanceAtDepth().

И сразу второй вопрос. Если реально запихать текст в text_mc, то будет ли сохранена анимация с эффектами?

_SAM_
09.03.2011, 01:25
У вас text_mc это мувиклип или текстовое поле?

Romannn
09.03.2011, 01:35
text_mc - это мувик, хранящий в себе текстовое поле.

mooncar
09.03.2011, 09:54
к _root цепляю 1_mc
к 1_mc цепляю 2_mc

Покажите код. "Цепляю" - это вы об аттачменте? Изъясняйтесь правильно, вас не понятно.

Что у вас показывает
trace (_root.1_mc.2_mc.text_mc) ?
Если undefined, то такого мувика по данному пути нет. Почему нет, как раз и нужно разбираться. Трейсите дальше с укорачиванием пути, чтобы понять, где у вас проблема:
trace (_root.1_mc.2_mc)
trace (_root.1_mc)

Romannn
09.03.2011, 14:14
да, правильно поняли, именно attach'у. Если подробнее, то у меня в библиотеке хранятся пустой 1_mc и 2_mc, в котором уже вложен text_mc, и на text_mc уже наложена анимация.

при trace (_root.1_mc) выдает _level0.object (вроде, так. В общем, флеш его видит и возвращает значение объекта)
trace (_root.1_mc.2_mc) - аналогично.

а вот при попытке обнаружить text_mc
trace (_root.1_mc.2_mc.text_mc) возвращает undefined

так же ничего не дает и "сканирование" через trace (_root.1_mc.2_mc.getInstanceAtDepth(n)), n пробовал от 0 до 3, дальше уже смысла не видел

наверное, сразу надо было код выложить
my_xml.onLoad = function(loaded):Void{
if(loaded){
//при удачной загрузке .xml цепляю на форму все мувики
//первый
attachMovie("cell","cell1",getNextHighestDepth());
cell1._x=5;//выравниваю его положение на сцене
cell1._y=5;
//делаю основу для картинки
cell1.createEmptyMovieClip("bg_img",0);
cell1.bg_img.createEmptyMovieClip("bg",0);
cell1.attachMovie("move1","mask1",1);//move1 - это анимация, служащая маской
//гружу картинку фона
loadMovie(my_xml.firstChild.firstChild.firstChild.firstChild.nodeValue,cell1.bg_img.bg);
//задаю внутреннюю маску
cell1.bg_img.setMask(cell1.mask1);
//цепляю и задаю основную маску
attachMovie("mask1","mask1",getNextHighestDepth());//mask1 - это маска на весь ролик cell1
mask1._x=cell1._x;
mask1._y=cell1._y;
cell1.setMask(mask1);
//цепляю мувики с текстом
cell1.attachMovie("text1","text1",2);//при этом, ролик text1 хранится в библиотеке УЖЕ со вложенным в него роликом textbody, который, собственно, заанимирован

//назначаю реакцию на мышь
cell1.mask1.ison = false;
cell1.mask1.onRollOver = function(){
this.ison=true;
this.play();
}
cell1.mask1.onRollOut = function(){
this.ison=false;
this.play();
}


}
};