FLASH MX - инструмент креативщика Ivan Dembicki Спецвыпуск Xakep, номер #024, стр. 024-096-3 - вначале задали две функции valueSet и valueGet; - в valueSet мы присваиваем значение аргумента переменной value и свойству _visible галочки; - в valueGet просто возвращаем значение переменной value; - после этого добавили свойство нашему мувиклипу функцией addProperty. В аргументах функции первый аргумент в кавычках - имя свойства, которое создаем, далее имена функций, которые нужно вызывать в случае задания этого свойства и в случае его запроса. Вроде с виду громоздко. Но написав однажды собственное свойство и в дальнейшем используя его, как и обычное встроенное свойство, гораздо легче использовать и понимать взаимодействие объектов в больших проектах. КОНТАЧИТЬ С МУВИКАМИ СТАЛО ЛЕГЧЕ! Ты помнишь, сколько чудных мгновений доставляла задача организации взаимодействия двух роликов. Эти чудные мгновения превращались в часы, если требовалось передать разные данные из разных объектов независимо друг от друга. А все из-за того, что исполнялась только последняя fs команда в кадре, остальные гибли, как здравые мысли с утра после вчерашнего. В МХ такая задача решается на раз при помощи объекта LocalConnection. При его помощи можно наладить взаимодействие между разными роликами в проекте. И что особо порадовало, LocalConnection работает без проблем независимо от расположения принимающего ролика: он может находиться и в другом фрейме, и даже в другом окне браузера. Но в хелпе нет описания LocalConnection. Как нередко случается у Макромедии, сделать-то они сделали, а в официальные документы включить не успели. Так что описание ищи у них на сайте по ключевым словам "LocalConnection". Ниже я прокомментирую их пример: Для организации взаимодействия в ролике-отправителе создается объект-отправитель, например, на нажатие кнопки: my_button.onRelease = function() { // создаем объект: out_lc = new LocalConnection(). // и затем оправляем: out_lc.send("lc_name", "methodToExecute", userMessage.text); }; Здесь заслуживают интереса параметры функции send. - "lc_name" - уникальный идентификатор соединения. Соединение с таким именем может быть только одно. - "methodToExecute" - имя функции, которая будет вызвана в ролике-получателе. - userMessage.text - аргумент, с которым будет вызвана функция methodToExecute. В ролике-получателе создается объект-получатель, функция обработки получаемой информации и открывается соединение: incoming_lc = new LocalConnection(); incoming_lc.methodToExecute = function(param) { sentMessage.text = param; }; incoming_lc.connect("lc_name"); НА ЛЕТУ А вот еще новая фишка function.apply(), смотрим примеры: _root.createEmptyMovieClip("my_mc", 1) function function1() { trace(this + " function function1 called, argument: "+arguments[0]);} function function2() { trace("function function2 called, argument: "+arguments[0]);} function function3() { trace("function function3 called, argument: "+arguments[0]);} for (i=1; i<=3; i++) {this["function"+i].apply(this, [i]);} |