Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   и опять мувиклипы = ) (http://www.flasher.ru/forum/showthread.php?t=90887)

ing8ar 20.01.2007 03:13

и опять мувиклипы = )
 
:wacko: пробывал по разному, фак смотрел, поиск пользовал, наверно как то не так пользовал, но ничо не получается. непонимаю как надо сделать...
проблема следующая (это уже не раз обсуждалось, но не получается и все) - нужно каждому динамически добавляемому мувиклипу на событие onMouseDown прописать свой код. ну не получается и все тут... = ((((
код из мувиклипа:
Код:

gallery_names = new Array();
movie_names = new Array();
names_xml = new XML();
names_xml.onLoad = function(status) {
        if (status) {
                gal_menu_create();
        }
};
names_xml.load("dir.php");
function gal_menu_create() {
    for (i=0; i<names_xml.firstChild.childNodes.length; i++) {
          gallery_names[names_xml.firstChild.childNodes[i].attributes.name] = names_xml.firstChild.childNodes[i].attributes.src;
          movie_names.push(attachMovie("movie_btn", "btn"+i, this.getNextHighestDepth(), {_x:0, _y:21*i+21, _alpha:0}));

          movie_names[i].gals_txt.text = names_xml.firstChild.childNodes[i].attributes.name;         
          movie_names[i].onMouseDown = function() {
              gallery_txt.text = this.gals_txt.text;
          };
    }
}

помогите. плииз! = )
Спасибо.

silin 20.01.2007 03:59

>>нужно каждому динамически добавляемому мувиклипу на событие onMouseDown..

не анализировал твой код (не в состоянии,сори), но событие onMouseDown наступает при любом нажатии клавиши (на мувике или где угодно)..
пробуй onPress/onRelease приспособить для своих нужд..

pkfun 20.01.2007 04:56

Код:

movie_names[i].onMouseDown = function() {
              gallery_txt.text = this.gals_txt.text;
          };

Вот, в вашем коде как раз это и делается.

ing8ar 20.01.2007 09:36

Цитата:

не анализировал твой код (не в состоянии,сори), но событие onMouseDown наступает при любом нажатии клавиши (на мувике или где угодно)..
пробуй onPress/onRelease приспособить для своих нужд..
пробывал вместо onMouseDown, onPress и onRelease, вообще событие не наступает, сколько не тыкал...
Цитата:

Код:

movie_names[i].onMouseDown = function() {
              gallery_txt.text = this.gals_txt.text;
          };

Вот, в вашем коде как раз это и делается.
реализуется, но не верно, при нажатии на любой мувиклип, из созданых, записывается значение первого, если пихнуть туды trace(this) то после нажатия выводит все имена мувиклипов.

гм, непойму, мож я чо не так делаю, что вполне может быть, т.к. за флеш сел два дня назад, но, если вместо -
Код:

movie_names[i].onMouseDown = function() {
              gallery_txt.text = this.gals_txt.text;
          };

пишу -
Код:

                movie_names[i].onPress = function() {
                        trace(this);
                        gallery_txt.text = this.gals_txt.text;
                };

или
Код:

                movie_names[i].onRelease = function() {
                        trace(this);
                        gallery_txt.text = this.gals_txt.text;
                };

никак не хочет работать, трейс не вызывается, ничо не происходит, как быть?

пробывал и так -
Код:

                movie_names[i].onPress = on_press;
        }
}
function on_press() {
        trace(this);
        gallery_txt.text = this.gals_txt.text;
}

просто при клике по любому из мувиклипов не вызывается событие onPress или onRelease. с чем это может быть связано? динамически добавляемый мувиклип, представляет из себя серую полоску с динамическим текстом, растянутым на всю полоску, можт в этом дело?

CorC 20.01.2007 11:50

1. понятно почему все клипы разом реагируют на onMouseDown,
потому что это так и есть :) (см silin пост)
2. непонятно почему не работает onPress,
предлагаю выход, вы упрощаете проект кидаете его сюда а мы уж разберемся...

silin 20.01.2007 12:05

>>просто при клике по любому из мувиклипов не вызывается событие onPress или onRelease.
такое может быть, если все это добро лежит в другом мцвике, у которого определен хотя бы один из мышиных обработчиков..
тогда тебе действительно нужен onMouseDown, но с проверкой hitTest (на ком мышь при нажатии)
согласен с CorC: зачем гадать, давай неработающий пример проблемы..

ing8ar 20.01.2007 17:58

silin
Спасибо! действительно, в этом мувике есть события на мышку, и они перекрывают мышыные события на вложеном мувике. нашол вроде инфу по хиттесту, буду глядеть :umnik2: . Спасибо! = )
если чо, то еще спрошу = ) ...


Часовой пояс GMT +4, время: 15:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.