![]() |
подскажите пожалуйста толком о "внешних классах и функциях"
я программировал на других языках -а вот на AS3 никак не пойму:
как компактно и удобно - взять и создать свою фукнцию, к которой можно обратится отовсюду - но которая бы лежала где то и не мозолила глаза. Вроде какие то внешние классы или как то так extern package какой то... что ли?! |
Код AS3:
|
и не забыть сохранить это в test.as ))
|
а как потом этот самый тест подключить к главной программе?
|
Как обычный класс.
|
Код AS3:
|
если файл test.as лежит в каком-то пакете, то импортировать его предварительно, если в корне проекта, то вызываете просто test()
|
Стыдно сказать но именно этот пример с голой функцией не запускается.
Код:
(15): col: 4 Error: Call to a possibly undefined method test.Единственное что смущает FD сохраняет не test.as, а Test.as. Может ошибка из за этого возникать? |
да, файл должен называться именно test.as а не Test.as
|
а вот можно изнутри функции управлять объектами в главном монтажном кадре?
|
можно, если передать ссылку на "главный монтажный кадр". Но не нужно)
|
Цитата:
Добавлено через 1 минуту они будут видимы из функции |
Советую прочитать книгу Колина Мука по AS3, В рунете есть русский электронный вариант.
P.S. Тсссс...я ничего не говорил ) |
что значит в данном контексте передать ссылку?
|
Код AS3:
|
Это действительно делать не нужно. По-нормальному - создайте класс наследник Sprite если кадр один, или MovieClip, если кадров больше. Опишите, что нужно делать в этом классе и назначте этот класс классом документа (настройки публикации -> флеш -> настройки -> класс документа). В этом классе вам будут доступны все объекты помещенные на временную шкалу, но реализовать это можно по-разному. Лучший, с моей точки зрения вариант - это отключить "автоматическое объявление объектов добавленных на сцену" т.как это потом создает проблемы в нормальных редакторах (флеш не допишет декларации в класс-документ, а добавит их на этапе компиляции). И, поэтому, лучше их самому объявить, хотя это вроде как дополнительная работа.
Т.е. к примеру, у вас на сцене есть кнопка, которую вы назвали (задали ей instance name) button, в классе документа вы должны будете добавить public var button:SimpleButton;. Флеш, когда будет компелировать сообразит, что это та же кнопка, что лежит на сцене. |
Код AS3:
также почему то не вызывается функция говоря: ожидается один аргумент. хотя и void указал, и вызывал maingame() Добавлено через 5 минут Код AS3:
|
не понятно что вы вообще хотите сделать
имя конструктора должно совпадать с именем класса, в конструкторе не указывается тип возвращаемых данных, он ничего никогда не возвращает при чем тут Код AS3:
|
public class maingame {
требует чтобы это совпало С ИМЕНЕМ САМОГО ФАЙЛА as а что если я захочу в нем объявить несколько разных классов? |
Цитата:
|
Цитата:
Добавлено через 5 минут Код AS3:
|
требует КОМПИЛЯТОР чтобы ЭТО MyClass; MyPrivateClass совпадало с названием файла as
|
Чего? Ну да, файл должен зваться MyClass.as. Вам уже говорили раньше.
|
Код AS3:
Добавлено через 1 минуту Оно и звучит как ВНУТРЕННИЙ)) |
так элементарнейший пример НЕ РАБОТАЕТ. тот самый первый что в теме предложили. создаю скажем внешний файл
Код AS3:
вызываю из основного когда f1(); не видит! |
Вам сказали, что файл должен зваться ТОЧНО ТАК ЖЕ, как и функция. Функция у Вас названа ну никак не maingame.
И да, это не конструктор, это функция. |
вы издиваетесь? а что если 100 функций? делать сто файлов???!!!
Добавлено через 1 минуту исправил название- сработало. а как - несколько функций то? |
Да. Зачем может понадобиться столько глобальных функций? Посмотрите на класс Math. У него статические методы.
|
то есть вы советуете объявлять их прямо в монтажном кадре? а можно их как то аккуратно отделить что ли - чтобы не мешали??!!
|
Какие нафиг монтажные кадры? Класс. Классы. Классики. Math - это класс.
|
то есть создать класс в этом самом внешнем файле?
|
Конечно. Вы же на as3 пишете, а не as1. Класс с именем Utils, в нем статические методы. И делайте хоть 100 хоть 1000 методов.
|
просьба - не могли бы подсказать синтаксис? в с++ все элементарно а тут что то не выходит(
|
Цитата:
in4core Вам все прекрасно показал. В двух вариантах сразу (браво). |
а как тогда к этому обратится в самом коде? класс то объявить надо?
|
Цитата:
|
вот я создал класс во внешнем файле. а в нем - метод
Код AS3:
foo(); - не работает |
static допишите
Код AS3:
Код AS3:
|
Код AS3:
|
спасибо. попробую! и последний вопрос остался. чтобы передать в метод класса - ссылку на главный - кадр - как предлагали Myobj.foo(this) то каков должен быть синтаксис в объявлении чтобы приняло эту ссылку верно?
|
| Часовой пояс GMT +4, время: 08:20. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.