Форум 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)
-   -   Глюк FlashMX??? (http://www.flasher.ru/forum/showthread.php?t=62937)

Lorex 10.09.2004 21:31

Глюк FlashMX???
 
Народ.. бьівает пишеш на мувике
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;
}

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

СЕНКС ВСЕМ!


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

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