PDA

Просмотр полной версии : Глюк FlashMX???


Lorex
10.09.2004, 21:31
Народ.. бьівает пишеш на мувике
on (press)
{
trace(this);
}

один раз вьідает
_level0

иной раз
_level0.instance4

тоесть имя мувика по умолчанию....
ЗНАЮ, что правда - второй вариант...
почему тогда вижу первьій иногда... и попросту не могу достаться до переменньіх..
тоесть на мувике
this.d=this.v-this._xmouse;

а this.v и this._xmouse почемуто оказьіваются нулевьіми (програмирую не первьій день.. инициализация бьіла)

iNils
10.09.2004, 23:00
_level0 - это когда на кнопке данный код вставляют
_level0.instance4 - а это на мувиклипе

sergwizard
10.09.2004, 23:10
1.
on(press){
trace(this) = _level0 - если код вставлен в кнопку
trace(this) = _level0.instance4 - если код вставлен в безымянный мувиклип.
trace(this) = _level0.mc - если код вставлен в мувиклип с именем "mc".
}
2. и попросту не могу достаться до переменньіх.. тоесть на мувике
this.d=this.v-this._xmouse;
Покажи, исходник. Явно что-то не то делаешь. Ошибки можно делать и на третий день программирования.
Интересно, почему люди все свои ошибки сваливают на "глюки"?

Nox Noctis
14.09.2004, 13:53
неоднозначность введена макромедией в шестой версии флэша.

если создать обработчик события в объектном синтаксисе (что предпочтительнее), то this внутри обработчика всегда указывает на объект в котором сработало событие.

например:
btn.onPress = function () {
trace(this); // выводит _level0.btn
}где btn - это кнопка в руте.

но при этом если на этой же кнопке повесить обработчик в старом синтаксисе:
on (press) {
trace(this); // выводит _level0
}
то выведется ссылка на родительский для кнопки клип. то есть _root.

если же то же самое проверить на мувиклипе, то this внутри обработчика всегда указывает на сам клип.

вобщем макромедия всех запутала :)

Lorex
14.09.2004, 14:05
Сенкс ...

вроде чуть ясно стало...
Но вопрос.. когда я пишу

on (press) {
trace(this);
}

я не смогу использовать this???
тоесть this._x не фурьічит в етой конструкции????

на кнопке
on (press) {

this._x+=20;

}

кнопка не передвенется? Я правильно понимаю????

DeliMIter
14.09.2004, 14:06
Ты абсолютно прав. Если ты задаешь объекту поведение кнопки, то this для нее будет клип, в котором она лежит, а не она.

Lorex
14.09.2004, 14:12
А я думал глюк......

Я понимал раньше, что в етом мувик и кнопка не отличаются...
Но вьіходит ОТЛИЧАЮТСЯ....
попробовал...
если на кнопке написать
on (release)
{
this._x+=50;
}

ПЕРЕДВИГАЕТСЯ ВЕСЬ КЛИП...

СЕНКС ВСЕМ!