Главная Флеш
E-mail Печать PDF

В данной статье я покажу, как работать с массивами в ActionScripte3, опишу существующие методы и свойства для работы с массивами. Отличительной особенностью данной статья является, то, что для всех методов и свойств я приведу поясняющие примеры, которые позволят понять и усвоить изложенный материал.

Свойства

constructor - возвращает ссылку на объект класса или функцию конструктора для данного экземпляра объекта.

1
2
3
4
5
6
7
8
9
		public function arrayClass() {
trace("Пример использования свойства constructor");
exampleConstructo();
}
 
public function exampleConstructo() {
trace("Ссылка "+arrayClass.prototype.constructor);
trace(arrayClass.prototype.constructor == arrayClass);
}

Результат

1
2
3
Пример использования свойства constructor
Ссылка [class arrayClass]
true

Читать далее Добавить комментарий
 
E-mail Печать PDF

В этой статье мы  расcмотрим работу с такими событиями как MouseEvent.CLICK, MouseEvent.DOUBLE_CLICK, MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_OUT, MouseEvent.MOUSE_OVER, MouseEvent.MOUSE_UP, MouseEvent.MOUSE_WHEEL, MouseEent.MOUSE_MOVE

Вначале мы создам пустой файл EventExample.fla и в свойствах файла укажу класс MouseEventExample.as который будет инициализироватся при старте флеша. Указанный класс я создам в пакет event.

Код класса MouseEventExample.as

1
2
3
4
5
6
7
8
9
10
11
12
13
package event {
import flash.display.Sprite;
 
public class MouseEventExample extends Sprite {
private var size:uint = 100;
private var bgColor:uint = 0xFFCC00;
 
public function MouseEventExample() {
var child:ChildSprite = new ChildSprite();
addChild(child);
}
}
}
Читать далее Комментарии (2)
 
E-mail Печать PDF

Продолжаю активно осваивать флешь, и в этой статья я приведу пример создания часов на ActionScript 3. Для начала нам необходимо создать файл CreatedClock.fla fla и пакет к нему Clock в котором создадим класс ClockName, в котором будет описан на языке ActionScript весь исполнительный код. Для инициализации класса  ClockName в свойствах документа CreatedClock.fla укажем класс, который будет стартовать при открытии документа clock.ClockName

Эта запись означает, что класс ClockName находится в папке clock. Структура папок у меня получилась следующая:

1
2
3
-CreatedClock.fla
-clock
--ClockName.as

Вначале создадим круг 100X100 пикселей по которому будет передвигается наша стрелочка. Формат круга не имеет значение, пускай это будет обычный растровый рисунок.

 
E-mail Печать PDF

Примитивные самолетики на flash

Базовый класс AirRaid. Инициализация основного алгоритма.

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
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package {
	import flash.display.*;
	import flash.events.*;
	import flash.utils.Timer;
	import flash.text.TextField;
 
	public class AirRaid extends MovieClip {
		private var aagun:AAGun;
		private var airplanes:Array;
		private var bullets:Array;
		public var leftArrow, rightArrow:Boolean;
		private var nextPlane:Timer;
		private var shotsLeft:int;
		private var shotsHit:int;
 
		public function startAirRaid() {
			// init score
			shotsLeft = 20;
			shotsHit = 0;
			showGameScore();
 
			// create gun
			aagun = new AAGun();
			addChild(aagun);
 
			// create object arrays
			airplanes = new Array();
			bullets = new Array();
 
			// listen for keyboard
			stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
			stage.addEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
 
			// look for collisions
			addEventListener(Event.ENTER_FRAME,checkForHits);
 
			// start planes flying
			setNextPlane();
		}
 
		public function setNextPlane() {
			nextPlane = new Timer(1000+Math.random()*1000,1);
			nextPlane.addEventListener(TimerEvent.TIMER_COMPLETE,newPlane);
			nextPlane.start();
		}
 
		public function newPlane(event:TimerEvent) {
			// random side, speed and altitude
			if (Math.random() > .5) {
				var side:String = "left";
			} else {
				side = "right";
			}
			var altitude:Number = Math.random()*50+20;
			var speed:Number = Math.random()*150+150;
 
			// create plane
			var p:Airplane = new Airplane(side,speed,altitude);
			addChild(p);
			airplanes.push(p);
 
			// set time for next plane
			setNextPlane();
		}
 
		// check for collisions
		public function checkForHits(event:Event) {
			for(var bulletNum:int=bullets.length-1;bulletNum>=0;bulletNum--){ 
				for (var airplaneNum:int=airplanes.length-1;airplaneNum>=0;airplaneNum--) {
					if (bullets[bulletNum].hitTestObject(airplanes[airplaneNum])) {
						airplanes[airplaneNum].planeHit();
						bullets[bulletNum].deleteBullet();
						shotsHit++;
						showGameScore();
						break;
					}
				}
			}
 
			if ((shotsLeft == 0) && (bullets.length == 0)) {
				endGame();
			}
		}
 
		// key pressed
		public function keyDownFunction(event:KeyboardEvent) {
			if (event.keyCode == 37) {
				leftArrow = true;
			} else if (event.keyCode == 39) {
				rightArrow = true;
			} else if (event.keyCode == 32) {
				fireBullet();
			}
		}
 
		// key lifted
		public function keyUpFunction(event:KeyboardEvent) {
			if (event.keyCode == 37) {
				leftArrow = false;
			} else if (event.keyCode == 39) {
				rightArrow = false;
			}
		}
 
		// new bullet created
		public function fireBullet() {
			if (shotsLeft <= 0) return;
			var b:Bullet = new Bullet(aagun.x,aagun.y,-300);
			addChild(b);
			bullets.push(b);
			shotsLeft--;
			showGameScore();
		}
 
		public function showGameScore() {
			showScore.text = String("Score: "+shotsHit);
			showShots.text = String("Shots Left: "+shotsLeft);
		}
 
		// take a plane from the array
		public function removePlane(plane:Airplane) {
			for(var i in airplanes) {
				if (airplanes[i] == plane) {
					airplanes.splice(i,1);
					break;
				}
			}
		}
 
		// take a bullet from the array
		public function removeBullet(bullet:Bullet) {
			for(var i in bullets) {
				if (bullets[i] == bullet) {
					bullets.splice(i,1);
					break;
				}
			}
		}
 
		// game is over, clear movie clips
		public function endGame() {
			// remove planes
			for(var i:int=airplanes.length-1;i>=0;i--) {
				airplanes[i].deletePlane();
			}
			airplanes = null;
 
			aagun.deleteGun();
			aagun = null;
 
			stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);
			stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);
			removeEventListener(Event.ENTER_FRAME,checkForHits);
 
			nextPlane.stop();
			nextPlane = null;
 
			gotoAndStop("gameover");
		}
 
	}
}
 
 
E-mail Печать PDF

Пример создания сложного пазла

 
E-mail Печать PDF

Моя любимая игра, которая была на тетрисе

 
E-mail Печать PDF

Пример создания простого пазла

 
E-mail Печать PDF

Простое движение

Движение до условных границ

Движение по условной границе

 
E-mail Печать PDF

Моя первая игра на флеше. Черный квадрат.

Первый кадр

1
2
3
4
5
6
7
8
9
10
var gameScore:int;
var gameTime:String;
 
playButton.addEventListener(MouseEvent.CLICK, startgame);
 
function startgame(evemt:MouseEvent) {
gotoAndStop("playgame");
}
 
stop();
 


Авторизация

Nice Ajax Poll

Какое из моих расширений самое лучшее?

Статистика



Реклама