Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   В чем отличия this от _root, parent (http://www.flasher.ru/forum/showthread.php?t=66005)

F())( 24.06.2005 21:35

В чем отличия this от _root, parent
 
С _root и папрент ситуация ясна , для чего служит this?? В каких случаях исполльзовать? :confused:

Nirth 24.06.2005 22:00

this это ссылка на объект в котором ты сечас находишься
Код:

//Делаем мувик - шарик
_root.createEmptyMovieClip("ball_mc",5);
_root.ball_mc.lineStyle(35,0xff6600,100);
_root.ball_mc.moveTo(0,0);
_root.ball_mc.lineTo(0.5,0);
//Переходим к делу
_root.ball_mc.onEnterFrame = function () {
    this._x +=5 //this в данном случае ссылкаеться на _root.ball_mc
    _root.ball_mc._y+=5 //без this как видно код длинее
}

Так же this имеет особое значение в прототипах и классах там this ссылаеться на экземпляр класса.
Так же можно прочесть в переведенной документации про this

PITer 24.06.2005 23:53

еще один вариант
 
При разработке крупных проектов, подчас требуется разбивать проект на мелкие элементы, которые реализуются в виде подгружаемых клипов.
При этом регулярно требуется чтобы клип работал несколько по разному в зависимости от того в какой ситуации он загружен. Для реализации такого поведения можно использовать следующий код помещенный в первом кадре главной временной линейки:
if (this == _level0) {
//действия которые должен выполнять клип при
//загрузке в режиме отладки
} else if (this == _level1) {
//первый режим работы
...
} else if (this == _levelN) {
//N ный режим работы
} else {
//клип подгружен не в level
//а в существуюший мувик(this!=_root)
}

Следует также заметить, что _root всегда ссылается на главную временную линейку, вне зависимости от того в какой level она загружена, а адресация _levelN обращается к конкретному уровню и при неумышленном использовании ее может вызвать неожиданные ошибки при дальнейшем развитии проекта...

Кстати проверка правильности нахождения клипа после его загрузки может использоваться в целях простенькой защиты (например при создании игр) дабы вашу игру не загрузили в другой клип выставляющий вашему клипу ненужные (ВАМ) параметры.

Nirth 25.06.2005 00:12

Цитата:

Следует также заметить, что _root всегда ссылается на главную временную линейку, вне зависимости от того в какой level она загружена, а адресация _levelN обращается к конкретному уровню и при неумышленном использовании ее может вызвать неожиданные ошибки при дальнейшем развитии проекта...
Не совсем правда, при включеном _lockroot , ссылка _root ссылаеться на свой рут в каждом мувике
читать про _lookroot по-русски


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

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