Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы, *.as 
:(
    Опции темы
jorka
Дата 10.3.2010, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 25.10.2008

Репутация: нет
Всего: нет



Долго мучался с этими классами, в итоге вычитал что их обязательно надо в *.as файл запихнуть. Запихнул.
Как теперь вызвать класс?
Файл в том же каталоге что и *.fla.

Написал: import <название файла>, не проканало

PM MAIL   Вверх
bars80080
Дата 10.3.2010, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



советую скачать книжку и почитать. там довольно мощная иерархия и в двух словах её всю не объяснишь

общепринятая структура предполагает примерно следующее построение:

Код

folder
    source
        pack
            baseClass.as


где вышеуказанные слова без расширения - папки. pack - имя пачки. в файле baseClass.as класс должен быть записан примерно так:
Код

package pack {
    class baseClass {
        // код класса
    }
}

далее, во флеше надо сохранить чистый файл в folder->source, а затем на панели свойств в поле document class ввести pack.baseClass


как-то так. но лучше скачайте книжку, там довольно много заморочек, что и почём должно быть
PM MAIL WWW   Вверх
IDVsbruck
Дата 10.3.2010, 03:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 1
Всего: 22



Если для простоты и удобства файл класса лежит в папке с .fla, то при обращении к нему можно не указывать import. Просто идет package {/* тут можно использовать твой класс */}
PM MAIL   Вверх
jorka
Дата 10.3.2010, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 25.10.2008

Репутация: нет
Всего: нет



bars80080, я уже 2 книги перелопатил, нету там, и в гугле искал, такое чуство что язык только вчера появился и никто ничего не знает

IDVsbruck, можно более конкретней?
Например, файл FileName.as, в нем пакет PackageName, в нем класс ClassName. Файл .as лежит в той же директории что и .fla файл.
Какую строку мне в фрэйме написать?
PM MAIL   Вверх
bars80080
Дата 10.3.2010, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



в этой книжке есть

user posted image

в первых главах
PM MAIL WWW   Вверх
IDVsbruck
Дата 11.3.2010, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 1
Всего: 22



Цитата(jorka @  10.3.2010,  16:16 Найти цитируемый пост)
Например, файл FileName.as, в нем пакет PackageName, в нем класс ClassName. Файл .as лежит в той же директории что и .fla файл.
Какую строку мне в фрэйме написать? 

Что-то ты все скомкал ...
Как в *.as может быть пакет? Пакет физически это путь от корня (.fla) до файла класса.
Если бы я знал, в КАКОМ ФРЕЙМЕ тебе писать, то подсказал бы ... а во флеше никаких фрЭймов нет. Извини.
Думаю, надо или на пальцах, если терминологией не владеешь, или конкретнее.
PM MAIL   Вверх
jorka
Дата 11.3.2010, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 25.10.2008

Репутация: нет
Всего: нет



IDVsbruck, из-за одной буквы столько негодования) Даже смешно стало)
Спросил еще на двух форумах, там тоже не знают.

ЗЫ Перед "а" запятую пропустил smile 
PM MAIL   Вверх
IDVsbruck
Дата 11.3.2010, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 1
Всего: 22



Смешно - это то, что во флеше не только фрЭймов нет, но нет даже просто фреймов. Так что объяснять все же прийдется ...
PM MAIL   Вверх
bars80080
Дата 11.3.2010, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



Цитата(IDVsbruck @  11.3.2010,  10:36 Найти цитируемый пост)
Смешно - это то, что во флеше не только фрЭймов нет, но нет даже просто фреймов. Так что объяснять все же прийдется ... 

в смысле? судя по всему он имел кадры на временной шкале. вроде, как сами разработчики их так и называют. у них же и скорость описана, как frames per second
PM MAIL WWW   Вверх
nns2009
Дата 14.3.2010, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: нет
Всего: 1



Постараюсь объяснить я:
Фрейм - это кадр монтажной линейки, ведь Flash - это не только инструмент программиста, но и художника, аниматора и т.п.
Код можно разместить на кадре монтажной линейки, но в программах желательно создавать основные классы приложения.

Что-бы всё работало попробуй сделать так:
1) Создай файл Main.as:
Код

package
{
    import flash.display.Sprite

    public class Main extends Sprite
    {
          public function Main() { trace("something") }
    }
}

И сохрани его.
2) Создай файл Main.fla и сохрани его в той же папке, что и файл Main.as 
В окне свойств документа найди свойство Класс и напиши в нём "Main"

Протестируй проект:
во время запуска swf-файла создаётся основной класс приложения(на втором шаге мы задали его имя как Main) и соответственно выполняется его конструктор({ trace("something") }). Объект основного класса приложения добавляется в список отображения и поэтому должен быть унаследован от класса flash.display.Sprite, где flash.display - это пакет, а Sprite - класс. Пакет нужно импортировать, что делает третяя строчка кода, при этом безымянные пакеты(например как у нас) импортировать не нужно.

После чего нам захотелось создать класс(предположим MyLovelyClass), делаем это так:
Код

package
{
    public class MyLovelyClass
    {
        var i:int = 5
        var d:Number = 5.05
        var f:String = "My String"
        public function MyLovelyClass() { trace(f) }
    }
}


А теперь используем его(привожу файл Main.as):
Код

package
{
    import flash.display.Sprite

    public class Main extends Sprite
    {
          var mlc:MyLovelyClass
          public function Main() { mlc = new MyLovelyClass(); trace("something") }
    }
}

Более подробно об этих вещах написано в подробном руководстве по ActionScript 3.0 Колина Мука
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.