-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathFrameGenerator.as
More file actions
123 lines (104 loc) · 4.4 KB
/
FrameGenerator.as
File metadata and controls
123 lines (104 loc) · 4.4 KB
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
package dynamicFrame
{
import contents.alert.Alert;
import flash.desktop.NativeApplication;
import flash.display.CapsStyle;
import flash.display.DisplayObject;
import flash.display.LineScaleMode;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.text.TextField;
public class FrameGenerator
{
private static const defaultColor:uint = 0xF0583B ;
private static const radius:Number = 5 ;
public static function createFrame(stage:Stage,color:int=-1,passRootClassToAddBackground:Sprite=null):void
{
if(color==-1)
color = defaultColor ;
var margin:uint = 1 ;
var extarTopMargin:uint = 0 ;
var roundLevel:uint = 5 ;
var frame:Sprite = new Sprite();
stage.addChild(frame);
frame.graphics.beginFill(color);
frame.graphics.drawRoundRect(0,0,stage.stageWidth,stage.stageHeight,roundLevel);
//(stage.root as Sprite).graphics.beginFill(stage.color);
//(stage.root as Sprite).graphics.drawRoundRect(0,0,stage.stageWidth,stage.stageHeight,roundLevel);
frame.graphics.drawRoundRect(margin,margin+extarTopMargin,stage.stageWidth-margin*2,stage.stageHeight-margin*2-extarTopMargin,roundLevel);
if(passRootClassToAddBackground!=null)
{
passRootClassToAddBackground.graphics.beginFill(stage.color&0x00ffffff);
passRootClassToAddBackground.graphics.drawRoundRect(0,0,stage.stageWidth,stage.stageHeight,5,5);
}
var exitbuttonW:Number = 50 ;
var exitbuttonH:Number = 20 ;
var exitCrossW:Number = 10 ;
var crossThikness:Number = 4 ;
var exitButton:Sprite = new Sprite();
exitButton.graphics.beginFill(color);
exitButton.graphics.drawRoundRectComplex(0,0,exitbuttonW,exitbuttonH,0,0,radius,radius);
exitButton.graphics.endFill();
exitButton.graphics.lineStyle(crossThikness,0xffffff,1,false,LineScaleMode.NORMAL,CapsStyle.NONE);
var x0:Number = (exitbuttonW-exitCrossW)/2 ;
var y0:Number = (exitbuttonH-exitCrossW)/2 ;
exitButton.graphics.moveTo(x0,y0);
exitButton.graphics.lineTo(x0+exitCrossW,y0+exitCrossW);
exitButton.graphics.moveTo(x0+exitCrossW,y0);
exitButton.graphics.lineTo(x0,y0+exitCrossW);
exitButton.buttonMode = true ;
exitButton.addEventListener(MouseEvent.CLICK,function(){NativeApplication.nativeApplication.exit();});
exitButton.x = frame.width-exitButton.width-roundLevel ;
frame.addChild(exitButton);
var minimizeButton:Sprite = new Sprite();
minimizeButton.graphics.beginFill(color);
minimizeButton.graphics.drawRoundRectComplex(0,0,exitbuttonW,exitbuttonH,0,0,radius,radius);
minimizeButton.graphics.endFill();
minimizeButton.graphics.lineStyle(crossThikness,0xffffff,1,false,LineScaleMode.NORMAL,CapsStyle.NONE);
x0 = (exitbuttonW-exitCrossW)/2;
y0 = (exitbuttonH-exitCrossW)/2;
minimizeButton.graphics.moveTo(x0+exitCrossW,y0+exitCrossW/2);
minimizeButton.graphics.lineTo(x0,y0+exitCrossW/2);
minimizeButton.buttonMode = true ;
minimizeButton.addEventListener(MouseEvent.CLICK,function(){stage.nativeWindow.minimize();});
minimizeButton.x = frame.width-minimizeButton.width*2;
frame.addChild(minimizeButton);
//positioning the stage
var dragLocked:Boolean = false ;
stage.addEventListener(MouseEvent.MOUSE_DOWN,startDragStage);
stage.addEventListener(ScrollMTEvent.TOUCHED_TO_SCROLL,function(e){dragLocked=true;});
stage.addEventListener(MouseEvent.MOUSE_UP,function(e){dragLocked=false;});
function startDragStage(e:MouseEvent):void
{
var clickedItem:Sprite = e.target as Sprite ;
if(e.target is TextField || dragLocked)
{
return ;
}
while(clickedItem!=null && !(clickedItem is Stage))
{
if(clickedItem.buttonMode == true || clickedItem.hasEventListener(MouseEvent.CLICK))
{
return ;
}
clickedItem = clickedItem.parent as Sprite ;
}
var MouseX0:Number = e.stageX ;
var MouseY0:Number = e.stageY ;
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveStagePlace);
function moveStagePlace(e:MouseEvent):void
{
var deltaX:Number = e.stageX-MouseX0 ;
var deltaY:Number = e.stageY-MouseY0 ;
NativeApplication.nativeApplication.activeWindow.x += deltaX ;
NativeApplication.nativeApplication.activeWindow.y += deltaY ;
}
stage.addEventListener(MouseEvent.MOUSE_UP,function(e){
stage.removeEventListener(MouseEvent.MOUSE_MOVE,moveStagePlace);
});
}
}
}
}