PDA

Просмотр полной версии : onRelease для вложенных клипов


Chilly
27.11.2005, 22:00
Помогите пожалуйста, не знаю как сделать. Есть ScrollPane, его контентом является клип1. На этот контентный клип1 установлен еще один клип2.И надо сделать такое:
f=1;
if (f == 1) {
ScrollP.spContentHolder.onRelease = function() {
trace("action1");
};
} else {
ScrollP.content["03000"].onRelease = function() {
trace("x="+sp.content["03000"]._x);
};
}
Т.е. надо при одном значении f реагировать на нажатие клипа1, а при другом - клипа2.
Но суть в том, что если изменить f прямо во время выполнения программы , то ничего не произойдет. Программа будет работать так, как будто f всегда 1. f я меняю правильно, проблема именно в событиях onRelease. :mad:

Antares
27.11.2005, 22:42
Надо сделать f локальной переменной для мувиклипа content (а это именно мувиклип), либо пользоваться хиттестом и техникой ручной передачи событий вглубь:

В находится в А. При вызове события onRelease у А мы руками вызываем его у В, добавляя, если надо, что-то еще. Неудобно, но не смертельно.

Chilly
27.11.2005, 23:17
А можно как-нибудь на практике про это,а то я во флеше совсем плохой.

Antares
27.11.2005, 23:53
Когда просят так, можно (хотя я не сторонник поставки нубам сжатых зип папок).

1. Делаем два мувиклипа, foo и bar внутри него. foo при этом начнет перехватывать события onRelease, точнее, не будет "пропускать их вглубь".
2.

foo.onRelease = function()
{
trace("Событие для foo");
if(this.bar.hitTest(_xmouse, _ymouse, true)) this.bar.onRelease();
}

bar.onRelease = function()
{
trace("Событие для bar");
}