Masaüstü pencerelerinin görünümünü, davranışını ve yaşam döngüsünü yönetmek için NativeWindow sınıfının özelliklerini ve yöntemlerini kullanırsınız.
Not:
Flex çerçevesini kullanırken, pencere davranışını çerçeve sınıflarını kullanarak yönetmek genellikle daha iyidir. NativeWindow özelliklerinin ve yöntemlerinin çoğuna mx:WindowedApplication ve mx:Window sınıfları üzerinden erişilebilir.
Bir NativeWindow örneği alma
Bir pencereyi değiştirmek için önce pencere örneğini almalısınız. Pencere örneğini aşağıdaki konumlardan birinden alabilirsiniz:
-
Pencere oluşturmak için kullanılan yerel pencere yapıcısı:
var win:NativeWindow = new NativeWindow(initOptions);
-
Pencere sahnesinin
nativeWindow
özelliği:
var win:NativeWindow = stage.nativeWindow;
-
Penceredeki görüntüleme nesnesinin
stage
özelliği:
var win:NativeWindow = displayObject.stage.nativeWindow;
-
Pencere tarafından gönderilen yerel pencere olayının
target
özelliği:
private function onNativeWindowEvent(event:NativeWindowBoundsEvent):void
{
var win:NativeWindow = event.target as NativeWindow;
}
-
Pencerede görüntülenen HTML sayfasının
nativeWindow
özelliği:
var win:NativeWindow = htmlLoader.window.nativeWindow;
-
NativeApplication nesnesinin
activeWindow
ve
openedWindows
özellikleri:
var nativeWin:NativeWindow = NativeApplication.nativeApplication.activeWindow;
var firstWindow:NativeWindow = NativeApplication.nativeApplication.openedWindows[0];
NativeApplication.nativeApplication.activeWindow
uygulamanın etkin penceresine başvurur. (Ancak, etkin pencere bu AIR uygulamasına ait bir pencere değilse
null
değerini döndürür.)
NativeApplication.nativeApplication.openedWindows
dizisi, AIR uygulamasındaki kapatılmamış tüm pencereleri içerir.
Flex mx:WindowedApplication ve mx:Window nesneleri görüntüleme nesnesi olduğundan,
stage
özelliğini aşağıdaki şekilde kullanıp bir MXML dosyasında uygulama penceresine kolayca başvuru yapabilirsiniz:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="init();">
<mx:Script>
<![CDATA[
import flash.display.NativeWindow;
public function init():void{
var appWindow:NativeWindow = this.stage.nativeWindow;
//set window properties
appWindow.visible = true;
}
]]>
</mx:Script>
</WindowedApplication
Not:
WindowedApplication veya Window bileşeni Flex çerçevesi tarafından pencere sahnesine eklenene kadar,
stage
özelliği
null
değerindedir. Bu davranış Flex Application bileşeninin davranışıyla tutarlıdır, ancak WindowedApplication ve Window bileşenlerinin başlatma döngüsünde önceden gerçekleşen
creationComplete
gibi olaylara ilişkin dinleyicilerde sahneye veya NativeWindow örneğine erişmenin olanaksız olduğu anlamına gelir.
applicationComplete
olayı gönderildiğinde sahneye ve NativeWindow örneğine erişmek güvenlidir.
Pencereleri etkinleştirme, gösterme ve gizleme
Bir pencereyi etkinleştirmek için NativeWindow
activate()
yöntemini çağırın. Bir pencerenin etkinleştirilmesi pencereyi öne çıkarır, ona klavye ve fare odağı kazandırır ve gerektiğinde pencereyi yeniden yükleyerek veya
visible
özelliğini
true
olarak ayarlayarak pencereyi görünür duruma getirir. Bir pencereni etkinleştirilmesi uygulamadaki diğer pencerelerin sırasını değiştirmez.
Activate()
yönteminin çağrılması, pencerenin
activate
olayı göndermesine neden olur.
Bir pencereyi etkinleştirmeden göstermek için
visible
özelliğini
true
olarak ayarlayın. Bu, pencereyi öne çıkarır, ancak odağı pencereye atamaz.
Bir pencereyi görünümden gizlemek için,
visible
özelliğini
false
olarak ayarlayın. Pencerenin gizlenmesi pencerenin ve tüm ilişkili görev çubuğu simgelerinin ve Mac OS X'te Pencereler menüsündeki girişin görüntülenmesini engeller.
Bir pencerenin görünürlüğünü değiştirdiğinizde, bu pencerenin sahip olduğu diğer pencerelerin görünürlüğü de değişir. Örneğin, bir pencereyi gizlerseniz, sahip olduğu tüm pencereler de gizlenir.
Not:
Mac OS X'te dock pencere bölümünde bir simgeye sahip olan simge durumuna küçültülmüş bir pencereyi tam olarak gizlemek olanaksızdır. Simge durumuna küçültülen bir pencerede
visible
özelliği
false
olarak ayarlandıysa, pencereye ilişkin dock simgesi görüntülenmeye devam eder. Kullanıcı simgeyi tıklattığında, pencere görünür bir duruma yeniden yüklenir ve görüntülenir.
Pencere görüntü sırasını değiştirme
AIR, pencerelerin görüntü sırasını doğrudan değiştirmek için birkaç yöntem sağlar. Bir pencereyi görüntü sırasının önüne veya arkasına, bir pencereyi başka bir pencerenin üzerine veya ardına taşıyabilirsiniz. Aynı zamanda, kullanıcı pencereleri etkinleştirerek yeniden sıralayabilir.
Bir pencerenin
alwaysInFront
özelliğini
true
olarak ayarlayarak, bu pencereyi diğer pencerelerin önünde tutabilirsiniz. Birden çok pencere bu ayara sahip olduğunda, bu pencerelerin görüntü sırası kendi aralarında belirlenir, ancak bu pencereler her zaman
alwaysInFront
özelliği false olarak ayarlanmış pencerelerin önünde sıralanır.
AIR uygulaması etkin olmadığında bile, en üst grupta yer alan pencereler diğer uygulamalardaki pencerelerin üzerinde görüntülenir. Bu davranış kullanıcı için zorlayıcı olabileceğinden,
alwaysInFront
özelliği yalnızca gerekli ve uygun olduğunda
true
olarak ayarlanmalıdır. Uygun kullanım örnekleri şunları içerir:
-
Araç ipuçları, açılır listeler, özel menüler ve açılır kutular gibi denetimler için geçici açılır pencereler. Odağı kaybettiklerinde bu tür pencerelerin kapatılmaları gerektiğinden, kullanıcının başka bir pencereyi görüntülemesinin engellenmesi can sıkıcı olmayabilir.
-
Çok acil hata mesajları ve uyarılar. Kullanıcının zamanında yanıt vermemesi durumunda kurtarılamayacak bir değişikliğin gerçekleşme olasılığı, bir uyarı penceresini ekranın önüne taşımayı gerekli kılabilir. Ancak çoğu hata ve uyarı, normal pencere görüntü sırasında işlenebilir.
-
Kısa süreli tost stili pencereler.
Not:
AIR,
alwaysInFront
özelliğinin uygun kullanımını zorlamaz. Ancak, uygulamanız bir kullanıcının iş akışını aksatıyorsa, uygulamanın kullanıcının çöp kutusuna gönderilme ihtimali de yüksektir.
Bir pencere başka pencerelere sahipse, sahip olduğu pencereler onun önünde sıralanır.
orderToFront()
öğesini çağırır veya başka pencereleri olan bir pencerede
alwaysInFront
öğesini
true
olarak ayarlarsanız, sahip olunan pencereler sahip pencereyle birlikte diğer pencerelerin önünde tekrar sıralanır ancak sahip olunan pencereler hala sahip pencerenin önünde görüntülenir.
Sahip olunan pencerelerde sıralama yöntemlerini çağırmak aynı pencere tarafından sahip olunan pencereler arasında normal bir şekilde çalışır, ancak grubun dışında pencerelerle karşılaştırıldığında sahip olunan pencere grubunun tümünün sırasını değiştirebilir. Örneğin, sahip olunan bir pencerede
orderToFront()
öğesini çağırırsanız hem o pencere, hem sahibi hem de aynı sahibe ait olan diğer pencereler pencere görüntüleme sırasının önüne getirilir.
NativeWindow sınıfı, bir pencerenin diğer pencerelere göre görüntü sırasını ayarlamak için aşağıdaki özellikleri ve yöntemleri sağlar:
Üye
|
Açıklama
|
alwaysInFront özelliği
|
Pencerenin en üst pencere grubunda görüntülenip görüntülenmediğini belirtir.
Neredeyse her durumda,
false
en iyi ayardır.
false
değerinin
true
olarak değiştirilmesi pencereyi diğer tüm pencerelerin önüne getirir. (Ancak pencereyi etkinleştirmez.)
true
değerinin
false
olarak değiştirilmesi pencereyi en üst grupta kalan pencerelerin arkasında, ancak hala diğer pencerelerin önünde sıralar. Özelliğin bir pencere için geçerli değerine ayarlanması, pencere görüntü sırasını değiştirmez.
alwaysInFront
ayarının başka bir pencerenin sahip olduğu pencereler üzerinde bir etkisi yoktur.
|
orderToFront()
|
Pencereyi öne getirir.
|
orderInFrontOf()
|
Pencereyi belirli bir pencerenin önüne getirir.
|
orderToBack()
|
Pencereyi diğer pencerelerin arkasına gönderir.
|
orderBehind()
|
Pencereyi doğrudan belirli bir pencerenin arkasına gönderir.
|
activate()
|
Pencereyi öne geçirir (pencereyi görünür duruma getirerek ve odağı pencereye atayarak).
|
Not:
Bir pencere gizli (
visible
özelliği
false
) veya simge durumundaysa, görüntü sırası yöntemlerinin etkisi olmaz.
Linux işletim sisteminde, farklı pencere yöneticileri pencere görüntü sırasına ilişkin farklı kurallar uygular:
-
Bazı pencere yöneticilerinde, yardımcı program pencereleri her zaman normal pencerelerin önünde görüntülenir.
-
Bazı pencere yöneticilerinde,
alwaysInFront
özelliği
true
olarak ayarlanmış tam ekranlı bir pencere, her zaman
alwaysInFront
özelliği
true
olan diğer pencerelerin önünde görüntülenir.
Bir pencereyi kapatma
Bir pencereyi kapatmak için
NativeWindow.close()
yöntemini kullanın.
Bir pencerenin kapatılması pencere içeriğini boşaltır, ancak diğer nesneler bu içeriğe başvuruyorsa, içerik nesneleri ortadan kaldırılmaz.
NativeWindow.close()
yöntemi senkronize olmayan biçimde yürütülür, pencerede bulunan uygulama kapatma işlemi sırasında çalışmaya devam eder. Close yöntemi, kapatma işlemi başarılı olduğunda bile bir close olayı gönderir. NativeWindow nesnesi teknik olarak hala geçerlidir, ancak çoğu özellik ve yönteme kapatılmış bir pencerede erişmek, bir IllegalOperationError oluşturur. Kapatılan bir pencereyi yeniden açamazsınız. Pencerenin kapanıp kapanmadığını test etmek için pencerenin
closed
özelliğini kontrol edin. Bir pencereyi görünümden gizlemek için
NativeWindow.visible
özelliğini
false
olarak ayarlayın.
Nativeapplication.autoExit
özelliği varsayılan
true
değerinde olduğunda, son pencere kapandığında uygulama kapanır.
Bir sahibi bulunan tüm pencereler, sahip pencere kapatıldığında kapatılır. Sahip olunan pencereler bir kapanma olayı göndermezler bu nedenle kapatılma olayını engelleyemezler. Bir close olayı gönderilir.
Pencere işlemlerinin iptaline izin verme
Bir pencere sistem kromu kullandığında, uygun olayların varsayılan davranışı dinlenerek veya iptal edilerek kullanıcının pencereyle etkileşimi iptal edilebilir. Örneğin, bir kullanıcı sistem kromu kapatma düğmesini tıklattığında,
closing
olayı gönderilir. Bir kayıtlı dinleyici olayın
preventDefault()
yöntemini çağırdığında, pencere kapanmaz.
Pencere sistem kromu kullanmıyorsa, hedeflenen değişikliklerin bildirim olayları değişiklik yapılmadan önce otomatik olarak gönderilmez. Bu nedenle, bir pencereyi kapatmaya, pencere durumunu değiştirmeye veya pencere sınırı özelliklerinden birini ayarlamaya ilişkin yöntemleri çağırırsanız, değişiklik iptal edilemez. Pencere değişikliği yapılmadan uygulamanızdaki bileşenleri bilgilendirmek için, uygulama mantığınız pencerenin
dispatchEvent()
yöntemini kullanarak ilgili bildirim olayını gönderebilir.
Örneğin, aşağıdaki mantık bir pencere kapatma düğmesi için iptal edilebilir bir olay işleyicisi uygular:
public function onCloseCommand(event:MouseEvent):void{
var closingEvent:Event = new Event(Event.CLOSING,true,true);
dispatchEvent(closing);
if(!closingEvent.isDefaultPrevented()){
win.close();
}
}
Olay
preventDefault()
yöntemi bir dinleyici tarafından çağrılırsa,
dispatchEvent()
yöntemi
false
değerini döndürür. Ancak, bu yöntem başka nedenlerle de
false
değerini döndürebilir, bu nedenle değişikliğin iptal edilmesi gerekip gerekmediğini test etmek için açıkça
isDefaultPrevented()
yöntemini kullanmak daha uygundur.
Bir pencereyi büyütme, simge durumuna küçültme ve geri yükleme
Pencereyi büyütmek için NativeWindow
maximize()
yöntemini kullanın.
myWindow.maximize();
Pencereyi simge durumuna küçültmek için NativeWindow
minimize()
yöntemini kullanın.
myWindow.minimize();
Pencereyi geri yüklemek için (yani, simge durumuna küçültülmeden veya büyütülmeden önceki boyutuna geri döndürmek için), NativeWindow
restore()
yöntemini kullanın.
myWindow.restore();
Sahibi olan bir pencere, sahip olan pencere simge durumuna küçültüldüğünde veya geri yüklendiğinde simge durumuna küçültülür ya da geri yüklenir. Sahip olunan pencere simge durumuna küçültüldüğünde sahibi de simge durumuna küçültüldüğünden herhangi bir olay gönderilmez.
Not:
Bir AIR penceresini büyütme sonucunda ortaya çıkan davranış, Mac OS X standart davranışından farklıdır. Uygulama tarafından tanımlanmış “standart” bir boyut ve kullanıcı tarafından ayarlanan son boyut arasında geçiş yapmak yerine, AIR pencereleri uygulama veya kullanıcı tarafından ayarlanan son boyut ve ekranın tam kullanılabilir alanı arasında geçiş yapar.
Linux işletim sisteminde, farklı pencere yöneticileri pencere görüntü durumunun ayarlanmasına ilişkin farklı kurallar uygular:
-
Bazı pencere yöneticilerinde, yardımcı program pencereleri ekranı kaplayamaz.
-
Pencere için maksimum boyut ayarlandıysa, bazı pencereler pencerenin ekranı kaplamasına izin vermez. Diğer bazı pencere yöneticileri, ekranı kaplaması gereken görüntü durumunu ayarlar, ancak pencereyi yeniden boyutlandırmaz. Her iki durumda da, görüntü durumu değişiklik olayı gönderilmez.
-
Bazı pencere yöneticileri pencerenin
maximizable
veya
minimizable
ayarlarına önem vermez.
Not:
Linux'ta pencere özellikleri senkronize olmayan şekilde değişir. Programınızın bir satırındaki görüntüleme durumunu değiştirir ve sonraki satırdaki değeri okursanız, okunan değer hala eski ayarı yansıtacaktır. Tüm platformlarda, NativeWindow nesnesi görüntüleme durumu değiştiğinde
displayStateChange
olayını gönderir. Pencerenin yeni durumunu temel alarak bir eylemde bulunmanız gerekirse, bunu her zaman bir
displayStateChange
olay işleyicisinde yapın. Bkz.
Pencere olaylarını dinleme
.
Örnek: Bir pencereyi simge durumuna küçültme, büyütme, geri yükleme ve kapatma
Aşağıdaki kısa MXML uygulaması Window
maximize()
,
minimize()
,
restore()
ve
close()
yöntemlerini gösterir:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Script>
<![CDATA[
public function minimizeWindow():void
{
this.stage.nativeWindow.minimize();
}
public function maximizeWindow():void
{
this.stage.nativeWindow.maximize();
}
public function restoreWindow():void
{
this.stage.nativeWindow.restore();
}
public function closeWindow():void
{
this.stage.nativeWindow.close();
}
]]>
</mx:Script>
<mx:VBox>
<mx:Button label="Minimize" click="minimizeWindow()"/>
<mx:Button label="Restore" click="restoreWindow()"/>
<mx:Button label="Maximize" click="maximizeWindow()"/>
<mx:Button label="Close" click="closeWindow()"/>
</mx:VBox>
</mx:WindowedApplication>
Flash için aşağıdaki ActionScript örneği, NativeWindow
minimize()
,
maximize()
,
restore()
ve
close()
yöntemlerini tetikleyen dört tıklatılabilir metin alanı oluşturur:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
public class MinimizeExample extends Sprite
{
public function MinimizeExample():void
{
var minTextBtn:TextField = new TextField();
minTextBtn.x = 10;
minTextBtn.y = 10;
minTextBtn.text = "Minimize";
minTextBtn.background = true;
minTextBtn.border = true;
minTextBtn.selectable = false;
addChild(minTextBtn);
minTextBtn.addEventListener(MouseEvent.CLICK, onMinimize);
var maxTextBtn:TextField = new TextField();
maxTextBtn.x = 120;
maxTextBtn.y = 10;
maxTextBtn.text = "Maximize";
maxTextBtn.background = true;
maxTextBtn.border = true;
maxTextBtn.selectable = false;
addChild(maxTextBtn);
maxTextBtn.addEventListener(MouseEvent.CLICK, onMaximize);
var restoreTextBtn:TextField = new TextField();
restoreTextBtn.x = 230;
restoreTextBtn.y = 10;
restoreTextBtn.text = "Restore";
restoreTextBtn.background = true;
restoreTextBtn.border = true;
restoreTextBtn.selectable = false;
addChild(restoreTextBtn);
restoreTextBtn.addEventListener(MouseEvent.CLICK, onRestore);
var closeTextBtn:TextField = new TextField();
closeTextBtn.x = 340;
closeTextBtn.y = 10;
closeTextBtn.text = "Close Window";
closeTextBtn.background = true;
closeTextBtn.border = true;
closeTextBtn.selectable = false;
addChild(closeTextBtn);
closeTextBtn.addEventListener(MouseEvent.CLICK, onCloseWindow);
}
function onMinimize(event:MouseEvent):void
{
this.stage.nativeWindow.minimize();
}
function onMaximize(event:MouseEvent):void
{
this.stage.nativeWindow.maximize();
}
function onRestore(event:MouseEvent):void
{
this.stage.nativeWindow.restore();
}
function onCloseWindow(event:MouseEvent):void
{
this.stage.nativeWindow.close();
}
}
}
Bir pencereyi yeniden boyutlandırma ve taşıma
Bir pencere sistem kromu kullandığında, krom, pencerenin yeniden boyutlandırılması ve masaüstünde taşınması için sürükleme denetimleri sağlar. Pencere sistem kromu kullanmıyorsa, kullanıcının pencereyi yeniden boyutlandırması ve taşımasını olanaklı kılmak için kendi denetimlerinizi eklemelisiniz.
Not:
Bir pencereyi yeniden boyutlandırmak veya taşımak için, önce NativeWindow örneğine bir başvuru almalısınız. Bir pencere başvurusunun nasıl alınacağı hakkında bilgi için
Bir NativeWindow örneği alma
.
Bir pencereyi yeniden boyutlandırma
Kullanıcının pencereyi etkileşimli olarak yeniden boyutlandırmasına izin vermek için NativeWindow
startResize()
yöntemini kullanın. Bu yöntem bir
mouseDown
olayından çağrıldığında, yeniden boyutlandırma işlemi fareyle başlatılır ve işletim sistemi bir
mouseUp
olayı aldığında tamamlanır.
startResize()
yöntemini çağırırken, pencerenin yeniden boyutlandırılacağı ilk kenar ve köşeyi belirten bir argüman iletirsiniz.
Pencere boyutunu programlama yoluyla ayarlamak için pencerenin
width
,
height
ve
bounds
özelliklerini istenen boyutlara göre ayarlayın. Sınırları belirledikten sonra, pencere boyutu ve konum aynı anda değiştirilebilir. Ancak, değişikliklerin oluştuğu sıra garanti edilmez. Bazı Linux pencere yöneticileri, pencerelerin masaüstü ekranının sınırları dışına genişlemesine izin vermez. Bu durumlarda, aksi halde değişikliklerin net etkisi kurala uygun bir pencereyle sonuçlanacak olsa da, son pencere boyutu özelliklerin ayarlandığı sıra nedeniyle sınırlanabilir. Örneğin, ekranın altında yer alan pencerenin hem yüksekliğini hem de y konumunu değiştirdiğinizde, yükseklik değişikliği y konumu değişmeden önce uygulandığından tam yükseklik değişikliği gerçekleşmeyebilir.
Not:
Linux'ta pencere özellikleri senkronize olmayan şekilde değişir. Bir pencereyi programınızın bir satırında yeniden boyutlandırırsanız ve bir sonrakinde boyutları okursanız, eski ayarları yansıtmaya devam edeceklerdir. Tüm platformlarda, NativeWindow nesnesi pencere yeniden boyutlandırıldığında
resize
olayını gönderir. Penceredeki kontrolleri pencerenin yeni boyutu veya durumuna dayalı olarak düzenlemek gibi bir eylemde bulunmanız gerekirse, bunu her zaman
resize
olay işleyicisinde yapın. Bkz.
Pencere olaylarını dinleme
.
Sahnenin ölçekleme modu, pencere sahnesi ve içeriklerinin pencere yeniden boyutlandırıldığında nasıl davranacağını belirler. Sahne ölçekleme modlarının, web tarayıcısında olduğu gibi, uygulamanın görüntü alanının boyutu veya en boy oranının denetiminde olmadığı durumlar için tasarlanmış olduğunu unutmayın. Genellikle
scaleMode
özelliğini
StageScaleMode.NO_SCALE
olarak ayarladığınızda en iyi sonuçları alırsınız. Yine de, pencere içeriğinin ölçeklenmesini istiyorsanız, değişen pencere sınırlarına yanıt olarak içeriğin
scaleX
ve
scaleY
parametrelerini ayarlayabilirsiniz.
Bir pencereyi taşıma
Bir pencereyi yeniden boyutlandırmadan taşımak için NativeWindow startMove()
yöntemini kullanın.
startResize()
yöntemi gibi,
startMove()
yöntemi bir
mouseDown
olayından çağrıldığında, taşıma işlemi fareyle başlatılmıştır ve işletim sistemi bir
mouseUp
olayı aldığında tamamlanır.
startResize()
ve
startMove()
yöntemleriyle ilgili ayrıntılı bilgi için bkz.
Adobe Flash Platformu için ActionScript 3.0 Başvurusu
.
Bir pencereyi programlanabilir bir şekilde taşımak için, pencerenin
x
,
y
, veya
bounds
özelliklerini istenilen konuma ayarlayın. Sınırları belirledikten sonra, pencere boyutu ve konum aynı anda değiştirilebilir.
Not:
Linux'ta pencere özellikleri senkronize olmayan şekilde değişir. Programınızın bir satırında bir pencere taşırsanız ve sonraki satırdaki değeri okursanız, okunan değer hala eski ayarı yansıtacaktır. Tüm platformlarda, NativeWindow nesnesi konum değiştiğinde
move
olayını gönderir. Pencerenin yeni konumunu temel alarak bir eylemde bulunmanız gerekirse, bunu her zaman bir
move
olay işleyicisinde yapın. Bkz.
Pencere olaylarını dinleme
.
Örnek: Pencereleri yeniden boyutlandırma ve taşıma
Aşağıdaki örnek bir pencerede yeniden boyutlandırma ve taşıma işlemlerinin nasıl başlatılacağını gösterir:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.NativeWindowResize;
public class NativeWindowResizeExample extends Sprite
{
public function NativeWindowResizeExample():void
{
// Fills a background area.
this.graphics.beginFill(0xFFFFFF);
this.graphics.drawRect(0, 0, 400, 300);
this.graphics.endFill();
// Creates a square area where a mouse down will start the resize.
var resizeHandle:Sprite =
createSprite(0xCCCCCC, 20, this.width - 20, this.height - 20);
resizeHandle.addEventListener(MouseEvent.MOUSE_DOWN, onStartResize);
// Creates a square area where a mouse down will start the move.
var moveHandle:Sprite = createSprite(0xCCCCCC, 20, this.width - 20, 0);
moveHandle.addEventListener(MouseEvent.MOUSE_DOWN, onStartMove);
}
public function createSprite(color:int, size:int, x:int, y:int):Sprite
{
var s:Sprite = new Sprite();
s.graphics.beginFill(color);
s.graphics.drawRect(0, 0, size, size);
s.graphics.endFill();
s.x = x;
s.y = y;
this.addChild(s);
return s;
}
public function onStartResize(event:MouseEvent):void
{
this.stage.nativeWindow.startResize(NativeWindowResize.BOTTOM_RIGHT);
}
public function onStartMove(event:MouseEvent):void
{
this.stage.nativeWindow.startMove();
}
}
}
|
|
|