Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Объекты в кадрах и в AS3 (http://www.flasher.ru/forum/showthread.php?t=155525)

zxcv 05.05.2011 20:49

Объекты в кадрах и в AS3
 
Даже и не знаю, как тему назвать... Вопрос же следующий:
В основном классе описал несколько методов, работающих с датагридом. Сам же датагрид появляется, к примеру, на пятом кадре. В результате вылезает ошибка, што, мол, пытаюсь обратиться к свойствам пустого объекта (датагрид = нулл). Если же датагрид расположен в первом кадре, то все в порядке. Можно, конечно, датагрид делать невидимым на первых кадрах, а в нужном месте показывать, но это вроде как неправильно... В общем я не совсем понимаю, что и как видит AS... не мог бы кто-нибудь пнуть в нужном направлении? )
Из той же области вопрос: датагрид, находящийся на разных кадрах, - это один и тот же датагрид или разные?

Bgg 05.05.2011 23:10

Цитата:

датагрид, находящийся на разных кадрах, - это один и тот же датагрид или разные?
Один и тот же.

Правильно вообще не пользоваться кадрами, они для анимации. Удаляйте экземпляр датагрида или скрывайте его, и все это в одном кадре.

Dukobpa3 05.05.2011 23:22

Цитата:

Сообщение от Bgg (Сообщение 994230)
Один и тот же.

Правильно вообще не пользоваться кадрами, они для анимации. Удаляйте экземпляр датагрида или скрывайте его, и все это в одном кадре.

Немного не так В большинстве случаев датагриды будут как раз разные. Но тут зависит от ключевых кадров. Если ключевой кадр один - растянутый на весь таймлайн - то датагрид один, если же ключевые кадры растыканы по всему таймлайну(как это обычно происходит) - то датагриды будут разные на каждом ключевом кадре.

Bgg 05.05.2011 23:28

Цитата:

Сообщение от Dukobpa3 (Сообщение 994238)
если же ключевые кадры растыканы по всему таймлайну(как это обычно происходит) - то датагриды будут разные на каждом ключевом кадре.

И если у датагридов разные instance name в разных кадрах. Если одинаковые во всех кадрах, то это один и тот же экземпляр датагрида.

Dukobpa3 05.05.2011 23:28

Та по барабану какой у него нейм.
Инстанс все-равно другой будет.

zxcv 06.05.2011 09:40

Ага... Спасибо большое за ответы! буду делать на одном кадре )
А почему все же датагрид == нулл? ведь обращаюсь я к нему в том кадре, где он существует. И вообще как в таком случае обращаться к объектам, созданным не на первом кадре? их нужно создавать в коде?

Cornford 06.05.2011 09:54

можно проверять:
if (dataGrid){
//код датрагрида
}

fish_r 06.05.2011 11:10

Зайдите на вкладку "Symbol Properties" DataGrid-а, там из поля Class строку fl.controls.DataGrid перенесите в поле BaseClass, а в строке класс укажите имя класса из которого будете управлять DataGrid-ом (только предварительно создайте файл с этим классом, чтобы приложение могло его найти иначе он будет создан формально, т.е. физически его не будет) и из этого класса, уже, управляйте этим DataGrid-ом как вам нужно, тогда не будет иметь значения в каком он кадре.

zxcv 06.05.2011 16:38

fish_r, што-то я не совсем понял - это получится што-то типа надстройки над базовым классом DataGrid или как?


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

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