flex雪花効果
20925 ワード
私はflexを学んでこの数日[達人は見ないでください]
スノーコンテナ
雪のオブジェクト
1
package {
2
import Snow.Snow;
3
4
import flash.display.Sprite;
5
6
public class Test extends Sprite
7
{
8
public
function
Test()
9
{
10
var
snow:Snow
=
new
Snow();
11
stage.addChild(snow);
12
}
13
}
14
}
スノーコンテナ
1
package Snow
2
{
3
import flash.display.Sprite;
4
import flash.events.Event;
5
6
public class Snow extends Sprite
7
{
8
public
function
Snow()
9
{
10
11
for
(
var
i:
int
=
0
;i
<
1000
;i
++
)
12
{
13
addSnow();
14
}
15
}
16
17
private
function
addSnow():
void
18
{
19
var
sprite: SnowMeta
=
new
SnowMeta();
20
21
sprite.x
=
Math.random()
*
1000
;
22
sprite.y
=
Math.random()
*
400
;
23
24
addChild(sprite);
25
}
26
}
27
}
雪のオブジェクト
1
package Snow
2
{
3
import flash.events.Event;
4
import flash.text.TextField;
5
import flash.text.TextFormat;
6
7
public class SnowMeta extends TextField
8
{
9
private
var
step:
int
=
1
;
10
11
public
function
SnowMeta()
12
{
13
addEventListener(Event.ADDED_TO_STAGE,activection);
14
addEventListener(Event.REMOVED_FROM_STAGE , desactivection);
15
}
16
17
private
function
activection(e:Event):
void
18
{
19
var
tformat :TextFormat
=
new
TextFormat();
20
21
tformat.color
=
0xffffff
;
22
defaultTextFormat
=
tformat;
23
text
=
"
.
"
;
24
25
scaleX
*=
Math.round(Math.random()
*
3
);
26
scaleY
*=
Math.round(Math.random()
*
3
);
27
28
step
=
scaleY;
29
30
addEventListener(Event.ENTER_FRAME,frame);
31
}
32
33
private
function
desactivection(e:Event):
void
34
{
35
removeEventListener(Event.ADDED_TO_STAGE,activection);
36
removeEventListener(Event.REMOVED_FROM_STAGE,desactivection);
37
removeEventListener(Event.ENTER_FRAME,frame);
38
}
39
40
private
function
frame(e:Event):
void
41
{
42
if
(x
>
Math.random()
*
1000
)
43
{
44
x
-=
step;
45
}
46
else
if
(x
<=
0
)
47
{
48
x
=
1000
;
49
}
50
else
if
(Math.round(Math.random()
*
2
)
==
2
)
51
{
52
x
+=
step;
53
}
54
else
55
{
56
x
-=
step;
57
}
58
59
//
60
//
x-=3;
61
62
y
+=
1
;
63
64
if
(y
>
400
)
65
y
=
0
;
66
}
67
}
68
}