root/mxp/RealPub/src/RealPubViewer.as

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

RealPub?/src

Line 
1 package {
2         import flash.desktop.NativeApplication;
3         import flash.display.Loader;
4         import flash.display.MovieClip;
5         import flash.display.NativeWindow;
6         import flash.display.NativeWindow;
7         import flash.display.StageAlign;
8         import flash.display.StageScaleMode;
9         import flash.events.Event;
10         import flash.events.StatusEvent;
11         import flash.geom.Rectangle;
12         import flash.net.LocalConnection;
13         import flash.net.URLRequest;
14         import flash.text.TextField;
15        
16         /**@author kamoyusuke */
17         public class RealPubViewer extends MovieClip {
18                
19                 public static const CONNECT_NAME:String = "pub_viewer";
20                 private var conn:LocalConnection;
21                 private var loader:Loader;
22                 private var nativeWindow:NativeWindow;
23                
24                 public function RealPubViewer():void{
25                         addEventListener(Event.ADDED_TO_STAGE,init)
26                 }
27                
28                 private function init(e:Event):void {
29                         stage.scaleMode = StageScaleMode.NO_SCALE;
30                         stage.align = StageAlign.TOP_LEFT;
31                         nativeWindow = stage.nativeWindow;
32                         nativeWindow.alwaysInFront = true;
33                         conn = new LocalConnection();
34                         conn.client = this;
35                         conn.connect(RealPubViewer.CONNECT_NAME);
36                         conn.addEventListener(StatusEvent.STATUS, function(e:StatusEvent) {
37                                 //var text:TextField = addChild(new TextField()) as TextField;
38                                 //text.text = e.level;
39                         });
40                         //AIRの情報をパネルに送信
41                         conn.send("localhost:"+ConnectName.PANEL,"getViewerDataHandler",NativeApplication.nativeApplication.applicationID,NativeApplication.nativeApplication.publisherID)
42                        
43                         loader = new Loader();
44                         loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler)
45                        
46                         addEventListener(Event.ACTIVATE,activeHandler)
47                         addEventListener(Event.DEACTIVATE, activeHandler)
48                 }
49                
50                 /**
51                  * 現在ウィンドウの有効可否を送信
52                  * @param       e
53                  */
54                 private function activeHandler(e:Event):void {
55                         conn.send("localhost:" + ConnectName.PANEL, "setIsActive", (e.type == Event.ACTIVATE))
56                 }
57                
58                 /**
59                  * パネルにlocalconection.send()によって受信
60                  * @param       URI 現在パブリッシュされているSWFのURI
61                  */
62                 public function getSWFURIHandler(URI:String):void {
63                         if (contains(loader)) {
64                                 removeChild(loader)
65                                 loader.unload();
66                         }
67                         loader.load(new URLRequest(URI))
68                 }
69                
70                 /**
71                  * ロード完了ハンドラ
72                  * @param       e
73                  */
74                 private function completeHandler(e:Event):void {
75                         conn.send("localhost:" + ConnectName.PANEL, "loadedSWFHandler")
76                         addChild(loader)
77                         nativeWindow.bounds = new Rectangle(nativeWindow.x,nativeWindow.y,loader.contentLoaderInfo.width,loader.contentLoaderInfo.height+nativeWindow.minSize.y);
78                 }
79                
80         }
81        
82 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。