|
|
|
|||||
Регистрация: Mar 2004
Адрес: Москва
Сообщений: 5
|
Адрессация вложенных объектов
Парни и девушки помогите разобраться!!
В ообщем есть пустая страница. На ней я программно создаю пустой мувик. В него засовываю ранее срзданную кнопку(из библиотеки используя attachMovie()) + еще картинку(для заднего фона кнопки) подгружаю(в пустой мувик созданный в главном мувике используя loadMovie()). Факт в том что это все работает, но стоит мне обратиться к свойствам(типа _alpha или _x) мувиков, которые вложены в главный мувик, то ничего не получается. Вот я и спрашиваю вас, умные люди: Как мне быть и что посоветуете?. Просмотрел весь форум, но ничего не нашел. Пробовал разное, может не догоняю? Буду очень благодарен за help.
__________________
Eagles will soar. But Funky Beast doesn't have to worry being sucked into the jet engine. |
|
|||||
Регистрация: Aug 2003
Адрес: Украина, Львов
Сообщений: 129
|
напиши код!!!! как обращаешься...
к кому обращаешься... поробуем..... может пути... скорей всего |
|
|||||
Регистрация: Mar 2004
Адрес: Москва
Сообщений: 5
|
Re: Адрессация вложенных объектов
Вот сам код. Он реализован как функция создания кнопки. Подобное видел здесь на flasher'e.
function createButton(x0,y0,bwidth,bheight,bname,k,captionb,captiong,picture){ _root.createEmptyMovieClip(bname,k); //создаю пустой мувик с именем bname. Он у нас будет главный. В него будет вкладываться все остальное. eval(bname).attachMovie("button",captionb,2); // в библиотеке есть кнопка с именем button. Я её засовываю в главный мувик под именем котрое в captionb находится, т.е. "aboutb" eval(bname).attachMovie("eyeb",captiong,3); //Тоже самое, что делал с кнопкой button делаю с мувиком eyeb (пихаю его в главный мувик, но на уровень выше). eval(bname).createEmptyMovieClip(picture,1); //Создаю пустой клип в главном клипе. Т.е. теперь в главном клипе у нас находится 3 объекта на разных уровнях. loadMovie("D:/pics/"+picture+".jpg", "_root."+bname+"."+picture); // Подгружаю картинку в только что созданный клип, который находится в главном клипе. Все это работает. Проблем здесь нет. Свойствами главно клипа тоже могу управлять, а добраться до вложенных объектов и их свойств не могу. Пробовал разные методы и with(){} и просто через _root параллельно следя что выдает trace(). А trace() выдавал undifined. Понятно, что дело в пути. Вот и спрашиваю может кто-то поможет. Так я, предполагая, пытался добраться до нужных мест нужного мувика. eval(bname).captionb._x = 20; eval(banme).captionb._y = 40; } createButton(0,0,75,20,"button1",87,"aboutb","aboutg","aboutp"); Если кто знает или хотел бы ответить можно писать и на мыло.
__________________
Eagles will soar. But Funky Beast doesn't have to worry being sucked into the jet engine. |
|
|||||
Регистрация: Aug 2003
Адрес: Украина, Львов
Сообщений: 129
|
Так тьі пытался добраться до нужных мест нужного мувика.
eval(bname).captionb._x = 20; eval(banme).captionb._y = 40; а так я пьітаюся... eval(bname)._x = 20; eval(banme)._y = 40; у тебя же нету об"єкта captionb.... а вот в нем содержится имя Linkage'нутого клипа... которьій для манипулирования клипом заданном в bname - не нужно... манипулируем созданньім клипом _root.createEmptyMovieClip(bname,k); соответственно: eval(bname)._x = 20; eval(banme)._y = 40; |
|
|||||
Регистрация: Aug 2003
Адрес: Украина, Львов
Сообщений: 129
|
так да.. но тьі тогда двигаешь только кнопку...
А понятно.. тебе енто и нужно бьіло.... сорри |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
тавагисчи :)
евал никому уже давнооо не нужен. к любому методу/свойству объекта можно обратиться двумя способами: 1. имя_объекта.имя_свойства 2. имя_объекта["имя_свойства"] в первом случае имя_свойства - это любой допустимый идентификатор во втором случае имя_свойства - это строка. (или любое выражение в результате выполнения которого получается строка) на данном примере: есть объект _root, внутри него создаем объект с именем bname. (а bname - это строка) значит после создания можно будет обратиться к нему так: _root[bname] но тут даже это не нужно - функция createEmptyMovieClip возвращает ссылку на созданный ею клип. я обычно, чтобы не писать лишнего, делаю как-то так: var mc = _root.createEmptyMovieClip(bname, k); и после этого обращаюсь к mc, чтобы установить какие-то свойства клипа. функция attachMovie, кстати, тоже возвращает ссылку на приаттаченный клип. этим удобно пользоваться: var btn = _root[bname].attachMovie("button", captionb, 2); btn._x = 123; btn._y = 456; запись получается гораздо короче.. но можно конечно и так: _root[bname].attachMovie("button", captionb, 2); _root[bname][captionb]._x = 123; _root[bname][captionb]._y = 456; ..такое обращение уже смотрится как операция с двумерным ассоциативным массивом |
|
|||||
Регистрация: Mar 2004
Адрес: Москва
Сообщений: 5
|
Thanks a lot!!!!
Все замечательно работает!!! Большое всем спасибо!!!
Попробовал все способы, чтобы никого не обидеть. Все в ажуре и без глюков!! Даже не поверил сначала, что мне так быстро ответят знающие люди. Еще раз спасибо за помощь!! Вы спасли мой мозг! Целых 3 дня думал только об этом. Даже моя девушка сказала, что я охладел по отношению к ней. Вот что делает Flash с людми.
__________________
Eagles will soar. But Funky Beast doesn't have to worry being sucked into the jet engine. |
|
|||||
Регистрация: Aug 2003
Адрес: Украина, Львов
Сообщений: 129
|
Рекомендую Flash переименовать на чтото вроде Fire!
Будет горячей.... |
|
|||||
Регистрация: Mar 2004
Адрес: Москва
Сообщений: 5
|
Можно и так!
А можно и Flire.
__________________
Eagles will soar. But Funky Beast doesn't have to worry being sucked into the jet engine. |
Часовой пояс GMT +4, время: 12:57. |
|
« Предыдущая тема | Следующая тема » |
|
|