Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
1
AS 3.0

Как правильно импортировать отдельный файл скриптов (*.as) в проект?

31.10.2012, 20:45. Показов 2178. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как это сделать правильно? Делал я так:

1. Создал файл move.as. Его содержание (это экспериментальный, на код не обращайте внимание):

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var _pic:pic = new pic();
 
addChild(_pic);
 
_pic.x = 50;
_pic.y = 50;
 
function move() {
    if (_pic.x == 50) {
        _pic.x = 100;
    }
    else {
        _pic.x = 50;
    }
}
 
setInterval(move, 100);
2. Подключил его, указав имя файла тут (показано на скрине):

Как правильно импортировать отдельный файл скриптов (*.as) в проект?


Выбивает след. ошибки:

1180: Call to a possibly undefined method addChild.
1180: Call to a possibly undefined method setInterval.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2012, 20:45
Ответы с готовыми решениями:

Как правильно импортировать проект?
Я нашел проект похожие на мою. По этой ссылке...

Как правильно импортировать ссылку в проект и ее пространство имен?
Добавляю в программу ссылки на dll ссылки -> добавить ссылку... -> обзор.. -> выбираю dll -> ok...

Как правильно сделать разметку и скопировать стили в отдельный файл?
<div id="indexLayer4"...

Как импортировать в проект scriptcontrol?
Всем привет. Как использовать scriptcontrol на vb net? Нашел вот такой скрипт. Dim sc As...

12
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
31.10.2012, 22:23 2
ошибки свяаны скорее всего с тем, что вы не импортировали следующие библиотеки в начале класса move:
ActionScript 3
1
2
import flash.display.MovieClip;
import flash.utils.setInterval;
P.S. названия классов принято писать с большой буквы
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
31.10.2012, 23:42 3
Цитата Сообщение от Theoryofgames Посмотреть сообщение
названия классов принято писать с большой буквы
Абсолютно верно.

Joker555, указанный код не является классом, более того, в предоставленном коде нет ни малейшего упоминания о классе (class). Тогда же когда будет создан класс, помимо импортов, необходимо учесть, что бы документ-класс был наследником Sprite-а или унаследованного от него класса.
1
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
01.11.2012, 01:16  [ТС] 4
Цитата Сообщение от TanaTiX Посмотреть сообщение
Абсолютно верно.

Joker555, указанный код не является классом, более того, в предоставленном коде нет ни малейшего упоминания о классе (class). Тогда же когда будет создан класс, помимо импортов, необходимо учесть, что бы документ-класс был наследником Sprite-а или унаследованного от него класса.
покажите пример пожалуйста. и объясните что такое спрайты? Не нашел инфы в инете.
0
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
01.11.2012, 10:35 5
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
package
{   
    import flash.display.Sprite;
    import flash.utils.setInterval;
    
    public class Move extends Sprite // здесь показано, что класс наследует от класса Sprite
    {
        
        public function Move()
        {
            trace('Это конструктор класса. То, что тут находится будет выполняться при создании экземпляра данного класса.');
            var _pic:pic = new pic();
            addChild(_pic);
            _pic.x = 50;
            _pic.y = 50;
            setInterval(move, 100);
        }
 
        private function move() : void
        {
            if (_pic.x == 50) _pic.x = 100;
            else _pic.x = 50;
        }
    }
}
1
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
01.11.2012, 11:43  [ТС] 6
Theoryofgames большое спасибо за подробный пример!

Добавлено через 56 минут
1120: Access of undefined property _pic. Как сделать переменную глобальной?

Добавлено через 7 минут
Так же, вот что ранее вылезаете: 1046: Type was not found or was not a compile-time constant: Event.

Это из кода прапрадеда.
0
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
01.11.2012, 13:43 7
Цитата Сообщение от Joker555 Посмотреть сообщение
1120: Access of undefined property _pic. Как сделать переменную глобальной?
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
package
{   
    import flash.display.Sprite;
    import flash.utils.setInterval;
    
    public class Move extends Sprite // здесь показано, что класс наследует от класса Sprite
    {
        private var _pic:pic = new pic();
        
        public function Move()
        {
            trace('Это конструктор класса. То, что тут находится будет выполняться при создании экземпляра данного класса.');
            addChild(_pic);
            _pic.x = 50;
            _pic.y = 50;
            setInterval(move, 100);
        }
 
        private function move() : void
        {
            if (_pic.x == 50) _pic.x = 100;
            else _pic.x = 50;
        }
    }
}
Цитата Сообщение от Joker555 Посмотреть сообщение
Так же, вот что ранее вылезаете: 1046: Type was not found or was not a compile-time constant: Event.
ActionScript 3
1
import flash.events.Event;
0
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
01.11.2012, 14:25  [ТС] 8
Цитата Сообщение от Theoryofgames Посмотреть сообщение

ActionScript 3
1
import flash.events.Event;
Да, вот читал об этом, но мне ошибку выбило. Сейчас попробую в пакедже вбить это.

Добавлено через 5 минут
Ппц, опять куча ошибок. Вот код прелоадера (1кадр):

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
51
52
/*
устанавливаем значение переменных
*/
var w:uint = 200; // ширина прелоадера
var h:uint = 10; // высота прелоадера
var colorFon:uint = 0xcccccc; // цвет фона прелоадера
var color:uint = 0x333333; // цвет индикатора загрузки
/*
останавливаем воспроизведение флеш-ролика в первом кадре
*/
stop();
/*
рисуем контейнер прелоадера
*/
var preloaderContainer:Sprite = new Sprite();
preloaderContainer.graphics.lineStyle(1,color,1);
preloaderContainer.graphics.beginFill(colorFon,1);
preloaderContainer.graphics.drawRect(0,0,w,h);
preloaderContainer.graphics.endFill();
addChild(preloaderContainer);
/*
помещаем наш прелоадер на середину флеш-ролика
*/
preloaderContainer.x = (stage.stageWidth - w) / 2;
preloaderContainer.y = (stage.stageHeight - h) / 2;
/*
рисуем индикатор загрузки
*/
var band:Sprite = new Sprite();
band.graphics.beginFill(color,1);
band.graphics.drawRect(0,0,w,h);
band.graphics.endFill();
preloaderContainer.addChild(band);
/*
в каждом новом кадре проверяем объём загруженной информации и на основе этой информации изменяем индикатор загрузки
*/
addEventListener(Event.ENTER_FRAME, onEnterFrames);
function onEnterFrames(event:Event)
{
    var bLoaded:uint = loaderInfo.bytesLoaded;
    var bTotal:uint = loaderInfo.bytesTotal;
    band.scaleX = bLoaded / bTotal;
    /*
    если флеш-ролик загружен полностью, то удаляем сам прелоадер и переходим на следующий кадр
    */
    if (bLoaded >= bTotal)
    {
        removeChild(preloaderContainer);
        removeEventListener(Event.ENTER_FRAME, onEnterFrames);
        nextFrame(); // или gotoAndPlay(номер_кадра);
    }
}
Вот ошибки:
1180: Call to a possibly undefined method nextFrame.
1180: Call to a possibly undefined method addFrameScript.
1120: Access of undefined property _pic.
1120: Access of undefined property _pic.
1120: Access of undefined property _pic.
1180: Call to a possibly undefined method stop.

А это Move.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
package
{   
    import flash.display.Sprite;
    import flash.utils.setInterval;
    import flash.events.Event;
    
    public class Move extends Sprite // здесь показано, что класс наследует от класса Sprite
    {
        
        public function Move()
        {
            trace('Это конструктор класса. То, что тут находится будет выполняться при создании экземпляра данного класса.');
            var _pic:pic = new pic();
            addChild(_pic);
            _pic.x = 50;
            _pic.y = 50;
            setInterval(move, 100);
        }
 
        private function move() : void
        {
            if (_pic.x == 50) _pic.x = 100;
            else _pic.x = 50;
        }
    }
}
0
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
01.11.2012, 14:54 9
Цитата Сообщение от Joker555 Посмотреть сообщение
1180: Call to a possibly undefined method nextFrame.
1180: Call to a possibly undefined method addFrameScript.
Эти возникают из-за того, что у вас либо не импортирован класс Sprite, либо класс, который использует данный метод не является наследником Sprita.
Цитата Сообщение от Joker555 Посмотреть сообщение
1120: Access of undefined property _pic.
1120: Access of undefined property _pic.
1120: Access of undefined property _pic.
В сообщении выше я написал исправленный вариант, в котором переменная _pic объявлена на уровне класса.
Цитата Сообщение от Joker555 Посмотреть сообщение
1180: Call to a possibly undefined method stop.
Эта возникает из-за того, что у вас либо не импортирован класс MovieClip, либо класс, который использует данный метод не является наследником MovieClipa.

P.S. MovieClip наследует от Sprite
1
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
01.11.2012, 20:01  [ТС] 10
Сейчас разбираюсь сам на примере прелоадера ас 3,0. Один вопрос тока. Что делает super() ?
0
Модератор
2904 / 1763 / 179
Регистрация: 19.02.2011
Сообщений: 6,477
01.11.2012, 22:00 11
Цитата Сообщение от Theoryofgames Посмотреть сообщение
Эти возникают из-за того, что у вас либо не импортирован класс Sprite, либо класс, который использует данный метод не является наследником Sprita.
Нет, это связано с тем, что у спрайтов только один кадр, а, следовательно, нет методов nextFrame, addFrameScript и пр.

Цитата Сообщение от Joker555 Посмотреть сообщение
Что делает super() ?
Вызов метода класса, от которого наследуется текущий класс. Бывает очень полезным при переопределении методов.
1
10 / 10 / 1
Регистрация: 25.10.2012
Сообщений: 364
02.11.2012, 01:18  [ТС] 12
Спасибо, дальше попробую разбираться сам. Уже прогресс есть)) Отпишу об успехах.
0
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
02.11.2012, 16:38 13
Цитата Сообщение от TanaTiX Посмотреть сообщение
Нет, это связано с тем, что у спрайтов только один кадр, а, следовательно, нет методов nextFrame, addFrameScript и пр.

Не по теме:

да, написал, не подумав

0
02.11.2012, 16:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2012, 16:38
Помогаю со студенческими работами здесь

как импортировать свой проект в include
Я создал свой проект, .h и , .cpp файл, хочу подключать их также как и стандартные классы QT типа...

Как импортировать проект из GitLab в IDEA?
Взяли на практику как Java-Junior, ура! Дали ноут со свежепереустановленной Windows 10. Первое...

Как импортировать zedgraph в проект и на ToolBox
скачал библиотеку, распаковал. Создал проект винформс. Через добавить ссылки - добавил ссылку на...

Как импортировать скаченный проект в андроид студио
Просто File - Open и выбрать на компьютере?? А как узнать версию андроида на которой...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru