PDA

Просмотр полной версии : и опять мувиклипы = )


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: . Спасибо! = )
если чо, то еще спрошу = ) ...