Статьи

Краткое введение: компоненты Flash NumericStepper, Slider и ProgressBar

Эти три компонента имеют дело с числами в диапазонах. В этом кратком совете мы рассмотрим, как их использовать.

Числовой шагер позволяет вам установить число в пределах определенного диапазона, используя клавиатуру или нажимая клавиши со стрелками; ползунок позволяет перетаскивать большой палец, чтобы выбрать число из диапазона более графическим способом, а индикатор выполнения показывает, как далеко через диапазон находится определенное число.


В предварительном просмотре SWF вы увидите две метки, два NumericSteppers, две кнопки, синий круг и ползунок. NumericSteppers используются для установки диапазона чисел, из которых мы будем генерировать случайное число. При нажатии кнопки метка изменится, чтобы отобразить случайное число, которое было сгенерировано. Ползунок используется для изменения размера круга; перетаскивание ползунка вправо увеличивает размер круга, а перетаскивание влево уменьшает размер круга.

Другая кнопка используется для загрузки SWF; нажмите кнопку, и на сцену будет добавлен индикатор прогресса, чтобы отобразить прогресс загрузки. Когда загрузчик загружает свое содержимое, он добавляется на сцену, а ProgressBar удаляется.


Откройте новый документ Flash и установите следующие свойства

  • Размер документа: 550 * 360
  • Цвет фона: #FFFFFF

Откройте окно компонентов, перейдя в Меню> Окно> Компоненты или нажав CTRL + F7.

Перетащите две кнопки, две метки, два числовых степпера и один слайдер на сцену.

числовой шагер, индикатор выполнения, компоненты слайдера Flash

На панели «Свойства» присвойте первой метке имя экземпляра «StepperLabel».

(Если панель свойств не отображается, перейдите в Меню> Окно> Компоненты или нажмите CTRL + F3)

числовой шагер, индикатор выполнения, компоненты слайдера Flash

Установите метку X на 19, а Y на 9.

Используя панель свойств:

  • Дайте второй метке имя экземпляра «sliderLabel» X: 19, Y: 140
  • Дайте первому NumericStepper имя экземпляра «fromStepper» X: 19, Y: 144
  • Дайте второму NumericStepper имя экземпляра «toStepper» x: 130, Y: 44
  • Дайте Слайдеру имя экземпляра «Слайдер» X: 19, Y: 223
  • Дайте первой кнопке имя экземпляра «randomNumButton» X: 60, Y: 82
  • Дайте второй кнопке имя экземпляра «loaderButton

Нарисуйте синий круг с помощью овального инструмента (удерживайте клавишу shift при перетаскивании, чтобы он соответствовал кругу) и преобразуйте его в мувиклип, выбрав его правой кнопкой мыши, а затем выбрав «Преобразовать в символ». Дайте ему имя экземпляра «theCircle».


Создайте новый файл ActionScript и дайте ему имя Main.as

Мы будем объявлять наши компоненты в Main.as, поэтому нам нужно отключить «автоматическое объявление этапов». Преимущество этого состоит в том, что вы получаете подсказку кода для экземпляра.

Перейдите в Меню> Файл> Настройки публикации

Нажмите « Настройки» рядом со сценарием [ActionScript 3].

числовой шагер, индикатор выполнения, компоненты слайдера Flash

Снимите флажок «автоматически объявлять экземпляры сцены»

числовой шагер, индикатор выполнения, компоненты слайдера Flash

В Main.as откройте объявление пакета и импортируйте классы, которые мы будем использовать.

Добавьте следующее в Main.as.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package
{
     
    //Our Onstage Componets
    import fl.controls.NumericStepper;
    import fl.controls.Slider;
    import fl.controls.ProgressBar;
    import fl.controls.Label;
    import fl.controls.Button;
     
    //Needed to extend the Class
    import flash.display.MovieClip;
 
    //Needed to autosize our Label’s Text
    import flash.text.TextFieldAutoSize;
     
    //The events we’l need in this project
    import flash.events.MouseEvent;
    import flash.events.Event;
    import fl.events.SliderEvent;
    import flash.events.ProgressEvent;
 
 
    //Needed to load the .swf file
    import flash.net.URLRequest;
    import flash.display.Loader;

Давайте добавим Класс, сделаем так, чтобы он расширял Movie Clip, и настроим нашу функцию конструктора.

Добавьте следующее в Main.as:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Main extends MovieClip
{
 
    public var StepperLabel:Label;
    public var sliderLabel:Label;
    public var fromStepper:NumericStepper;
    public var toStepper:NumericStepper;
    public var randomNumButton:Button;
    public var loaderButton:Button;
    public var slider:Slider;
    public var progressBar:ProgressBar;
    public var theLoader:Loader;
 
    public var theCircle:Circle;
 
    public function Main()
    {
 
            setupLabels();
            setupSteppers();
            setupButtons();
            setupSlider();
    }

Здесь мы определяем функции, которые используются в нашем конструкторе.

В функции setupLabels() мы выполняем некоторые базовые настройки для наших ярлыков, используя autoSize чтобы каждый ярлык автоматически autoSize размер, чтобы сохранить весь переданный ему текст.

В функции setupSteppers () мы устанавливаем свойства минимума и максимума наших степперов . Они используются, чтобы ограничить число доступных в степпере. Мы не используем прослушиватель событий с ползунками здесь (хотя вы можете использовать Event.CHANGE для ползунков, чтобы определить, когда их значение изменяется).

В setupButtons() мы добавляем наш текст к кнопкам через свойство label и добавляем прослушиватели событий для кнопок.

В setupSliders() мы устанавливаем minimum и maximum для значений ползунков. snapInterval устанавливает, насколько изменяется значение ползунка при перетаскивании; здесь мы используем .1. Для liveDragging установлено значение true так что значение ползунка доступно при перетаскивании — если оно установлено на false мы не сможем получить это значение, пока пользователь не перестанет перетаскивать. Наконец, мы добавляем слушателя к слайдеру.

Добавьте следующее в Main.as:

01
02
03
04
05
06
07
08
09
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
private function setupLabels():void
{
    StepperLabel.text = «Click Button For A Random Number»;
    //Autosizes the label to hold all the text
    StepperLabel.autoSize = StepperLabel.autoSize = TextFieldAutoSize.LEFT;
 
    sliderLabel.text = «Drag Slider To Change Circle Size»;
    //Autosizes the label to hold all the text
    sliderLabel.autoSize = sliderLabel.autoSize = TextFieldAutoSize.LEFT;
}
 
private function setupSteppers():void
{
    //Minumum values of the steppers
    fromStepper.minimum = 0;
    toStepper.minimum = 1;
    //Maximum values of the steppers
    fromStepper.maximum = 99;
    toStepper.maximum = 100;
    //Set the steppers value here
    fromStepper.value = 0;
    toStepper.value = 45;
}
 
private function setupButtons():void
{
    randomNumButton.label = «Click»;
    randomNumButton.addEventListener(MouseEvent.CLICK,getrandomNumer);
    loaderButton.label = «Load Swf»;
    loaderButton.addEventListener(MouseEvent.CLICK,loadSwf);
}
 
private function setupSlider():void
{
    //Minimum and maximum values for the slider
    slider.minimum = 1;
    slider.maximum = 3;
    //This set how much the slider «increments» by
    slider.snapInterval = .1;
    //liveDragging means the steppers value are available while dragging
    //if set to false we not not get the value till we stopped dragging
    slider.liveDragging = true;
    slider.addEventListener(SliderEvent.CHANGE,scaleCircle);
}

Здесь мы добавляем остальные функции.

В функции getrandomNumber() мы вызываем другую функцию generateRandomNumber() , которая getrandomNumber() из учебника по Activetuts + Карлоса Янеза. Идите и посмотрите этот учебник, чтобы увидеть, как это работает!

Функция scaleCircle() получает значение ползунка и устанавливает scaleX и scaleY для theCircle Circle. scaleY и scaleY используются для изменения размера (масштаба) scaleY ролика.

Функция loadSwf() устанавливает Loader, который мы используем для загрузки внешнего SWF. Затем мы добавляем прослушиватель событий в contentLoaderInfo загрузчика; contentLoaderInfo содержит информацию о том, что загружает загрузчик (здесь SWF).

Затем мы устанавливаем ProgressBar и добавляем его на сцену. Мы устанавливаем source ProgressBar в
contentLoaderInfo для Loader, и так как contentInfoLoader содержит информацию о том, что загружает загрузчик (включая bytesLoaded и bytesTotal ), именно так ProgressBar может обновлять себя, чтобы отразить, сколько загружено SWF-файла.

Функция finishedLoading() устанавливает x- и y-позицию содержимого загрузчика (т.е. SWF), а затем добавляет его на сцену. На данный момент мы закончили с ProgressBar, поэтому мы удаляем его со сцены.

Затем мы закрываем класс и пакет.

01
02
03
04
05
06
07
08
09
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
53
54
55
56
57
    private function getrandomNumer(e:Event):void
    {
        //Here we pass in two numbers (the steppers’ values)
        generateRandomNumber(fromStepper.value,toStepper.value);
    }
 
    private function generateRandomNumber(minNum:Number, maxNum:Number):void
    {
        //Holds the generated number
        var randomNumber = (Math.floor(Math.random() * (maxNum — minNum + 1)) + minNum);
        //Here we cast random number to a string so we can use it in the labels text
        StepperLabel.text = «Your random number is » + String(randomNumber);
    }
 
    private function scaleCircle(e:Event):void
    {
        //scaleX and scaleY increase or decrease a MovieClip’s size
        //here we use the slider’s value from «1-3»
        theCircle.scaleX = e.target.value;
        theCircle.scaleY = e.target.value;
    }
 
    private function loadSwf(e:Event):void
    {
        theLoader = new Loader();
        theLoader.x = 319.00;
        theLoader.y = 31.00;
 
        theLoader.load(new URLRequest(«dummy.swf»));
         
        //Here we get the loader’s contentLoaderInfo which is what the loader
        //is loading (here a swf)
        theLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishedLoading);
 
        progressBar = new ProgressBar();
        progressBar.x = 323;
        progressBar.y = 244;
        addChild(progressBar);
        //The progress bar’s source is set to the loader’s contentLoaderInfo
        //contentLoaderInfo holds the information about the SWF’s bytesLoaded/bytesTotal
        progressBar.source = theLoader.contentLoaderInfo;
    }
 
    public function finishedLoading(e:Event):void
    {
        //Here we set the loader content.x and .y
        //IE the swf’s .x and .y
        theLoader.content.x=290;
        theLoader.content.y=20;
        //The we add the loaders content IE the swf
        addChild(theLoader.content);
        //Since it loader is done loading we don’t need the progress bar anymore
        //So we remove it
        removeChild(progressBar);
        }
   } //close out the class
}//close out the package

Повторное использование компонентов — это отличный способ добавить функциональность к вашим Flash-фильмам без необходимости создавать их с нуля.

На панели «Параметры компонентов» вы увидите компоненты, которые вы можете проверить и выбрать определенные свойства.

числовой шагер, индикатор выполнения, компоненты слайдера Flash

Изображение выше для компонента NumericStepper

Свойства для компонента NumericStepper следующие:

  • enabled : логическое значение, которое указывает, может ли компонент принимать пользовательский ввод
  • максимум : максимальное значение в последовательности числовых значений.
  • минимум : минимальное значение в последовательности числовых значений.
  • stepSize : ненулевое число, которое описывает единицу изменения между значениями.
  • значение : текущее значение компонента NumericStepper.
  • visible : логическое значение, которое указывает, является ли экземпляр компонента видимым

Свойства для Слайдера следующие

  • направление : направление ползунка. Допустимые значения: SliderDirection.HORIZONTAL и SliderDirection.VERTICAL .
  • enabled : логическое значение, которое указывает, может ли компонент принимать пользовательский ввод
  • максимум : максимально допустимое значение на экземпляре компонента Slider.
  • минимум : минимально допустимое значение на экземпляре компонента Slider.
  • snapInterval : приращение, на которое значение увеличивается или уменьшается, когда пользователь перемещает ползунок.
  • tickInterval : интервал между отметками относительно максимального значения компонента.
  • значение : текущее значение компонента Slider.
  • visible : логическое значение, которое указывает, является ли экземпляр компонента видимым

Свойства для ProgressBar следующие

  • направление : указывает направление заполнения для индикатора выполнения. Значение ProgressBarDirection.RIGHT указывает, что индикатор выполнения заполняется слева направо. Значение ProgressBarDirection.LEFT указывает, что индикатор выполнения заполняется справа налево.
  • enabled : логическое значение, которое указывает, может ли компонент принимать пользовательский ввод
  • mode : Получает или задает метод, который будет использоваться для обновления индикатора выполнения. Для этого свойства допустимы следующие значения: ProgressBarMode.EVENT , ProgressBarMode.POLLED , ProgressBarMode.MANUAL
  • source : ссылка на загружаемый контент, для которого ProgressBar измеряет ход операции загрузки.
  • visible : логическое значение, которое указывает, является ли экземпляр компонента видимым

Чтобы увидеть свойства ярлыков и кнопок, обязательно ознакомьтесь с кратким советом по ярлыкам и кнопкам .

Файлы справки также являются отличным местом для получения дополнительной информации о свойствах компонентов, которые можно установить на панели параметров.

Спасибо за чтение и будьте внимательны к новым компонентам!