root/mxp/RealPub/src/RealPubPanel.as

リビジョン 2427, 3.8 kB (コミッタ: kaede, コミット時期: 3 年 前)

RealPub?/src

Line 
1 package {
2         import adobe.utils.MMExecute;
3         import flash.display.Loader;
4         import flash.display.MovieClip;
5         import flash.events.Event;
6         import flash.events.MouseEvent;
7         import flash.events.TimerEvent;
8         import flash.net.LocalConnection;
9         import flash.net.URLRequest;
10         import flash.text.TextField;
11         import flash.utils.Timer;
12        
13         /**@author kamoyusuke */
14         public class RealPubPanel extends MovieClip {
15                
16                 public static const CONNECT_NAME:String = "pub_panel";
17                
18                 private var conn:LocalConnection;
19                 private var applicationID:String;
20                 private var publisherID:String;
21                
22                 private var timer:Timer;
23                 private var addedLayerIndex:int;
24                 private var _isActive:Boolean;
25                
26                 public function RealPubPanel():void{
27                         button.addEventListener(MouseEvent.CLICK,init)
28                 }
29                
30                 private function init(e:MouseEvent):void {
31                         if (!button.selected) {//中止
32                                 //ローカルコネクトの設定
33                                 conn = new LocalConnection();
34                                 conn.allowDomain("*");
35                                 conn.client = this;
36                                 conn.connect(ConnectName.PANEL);
37                                 timer = new Timer(delay.value)
38                                 timer.addEventListener(TimerEvent.TIMER, timerHandler)
39                                 status.text = "ready"
40                                 if (applicationID && publisherID) {//既に一度接続されていたら再試行
41                                         refresh();
42                                 }
43                         }else {//停止
44                                 conn.close();
45                                 timer.stop();
46                                 timer.removeEventListener(TimerEvent.TIMER, timerHandler)
47                                 status.text = ""
48                         }
49                 }
50                
51                 /**
52                  * localConnectによって
53                  * Viewerの情報を受信(AIR)
54                  * @param       ...args
55                  */
56                 public function getViewerDataHandler(...args):void {
57                         //MMExecute('fl.trace("' + args + '")')
58                         applicationID = args[0];
59                         publisherID = args[1];
60                        
61                         status.text = "connected"
62                        
63                         refresh();
64                 }
65                
66                 /**
67                  *カレントのflaにlocalConnectionのasを記述し、パブリッシュ。
68                  * パブリッシュ後、記述したレイヤーを削除。
69                  */
70                 private function refresh():void {
71                         if (!isActive) {
72                                 status.text = "refreshing"
73                                 addSettingLayer();
74                                 publish();
75                                 removeSettingLayer();
76                         }else {
77                                 timer.start();
78                         }
79                 }
80                
81                 /**
82                  * LocalConnectionを施したレイヤーを生成
83                  */
84                 private function addSettingLayer():void{
85                         addedLayerIndex = int(MMExecute('fl.runScript(fl.configURI+"Javascript/realpub.jsfl","addSettingLayer","'+ConnectName.PANEL+'","getSWFURIHandler")'));
86                 }
87                
88                 /**
89                  * 生成したレイヤーを削除
90                  */
91                 private function removeSettingLayer():void{
92                         MMExecute('fl.runScript(fl.configURI+"Javascript/realpub.jsfl","removeSettingLayer",'+addedLayerIndex+')');
93                 }
94                
95                 /**
96                  * パブリッシュ
97                  */
98                 private function publish():void {
99                         MMExecute('fl.getDocumentDOM().testMovie();')//ムービープレビュー
100                 }
101                
102                 /**
103                  * カレントで開いているflaのlocalconection.send()によって受信
104                  * 受信したURIをViewer(AIR)に送信
105                  * @param       URI 現在パブリッシュされているSWFのURI
106                  */
107                 public function getSWFURIHandler(URI:String):void {
108                         MMExecute('fl.closeAllPlayerDocuments();')//ムービープレビューを閉じる
109                         //MMExecute('fl.trace("' + URI + '")')
110                         conn.send("app#" + applicationID + "." + publisherID + ":" + ConnectName.VIEWER, "getSWFURIHandler", URI)
111                 }
112                
113                 /**
114                  * ViewerがSWFを表示完了
115                  */
116                 public function loadedSWFHandler():void{
117                         //MMExecute('fl.trace("ViewerがSWFを表示完了")');
118                         status.text = "ready"
119                         timer.start();//タイマーが発動
120                 }
121                
122                 /**
123                  * 再リフレッシュ
124                  * @param       e
125                  */
126                 private function timerHandler(e:TimerEvent):void {
127                         timer.stop();
128                         refresh();
129                 }
130                
131                 /**
132                  * Viewerが現在アクティブかどうか
133                  */
134                 public function get isActive():Boolean { return _isActive; }
135                
136                 public function setIsActive(value:Boolean):void {
137                         _isActive = value;
138                 }
139                
140                
141                
142         }
143        
144 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。