root/as3/Thread/trunk/samples/autoShowHide/Sample.as

リビジョン 641, 1.9 kB (コミッタ: yossy, コミット時期: 4 年 前)

Thread: branches/soumen を trunk にマージ

Line 
1 package
2 {
3         import flash.display.DisplayObject;
4         import flash.display.Shape;
5         import flash.display.Sprite;
6
7         import org.libspark.thread.Thread;
8         import org.libspark.thread.EnterFrameThreadExecutor;
9
10         /**
11          * このサンプルでは「ロールオーバーするとフェードしながら現れて、しばらくマウスを動かさずに放っておくか、
12          * ロールアウトするとフェードしながら消える、よくあるアレ」をスレッドを使って実現します。
13          */
14         [SWF(width=300, height=300, frameRate=30, backgroundColor=0xffffff)]
15         public class Sample extends Sprite
16         {
17                 public function Sample()
18                 {
19                         // スレッドを実行するには、まずはじめに Thread#initialize をコールし、スレッドライブラリを初期化します
20                         // Thread#initialize には、IThreadExecutor のインスタンスを渡します
21                         // ここでは EnterFrameExecutor を渡し、毎フレームスレッドが実行されるようにします
22                         Thread.initialize(new EnterFrameThreadExecutor());
23                        
24                         // ターゲットとなるシェイプを作ります
25                         var border:DisplayObject = createBorder();
26                         var shape:Sprite = createShape();
27                         shape.x = border.x = 100;
28                         shape.y = border.y = 105;
29
30                         // シェイプをコントロールするためのスレッドを起動します
31                         new AutoShowHideThread(shape).start();
32                 }
33                
34                 private function createShape():Sprite
35                 {
36                         var sprite:Sprite = new Sprite();
37                        
38                         sprite.graphics.beginFill(0x000000);
39                         sprite.graphics.drawRect(0, 0, 100, 100);
40                         sprite.graphics.endFill();
41                        
42                         addChild(sprite);
43                        
44                         return sprite;
45                 }
46                
47                 private function createBorder():DisplayObject
48                 {
49                         var shape:Shape = new Shape();
50                        
51                         shape.graphics.lineStyle(2, 0xcccccc);
52                         shape.graphics.drawRect(0, 0, 100, 100);
53                        
54                         addChild(shape);
55                        
56                         return shape;
57                 }
58         }
59 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。