![]() |
attachMovie, доступ к методам клипа
В библиотеке клип bar (linkage есть, id=bar есть). На первом фрейме клипа прописаны методы. Приаттачиваю к главному клипу:
_root.attachMovie("bar", "bar", 1); Вызываю методы из первого фрейма клипа, например: _root.bar.traceMsg(); результат - нуль. Всем спасибо заранее, даже, если пошлете в... документацию :) |
_root.attachMovie("bar", "bar", 1);
_root.bar.onEnterFrame = function() { trace('1'); } Попробуй так. |
Цитата:
Конечно, можно было решить проблему так: for(i=0; i<some_var; i++) { _root.attachMovie("bar", "bar" + i, 1); _root["bar"+i].onEnterFrame = function() { trace('1'); } и т.д. } но тогда возникнет проблема с передачей параметров каждому созданному клипу. В руте придется создавать массив с параметрами и выбирать их в цикле по i. А если несколько параметров? - Несколько массивов!!! И т.д. Просто хотелось создать в подклипе методы и переменные и передавать напрямую после attach. Есть еще мысли? |
Может я всё-таки чего-то непонимаю? :)
for (i=0; i<10; i++) { _root.attachMovie("bar", "bar" add i, i); // создаём переменную _root["bar" add i].myVar = 'Моя переменная ' add i; _root["bar" add i].onEnterFrame = function() { trace(this.myVar); } } |
Цитата:
В двух словах, все вроде классов - создал класс, наклепал экземпляры, обратился к методам, все... А вообще в принципе, почему не работает обращение к методам, если клип приаттачен. Вот мы и замкнули круг :) Извини, если долго петлял |
Я с этим сталкивался.
Это из-за недоделанности Flash. Методы, который ты определил в первом фрейме мувика, можно использовать только в следующих (после attachMovie ) фреймах _root(или другом месте). Я с этим уже сталкивался. Я тебя понимаю. Ты хочеш из первого фрейма мувика сделать файл (заголовок и инициализация). Это оперативно и удобно, но зачем убивать целый фрейм на описание? Лучще поставь FlashMX2004. Там это всё делается в отдельном файле. |
Цитата:
чтобы выполнился код первого кадра, он должен проиграться. а проиграться он может только при следующей смене кадра, после вызова аттачМуви. если бы было наоборот - то не было бы возможности сразу после аттача передать клипу какие-то параметры еще ДО проигрывания его первого кадра.. в пятерке с этим реальная заморочка была |
Да. Ты прав. Дело в недоделанности логики.
Вранних версиях коды связанны с фреймами(временем). Да здравствует FlashMX2004! |
Цитата:
в шестерке с логикой работы с фреймами и соотнесением по времени всяких действий - уже все пучком... в шестерке и в семерке эту логику наконец привели в соответствие с самой собой :) а в пятерке были грабли страшные, это да. я уже боюсь вспомнить что было в четверке :)) |
Цитата:
Тогда, если я проинициализирую клип в первом кадре _root, то я могу использовать его встроенные метода в последующих кадрах _root? Я правильно тебя понял? Цитата:
Заранее спасибо |
Цитата:
В отдельный файл выносится всё то, что ты пишеш в первом фрейме приаттачиваемого мувика(заголовок). И не нужно "ждать" целый фрейм в _root, чтобы воспользоваться твоими методами. Наверное..? Кстати, а можно сразу пользоваться предопределёнными методами? |
Цитата:
В принципе никакой проблемы-то и нет. Я лично вообще предпочитаю прописать все методы и переменные для всех подмувов в первом фрейме _root. Но тут просто захотелось прописать методы в самом мувике, т.к. я предполагал reusing мувиков в любом другом головном клипе. Опять-таки, можно и не мучиться и обращаться к методам, начиная со второго фрейма _root. Но ты же понимаешь, когда есть какие-то ограничения, это тормозит совместный "полет души и разума" :) |
Цитата:
MovieClip. Эту тему мы недавно обсуждали где-то на форуме. Мне близко то о чём ты говориш. Я сам в пятёрке да и сейчас частенько так делаю. Это удобно и быстро. И не надо загромождать сцену всякими прототипами, как это здесь модно(на форуме). Кстати для этого тоже нужен бесполезный фрейм. Правда этот скрипт(первый фрейм) кое-что весит. И если ты аттачиш кучу мувиков увеличивается память, используемая плеером. Совсем немного, но... |
Цитата:
Цитата:
Вопрос в другом, и это действительно интересно. Если ты определишь методы в подклипе, затем объявишь подклип наследником-расширением MovieClip, будет ли у тебя после объявления и аттача доступ к методам в первом фрейме, или нет? Когда проделываешь ту же операции не с классом, а с прототипом - не работают методы в первом фрейме. Я думаю, что и с классами не будет работать. Я думаю, что механика обращения к методам не изменилась, изменился сам синтаксис, который стал более отвечать идеям OOP. Ну, по-моему, я не очень умничал :) |
Я сразу понял, что ты из ООП.
Я тоже в основном работаю С++. Советую, поставь 2004. Там тебя ждёт много приятных неожиданностей! |
Цитата:
|
| Часовой пояс GMT +4, время: 22:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.