Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как отследить изменение переменной внутри класса (http://www.flasher.ru/forum/showthread.php?t=61182)

Lego 29.07.2004 17:25

ВОТ! Наконец-то понял, чем анонимная функция отличается от обычной :D . Это раз.

По поводу последнего - невнимательно прочитал твой ответ(пропустил частичку "не") и в коде, который я привел, просто опустил Object.registerClass()

Спасибо за науку.

Nox Noctis 29.07.2004 17:30

зачем пост отредактировал? :)) я не со зла же :))

Lego 29.07.2004 17:37


Lego 29.07.2004 17:38

Да в офиссе раздраконили, блин, а потом успокоился,
подумал и решил - чего обижаться?! Радуйся, что учат делу :D

Lego 29.07.2004 17:43

Вот посмотрел и проверил. Порядок операторов типа

TGrid.prototype = new MovieClip();

function TGrid() {
trace("constructor");
}

я и в инете, и в литературе встречал (конкретно - ActionScript Библия пользователя Джой Лотт, Роберт Рейнхардт).

Так что это не я сам такой молодЕц :D

Nox Noctis 29.07.2004 17:46

да я тоже встречал :) просто это уже настолько стало казаться логичным и правильным, что в каком порядке нужно делать, что увидев обратный порядок я забыл про первопричину :))

если у авторов это есть, и они поясняют почему это работает, тогда ладно. если не объясняют - плохо. это же нелогичное построение скрипта.

у мука, кстати, это дело упоминается.

Lego 29.07.2004 17:51

Нет. Все равно не ясно по поводу
Цитата:

если ты создаёшь функцию так:
function name (args) {
..
}
.

В том же классе, допустим, есть функции, объявленные в следующем порядке:

TGrid.prototype.Init = function()
{
this.Draw();
}

TGrid.prototype.Draw = function()
{
trace("Опа! такі працює!");
}

Все работает :confused:

Nox Noctis 29.07.2004 18:00

ну так ты же не вызываешь функцию до того как она объявлена!

сначала весь этот код выполняется (а гарантиует это именно #initclip, который выполняется до всего остального кода в кадрах и на клипах), а тоько потом ты вызываешь инит()

попробуй написать так:

test = new TGrid();
test.Draw();
TGrid.prototype.Draw = function()
{
trace("Опа! такі працює!");
}
test.Draw();

- и сработает оно только один раз. после объявления.

Lego 29.07.2004 18:03

Все. Ок. Понял. Протупил. Огромное спасибо. Вопрос исчерпан.

Nucer 29.07.2004 22:53

Может я уже устал к концу дня, но там было
Цитата:

Подсажите, пожалуйста, как внутри класса прописать что-то типа

TGrid.watch("recordSet", this.Draw);
А чем этот вариант то не подходит? Ну только с соблюдением синтаксиса Object.watch ?


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

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