Прочитайте простые шаги этого Быстрого Подсказки, чтобы создать Минималистичный Песочный Замок с ActionScript.
Окончательный результат предварительного просмотра
Давайте посмотрим на конечный результат, к которому мы будем стремиться:
Шаг 1: Краткий обзор
Используя массивы и готовый квадратный мувиклип, мы создадим песочные часы, которые будут анимированы таймером.
Шаг 2: Настройте файл Flash
Запустите Flash и создайте новый документ Flash, установите размер сцены 400×250 пикселей и частоту кадров 24 кадра в секунду.
Шаг 3: Интерфейс
Это интерфейс, который мы будем использовать, квадраты на изображении — это фактически один синий квадрат MovieClip, экспортированный для использования с ActionScript, с именем связывания Square . Простая кнопка с именем startButton будет использоваться для создания и запуска часов.
Шаг 4: ActionScript
Создайте новый класс ActionScript (Cmd + N), сохраните файл как 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
package
{
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
public class Main extends Sprite
{
private var clockArray:Array = [15,13,11,9,7,3,1];//Stores the number of squares per line
private var top:Array = [];
private var container:Sprite = new Sprite();
private var containerCopy:Sprite = new Sprite();
private var timer:Timer = new Timer(1000);
private var counter:int = 0;
public function Main():void
{
startButton.addEventListener(MouseEvent.MOUSE_UP, buildClock);//a listener in the start button
}
private function buildClock(e:MouseEvent):void
{
startButton.removeEventListener(MouseEvent.MOUSE_UP, buildClock);
startButton.enabled = false;
var clockLength:int = clockArray.length;
/* this double for browses through the clock array length AND the value of each array element
creating 7 lines (length) of squares with 15, 13, 11(element value) and so on */
for (var i:int = 0; i < clockLength; i++)
{
for (var j:int = 0; j < clockArray[i]; j++)
{
var s:Square = new Square();
var sc:Square = new Square();
sx = 70.5 + (s.width * j) + (1 * j) + (i * (s.width + 1));
sy = 84.5 + (s.height + 1) * i;
sc.x = sx;
sc.y = sy;
if (i >= 5)
{
sx = 70.5 + (s.width * j) + (1 * j) + (i * ((s.width) + 1)) + (s.width * 2 — 4);
sc.x = sx;
}
container.addChild(s);
containerCopy.addChild(sc);
top.push(s);
sc.alpha = 0.2;
}
addChild(container);
containerCopy.x = 225;
containerCopy.y = 247;
containerCopy.rotation = 180;
addChild(containerCopy);
}
timer.addEventListener(TimerEvent.TIMER, startClock);
timer.start();
}
/* this function executes every second, it changes the alpha of the corresponding square to make the sand effect.
when the time is done stops the timer and calls a function */
private function startClock(e:TimerEvent):void
{
container.getChildAt(counter).alpha = 0.2;
containerCopy.getChildAt(counter).alpha = 1;
counter++;
//60 seconds
if (counter >= 59)
{
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, startClock);
timeComplete();
}
}
private function timeComplete():void
{
//do something here
}
}
}
|
Вы можете настроить таймер и значение счетчика, чтобы увеличить или уменьшить продолжительность песочных часов.
Шаг 5: Класс документа
Не забудьте добавить имя класса в поле « Класс» в разделе « Публикация » на панели « Свойства» .
Вывод
Почему бы не использовать этот SandClock, чтобы сделать ваше приложение или игру приятнее?
Надеюсь, вам понравился этот урок, спасибо за чтение!