![]() |
Как можно вызвать функцию из другого файла .as?
Всем привет.
Пишу игру и у меня получается ну очень большой файл с кодом. Становится уже довольно трудно в нём находить то, что надо. И ужать его я никак не могу, поскольку выносить функции в другие файлы можно, но тогда ведь придётся подключать функции из этих файлов с помощью addChild или нет? Получается я делал как, если мне нужна функция из другого файла, я подключаю его как мувик и аттачу к сцене или делаю функцию статической и ею можно пользоваться, если файл импортировать. Но если в файле есть ещё другие функции и переменные, то функция может и не работать. Есть вообще варианты, чтоб просто вынес функцию или функции в отдельный файл и эти файлы потом как-то собирать "в кучу"? Ато уже надоело по тысяче строк кода искать переменную. Даже и с помощью поиска... |
1. Создайте файл "functions.as"
2. Положите рядом с вашим as-файлом 3. В вашем as-файле в том месте, где предполагается расположение этих функций напишите Код AS3:
|
Цитата:
Но я про этот способ знаю. При этом функции должны быть статическими и если оперируют переменными, которых в этом файле нет, перменные должны быть переданы. Или должны быть глобальными. Ещё какие-то способы есть? Т.е. чтоб по сути был как один файл as, просто разбитый на несколько? Без присвоения функциям статических свойств. |
include – инструкция препроцессора, который просто вставляет содержимое файла а в файл б. Без всяких проверок на синтаксис и семантики. Они происходят позже.
|
Цитата:
Цитата:
- класс - интерфейс - функция уровня пакета На класс положено заводить один файл с названием идентичным названию класса На интерфейс положено заводить один файл с названием идентичным названию интерфейса На функцию уровня пакета положено заводить один файл с названием идентичным названию функции Однако, в том же файле, что и класс/функция уровня пакета можно определить вспомогательные классы вне конструкции package ... {}. Пользоваться ими сможет только главный класс в файле. Расположить 2 класса в файле или назвать класс не так как название файла компилятор вам не даст. Если классы лежат в одном пакете - то они видны друг другу напрямую, если в разных - надо пользоваться директивой import, чтобы прописать пакет, в котором лежит класс. Цитата:
addChild - это всего лишь метод экземпляра _нативного_ класса DisplayObjectContainer, от которого наследуется Sprite. И он добавляет экземпляр класса DiplayObject child в экземпляр класса DisplayObjectContainer (в рантайме): Код AS3:
Директиву include посоветовал, чтобы не нагружать вас этими концепциями - её практически не используют. А если дальше программировать на as3 собираетесь придётся нагрузиться концепциями по-хлеще классов/экземпляров классов. А если вы больше не собираетесь притрагиваться к as3, а игра готова на 80% - используйте include, чтобы не тратить время на обучение. |
expl, благодарю за столь развёрнутый ответ. Признаться я бы - обломался столько писать кому-то на форуме )
Я, к сожалению затупил, когда писал предыдущий вам ответ. include - это как раз то, что было нужно. Перепутал с import. Про классы интерфейсы и т.д. я уже с горем пополам разобрался, а вот include - очень не хватало, поскольку файл, в котором прописан основной движок - очень уж разросся... Ещё раз благодарю. Это было то, что нужно |
| Часовой пояс GMT +4, время: 02:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.