Адрессация вложенных объектов
Парни и девушки помогите разобраться!!
В ообщем есть пустая страница. На ней я программно создаю пустой мувик. В него засовываю ранее срзданную кнопку(из библиотеки используя attachMovie()) + еще картинку(для заднего фона кнопки) подгружаю(в пустой мувик созданный в главном мувике используя loadMovie()). Факт в том что это все работает, но стоит мне обратиться к свойствам(типа _alpha или _x) мувиков, которые вложены в главный мувик, то ничего не получается. Вот я и спрашиваю вас, умные люди: Как мне быть и что посоветуете?. Просмотрел весь форум, но ничего не нашел. Пробовал разное, может не догоняю? Буду очень благодарен за help. |
напиши код!!!! как обращаешься...
к кому обращаешься... поробуем..... может пути... скорей всего |
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"); Если кто знает или хотел бы ответить можно писать и на мыло. |
Так тьі пытался добраться до нужных мест нужного мувика.
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; |
вот так работает
eval(bname+"."+captionb)._x = 20; eval(bname+"."+captionb)._y = 40; |
так да.. но тьі тогда двигаешь только кнопку...
А понятно.. тебе енто и нужно бьіло.... сорри |
тавагисчи :)
евал никому уже давнооо не нужен. к любому методу/свойству объекта можно обратиться двумя способами: 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; ..такое обращение уже смотрится как операция с двумерным ассоциативным массивом |
Thanks a lot!!!!
Все замечательно работает!!! Большое всем спасибо!!!
Попробовал все способы, чтобы никого не обидеть. Все в ажуре и без глюков!! Даже не поверил сначала, что мне так быстро ответят знающие люди. Еще раз спасибо за помощь!! Вы спасли мой мозг! Целых 3 дня думал только об этом. Даже моя девушка сказала, что я охладел по отношению к ней. Вот что делает Flash с людми. |
Рекомендую Flash переименовать на чтото вроде Fire!
Будет горячей.... |
Можно и так!
А можно и Flire. |
Часовой пояс GMT +4, время: 08:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.