Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
AS 3.0

Прелоадер при коде в классах

02.12.2013, 14:27. Показов 4064. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пжста, как все-таки сделать правильно прелоадер. Есть мейн класс проекта Otkritka. В нем я пытаюсь создать екземпляр класса Otkritka_Main по окончанию прелоадера. Но прелоадер не работает и у меня при имитации всеравно сначала идет загрузка всего ролика на 0 кадре . Вот текст мейн класса:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package
{
    import com.greensock.*;
    import com.greensock.easing.*;
    
    import flash.display.DisplayObject;
    import flash.display.Loader;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.KeyboardEvent;
    import flash.events.ProgressEvent;
    
    public class Otkritka extends Sprite
    {
            
        public function Otkritka()
        {
            
        loaderInfo.addEventListener(Event.COMPLETE,onComplate);
        loaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);
        }
 
        private function onComplate(e:Event):void {
            trace("Загрузка прошла");
            if (loaderInfo.bytesTotal==loaderInfo.bytesLoaded) {
                
                var dedM:Otkritka_Main=new Otkritka_Main();
                addChild(dedM);
            }
            
        }
        
        private function onProgress(e:ProgressEvent):void {
            trace(loaderInfo.bytesLoaded/loaderInfo.bytesTotal);
        }
    
    
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2013, 14:27
Ответы с готовыми решениями:

Прелоадер при коде в кадрах
Столкнулся с проблемой. Вобщем в 1 кадре у меня скрипт прелоадера: import flash.display.Loader; import flash.events.ProgressEvent; ...

Определить какие из имён встречаются во всех классах, только в некоторых классах, не встречаются ни в одном
1. Заданный имена девочек . Определить , какие из этих имён встречаются во всех классах данной параллели , которые есть только в некоторых...

Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе
Для каждого из четырех классов указаны имена девочек, обучающихся в них. Определить, какие из этих имен встречаются во всех классах, какие...

42
Модератор
 Аватар для TanaTiX
2939 / 1800 / 180
Регистрация: 19.02.2011
Сообщений: 6,556
11.06.2014, 11:21
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Wells77 Посмотреть сообщение
я на билдере работаю
Что-то в вашем примере я билдера не наблюдаю.
ИДЕ использует другой компилятор, в нем метатеги не поддерживаются.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 11:26  [ТС]
Я не кидал всю структуру, но если нада - кину щас
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 11:32  [ТС]
Вот проект на билдере
Вложения
Тип файла: rar Прелоадер.rar (432.5 Кб, 8 просмотров)
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 13:15  [ТС]
Нашел цитату одного умного человека на форуме каком-то насчет прелоадера в флешбилдере: ействительно мета-тег Frame не работает. Как решение можно использовать ключ компилятора называемый frame.
Т.е. тебе нужно просто вписать в FB окно Project - Properties - ActionScript Compiler в поле Additional compiler arguments строчку -frame two Main, где Main имя класса, который будет создан после загрузки прелоадера. Подробно про ключ frame написано здесь и здесь. Класс Preloader и связанный с ним класс Main должны находится в корне проекта. Иначе выходит ошибка.

Добавлено через 3 минуты
Правда всеравно ошибка выскакивает:
ReferenceError: Error #1065: Переменная Main не определена.
at global/flash.utils::getDefinitionByName()
at Preloader/startup()
at Preloader/loadingFinished()
at Preloader/checkFrame()
Добавлено через 1 час 21 минуту
Чето я не пойму, почему дефинишн не видит класс Мейн??? Они с прелоадером в одной папке лежат!
1
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
11.06.2014, 13:19
Цитата Сообщение от Wells77 Посмотреть сообщение
Чето я не пойму, почему дефинишн не видит класс Мейн??? Они с прелоадером в одной папке лежат!
А Вы уверены, что Вы его правильно используете? Покажите эту часть кода.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 13:36  [ТС]
Склоняюсь все к тому, что этот метод прелоадера не работает с билдером, а только с Дивелопером. Вобщем вот 2 класса моих:

Preloader.as - он же основной класс проекта по умолчанию:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package 
{
    import flash.display.*; 
    import flash.events.*;  
    import flash.text.TextField;
    import flash.utils.getDefinitionByName;
    
    [SWF(width=800,height=600,frameRate=30,backgroundColor=0xC254DE)]
    public class Preloader extends MovieClip 
    {
        private var _txt:TextField = new TextField();
        public function Preloader() 
        {
            if (stage) {
                stage.scaleMode = StageScaleMode.NO_SCALE;
                stage.align = StageAlign.TOP_LEFT;
                addChild(_txt);             
            }
            addEventListener(Event.ENTER_FRAME, checkFrame);
            loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);          
        }       
        
        private function progress(e:ProgressEvent):void 
        {                   
            _txt.text = loaderInfo.bytesLoaded.toString();
        }
        
        private function checkFrame(e:Event):void 
        {
            if (loaderInfo.bytesLoaded == loaderInfo.bytesTotal && currentFrame == totalFrames) 
            {               
                stop();
                loadingFinished();
            }
        }
        
        private function loadingFinished():void 
        {
            removeEventListener(Event.ENTER_FRAME, checkFrame);
            loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progress);           
            startup();
        }
        
        private function startup():void 
        {
            var mainClass:Class = getDefinitionByName("Main") as Class;
            stage.addChild(new mainClass() as DisplayObject);       
        }       
    }   
}
Main.as :
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
package
{
    import flash.display.MovieClip;
    
    public class Main extends MovieClip
    {
        public function Main()
        {
            var _dancer:Dancer=new Dancer();
            addChild(_dancer);
        }
    }
}
В билдере в настройках прописал ключик
-frame 1 Main
Вобщем вот еще сам проект на билдере:
Вложения
Тип файла: rar Прелоадер.rar (368.2 Кб, 5 просмотров)
0
11.06.2014, 13:48

Не по теме:

Цитата Сообщение от Wells77 Посмотреть сообщение
ействительно мета-тег Frame не работает. Как решение можно использовать ключ компилятора называемый frame
К сожалению не могу проверить, т.к. билдер сейчас не установлен.

0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 14:22  [ТС]
Вобщем что нарыл по этой проблеме: In case anyone reads this. It seems the problem was a compiler glitch in FB 4.5. Seems to be totally cleared up in 4.6...
Тоесть трабла скорее всего в самом компиляторе билдера именно версии 4.5. Попробую найти 4.6 проверить.
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
11.06.2014, 14:24
Цитата Сообщение от Wells77 Посмотреть сообщение
var mainClass:Class = getDefinitionByName("Main") as Class;
В Вашем случае Main нигде явно не указана в коде, поэтому компилятор не вкомпиливает ее код в проект. Для того, чтобы это обойти нужно где-нибудь явно указать это в проекте.
У себя в проекте я создаю экземпляр класса, в конструкторе которого создается массив:
ActionScript 3
1
2
3
4
5
6
7
8
9
public class LocRes
{
  public function LocRes()
  {
    var arr:Array = [
      Main
    ];
  }
}
после этого достаточно в любом месте проекта создать экземпляр данного класса
ActionScript 3
1
new LocRes();
Я делаю это первой строкой главного класса.
0
Модератор
 Аватар для TanaTiX
2939 / 1800 / 180
Регистрация: 19.02.2011
Сообщений: 6,556
11.06.2014, 14:31
Theoryofgames, а массив зачем? Достаточно просто
ActionScript 3
1
YouClass;
Ну и при таком подходе для Main-а теряется суть: он будет загружен в 1й кадр, а не во 2й, т.е. прелоадер будет работать не корректно.
0
 Аватар для Theoryofgames
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
11.06.2014, 15:22
Цитата Сообщение от TanaTiX Посмотреть сообщение
Theoryofgames, а массив зачем? Достаточно просто
да просто захотелось массив)
Цитата Сообщение от TanaTiX Посмотреть сообщение
Ну и при таком подходе для Main-а теряется суть: он будет загружен в 1й кадр, а не во 2й, т.е. прелоадер будет работать не корректно.
согласен, я просто рассказввал с чем связана ошибка getDefinitionByName
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 16:26  [ТС]
Такс, установил и Дивелопер и билдер 4.7. Теперь 2 вопроса возникло: как в иде выставить и где какой прогой редактировать скрипты? Ибо по умолчанию всеравно открывает классы 4.6 билдером? А по дивелоперу вопрос - почему ошибку выдает что не указано SDK и где его выставлять и как?
0
Модератор
 Аватар для TanaTiX
2939 / 1800 / 180
Регистрация: 19.02.2011
Сообщений: 6,556
11.06.2014, 16:28
Цитата Сообщение от Wells77 Посмотреть сообщение
А по дивелоперу вопрос - почему ошибку выдает что не указано SDK и где его выставлять и как?
Project>Properties>SDK там выбираете папку с SDK

Добавлено через 36 секунд
Цитата Сообщение от Wells77 Посмотреть сообщение
где какой прогой редактировать скрипты?
А чем дивелопер не устраивает?
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 16:32  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
А чем дивелопер не устраивает?
Еще незнаю - первый раз его установил - вот щас и хочу посмотреть где удобнее будет по старинке на билдере или в дивелопере.
0
11.06.2014, 16:33

Не по теме:

Wells77, удобнее всегда по старинке :)

0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 17:48  [ТС]
Вобщем в дивелопере привы боре SDK ничего нету только No SDK configured. Жму Manage - там нету никаких установленых SDK для выбора. Что делать?

Добавлено через 1 минуту
В 2 словах вообще SDK это что? Это какие-то библиотеки именно Adobe Flash Professional CS6?

Добавлено через 27 минут
Если я правильно понял, сдк - это компилятор и я могу использовать в дивелопере даже компилятор билдера, указав к нему путь?

Добавлено через 43 минуты
Вроде все разобрался, все запускается. Но почему дивелопер не видит классов мувиков из фла файла? Как подвязать правильно или где он должен находится в какой папке, чтоб дивелопер его нормально видел?
0
Модератор
 Аватар для TanaTiX
2939 / 1800 / 180
Регистрация: 19.02.2011
Сообщений: 6,556
11.06.2014, 17:48
Цитата Сообщение от Wells77 Посмотреть сообщение
Жму Manage - там нету никаких установленых SDK для выбора. Что делать?
Клацнуть по кнопке для выбора папки - и выбрать папку, где находится SDK, все остальное подтянется автоматом.
Цитата Сообщение от Wells77 Посмотреть сообщение
Это какие-то библиотеки именно Adobe Flash Professional CS6?
Нет, это относится к флеш-технологии, а не к Adobe Flash Professional.
Цитата Сообщение от Wells77 Посмотреть сообщение
я могу использовать в дивелопере даже компилятор билдера, указав к нему путь?
Да
1
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 17:53  [ТС]
Цитата Сообщение от Wells77 Посмотреть сообщение
Вроде все разобрался, все запускается. Но почему дивелопер не видит классов мувиков из фла файла? Как подвязать правильно или где он должен находится в какой папке, чтоб дивелопер его нормально видел?
Как?
0
Модератор
 Аватар для TanaTiX
2939 / 1800 / 180
Регистрация: 19.02.2011
Сообщений: 6,556
11.06.2014, 18:04
Wells77, так в уроке это есть. Из fla компилируется swc, а в нем уже все есть.
0
20 / 20 / 3
Регистрация: 16.10.2013
Сообщений: 295
11.06.2014, 18:14  [ТС]
Цитата Сообщение от TanaTiX Посмотреть сообщение
так в уроке это есть. Из fla компилируется swc, а в нем уже все есть.
Ага, тоесть при работе с дивелопером в любом случаэ нада с фла все символы заганять в swc, прикручивать до проекта дивелопера и тогда будет все видеть? А напрямую тянуть символы с библиотеки фла файла в дивелопере никак? Билдер напрямую так работает, но в билдере не срабатывает прелоадер так как в дивелопере - вот замкнутый круг
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.06.2014, 18:14

Заданы имена девочек. Определить, какие встречаются во всех классах, которые есть только в некоторых классах и какие не встречаются
Заданы имена девочек. Определить, какие из этих имен встречаются во всех классах данной параллели, которые есть только в некоторых классах...

Как реализовать один и тот же метод в разных классах при агрегации?
Даны два класса, в обоих используется метод Repaint(). Как должен быть выглядеть этот метод в обоих классах при агрегации? ...

Как правильно использовать operator= при наследовании в полиморфных и неполиморфных классах
Доброго времени суток! Изучаю книгу С. Прата "Язык программирования C++. Лекции и упражнения." Закончил 13-ю главу, посвященную...

Прелоадер
Доброго времени суток форумчане. У меня тут 2 вопроса. 1) Как сделать так чтобы выводились русские символы после работы php скрипта. 2)...

Прелоадер
Всем доброго времени суток. Не подскажите, как сделать простой прелоадер в приложении?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился с очень многими людьми,. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru