Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.08.2015, 23:34
Attos вне форума Посмотреть профиль Отправить личное сообщение для Attos Найти все сообщения от Attos
  № 11  
Ответить с цитированием
Attos

Регистрация: Aug 2015
Сообщений: 26
Спасибо всем ответившим, с горем пополам разобрался. Действительно логично: создал символ+класс, добавил как addChild(), а в коде класса вся обработка. Потом перешел в меню, допустим: удалил текущий символ, добавил другой, с классом меню.
Промучился правда с прелоадером: там такая система не катит, т.к. команды препроцессора ([Frame(factoryClass="Preloader")] во Flash Pro не работают, а часть работы я все-таки хочу в нем оставить (рисование, создание символов и тп.) Пришлось-таки сделать 2 кадра, во втором добавить как addChild() в коде кадра символ-анимацию и потом уже только в классах работать. Ну а в первом Main(Preloader) - загрузка, после завершения которой идет gotoandStop(2). Ну и перенос классов во 2й кадр пришлось делать. Кстати класс прелоадера не хотел добавляться как addChild() (просто не появлялся на сцене и все), хотя класс отрабатывает, процесс загрузки виден в trace(). Пришлось добавить его тупо кинув на сцену.

Отдельно потратил немало времени, чтоб привязать IDE Idea к проекту Adobe Pro.
Сейчас заметил только первый минус классов: т.к. все символы-классы наследуются от MovieClip, то нельзя уже его наследовать от своего класса (например, какого-нибудь базового, где часто используемые операции будут). Можно базовый класс, конечно, сделать, как свойство класса, но это уже менее удобно.

Старый 14.08.2015, 20:08
tattori вне форума Посмотреть профиль Отправить личное сообщение для tattori Найти все сообщения от tattori
  № 12  
Ответить с цитированием
tattori

Регистрация: Jul 2015
Сообщений: 73
Цитата:
Кстати класс прелоадера не хотел добавляться как addChild() (просто не появлялся на сцене и все)
Возможно индексом выше стоял другой символ
и все же зря ты в кадрах все это делаешь

Старый 14.08.2015, 20:44
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 13  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Советую FlashDevelop.
__________________
There is no thing in this world that is not simple.

Старый 14.08.2015, 21:49
Attos вне форума Посмотреть профиль Отправить личное сообщение для Attos Найти все сообщения от Attos
  № 14  
Ответить с цитированием
Attos

Регистрация: Aug 2015
Сообщений: 26
Цитата:
Сообщение от tattori Посмотреть сообщение
Возможно индексом выше стоял другой символ
и все же зря ты в кадрах все это делаешь
Как я прочитал здесь на форуме, если работать с Adobe Pro, то придется в кадрах прелоадер делать. Без кадров можно только как раз во FlashDevelop.

Не совсем понял про индекс: код 1го класса предельно прост: (для Preloader_mc не сделан экспорт во 2й кадр, а для всех остальных сделан)

Код:
public class Main extends MovieClip {

    public var preloader_mc:Preloader_mc;

    public function Main() {
        //preloader_mc = new Preloader_mc()
        //addChild(preloader_mc); // это не появляется, хотя загрузка байтов идет
		
        trace('1');
        loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);
        loaderInfo.addEventListener(Event.COMPLETE, completeHandler);//слушатель окончания загрузки
    }

    private function progress(e:ProgressEvent):void {
        trace(e.bytesLoaded.toString());
    }

    private function completeHandler(event:Event):void {//как только все загрузилось

        trace('3');
        removeChild(preloader_mc);
        gotoAndStop(2);//переходим во второй кадр, где лежит мувик с основным приложением

    }
Цитата:
Советую FlashDevelop.
Да, я уже попробовал и его, и FlashBuilder, и Idea. Последняя больше всего пока понравилась.

Старый 14.08.2015, 23:53
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 15  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Как я прочитал здесь на форуме, если работать с Adobe Pro, то придется в кадрах прелоадер делать.
Можно подгружать другой SWF, это, наверное, самый верный подход.
Но по сути, работать с кодом в Adobe Flash вообще нет никакого смысла. Это же ад.
__________________
There is no thing in this world that is not simple.

Старый 15.08.2015, 03:31
Attos вне форума Посмотреть профиль Отправить личное сообщение для Attos Найти все сообщения от Attos
  № 16  
Ответить с цитированием
Attos

Регистрация: Aug 2015
Сообщений: 26
Цитата:
Сообщение от ZackMercury Посмотреть сообщение
Можно подгружать другой SWF, это, наверное, самый верный подход.
Но по сути, работать с кодом в Adobe Flash вообще нет никакого смысла. Это же ад.
Да, точно, можно подгружать другой swf, но пока для меня это было более запутанно, поэтому сделал так. Впрочем в кадрах кода почти нет, точнее всего 2 строки: импорт и создание 2го класса, который уже загружает остальные.

Разобрался, кстати с небольшой проблемой:
Цитата:
т.к. все символы-классы наследуются от MovieClip, то нельзя уже его наследовать от своего класса
Свои классы не наследую от символов, а просто в свой класс передаю класс Main (который root и parent), создаю экземпляр класса символа и делаю от main addChild();. Свой же класс могу уже наследовать от чего хочу.

Старый 15.08.2015, 10:51
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 17  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
PHP код:
 т.квсе символы-классы наследуются от MovieClipто нельзя уже его наследовать от своего класса (напримеркакого-нибудь базовогогде часто используемые операции будут). 
С чего вы взяли? Унаследуйтесь от Sprite или MovieClip, и укажите символу свой класс, всё будет работать как часы.
Но так никто не делает.
__________________
There is no thing in this world that is not simple.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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