flash.system paketi, SWF dosyası ile dosyanın kabı arasında iletişimi kolaylaştıran tek paket düzeyinde işlev (
fscommand()
) içerir.İşlev | Tanımlayan: | ||
---|---|---|---|
SWF dosyasının Flash Player ile veya Flash Player'ı barındıran, örneğin web tarayıcısı gibi bir programla iletişim kurmasını sağlar. | flash.system |
fscommand | () | işlev |
public function fscommand(command:String, args:String = ""):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
SWF dosyasının Flash Player ile veya Flash Player'ı barındıran, örneğin web tarayıcısı gibi bir programla iletişim kurmasını sağlar. Mesajları Director veya Visual Basic, Visual C++ ve ActiveX denetimlerini barındırabilen diğer programlara iletmek için fscommand()
işlevini de kullanabilirsiniz.
fscommand()
işlevi, bir SWF dosyasının bir web sayfasındaki komut dosyası ile iletişim kurmasını sağlar. Ancak, komut dosyası erişimi, web sayfasının allowScriptAccess
ayarıyla denetlenir. (Bu niteliği, SWF dosyasını gömen HTML kodunda ayarlarsınız, örneğin Internet Explorer için PARAM
etiketinde ve Netscape için EMBED
etiketinde.)
-
allowScriptAccess
öğesi"sameDomain"
olarak ayarlandığında (varsayılan), komut dosyası oluşturma işleminin yalnızca web sayfasıyla aynı etki alanında olan SWF dosyalarından yapılmasına izin verilir. -
allowScriptAccess
öğesi"always"
olarak ayarlandığında, SWF dosyası, HTML sayfasından farklı bir etki alanında olduğunda da, gömüldüğü HTML sayfasıyla iletişim kurabilir. allowScriptAccess
öğesi"never"
olarak ayarlandığında, SWF dosyası herhangi bir HTML sayfasıyla iletişim kuramaz. Bu değerin kullanılmasının onaylanmadığını ve önerilmediğini, ayrıca kendi etki alanınızdan güvenilmeyen SWF dosyaları sunmuyorsanız bunun gerekli olmadığını unutmayın. Güvenilmeyen SWF dosyaları sunmanız gerekmiyorsa, Adobe ayrı bir alt etki alanı oluşturup tüm güvenilmeyen içeriği oraya yerleştirmenizi önerir.
SWF içeriğini barındıran HTML sayfasındaki object
veembed
etiketlerinin allowNetworking
parametresini ayarlayarak bir SWF dosyasının bu yöntemi kullanmasını önleyebilirsiniz.
Çağıran SWF dosyasının dosya sistemli yerel veya ağlı yerel sanal alanda olması ve içeren HTML sayfasının güvenilmeyen bir sanal alanda olması durumunda fscommand()
işlevine izin verilmez.
Güvenlikle ilgili daha fazla bilgi için, bkz. Flash Player Geliştirici Merkezi Konusu: Güvenlik.
1. Kullanım: Flash Player'a mesaj göndermek üzere fscommand()
kullanmak için önceden tanımlanmış komutları ve parametreleri kullanmanız gerekir. Şu tablo, fscommand()
işlevinin command
ve args
parametreleri için belirtebileceğiniz değerleri gösterir. Bu değerler, projektörler de dahil olmak üzere Flash Player'da oynatılan SWF dosyalarını kontrol eder. (projector, tek başına çalışabilen bir uygulamada, yani Flash Player olmadan çalışabilen bir biçimde kaydedilen bir SWF dosyasıdır.
Komut | Parametre (prmtr) | Amaç |
---|---|---|
quit | Yok | Projektörü kapatır. |
fullscreen | true veya false | true öğesinin seçilmesi, Flash Player'ı tam ekran moduna ayarlar. false öğesinin seçilmesi, oynatıcıyı normal menü görünümüne döndürür. |
allowscale | true veya false | false öğesinin seçilmesi, oynatıcının SWF dosyasının her zaman orijinal boyutunda ve asla ölçeklenmeyecek biçimde olacak şekilde ayarlanmasını sağlar. true öğesinin belirtilmesi, SWF dosyasını oynatıcının %100'üne ölçeklenmeye zorlar. |
showmenu | true veya false | true öğesinin belirtilmesi, tam bağlam menüsü öğe kümesini etkinleştirir. false öğesi, Flash Player Hakkında ve Ayarlar dışındaki bağlam menüsü öğelerinin tümünü gizler. |
exec | Uygulamaya giden yol | Projektörün içinden bir uygulama çalıştırır. |
trapallkeys | true veya false | true öğesinin belirtilmesi, hızlandırıcı tuşları dahil olmak üzere tüm tuş olaylarını, Flash Player'daki onClipEvent(keyDown/keyUp) işleyicisine gönderir. |
Tabloda listelenen tüm komutlar tüm uygulamalarda kullanılamaz:
- Komutlardan hiçbiri web player'larda kullanılamaz.
- Bağımsız projektör uygulamalarında komutların tümü kullanılabilir.
- AIR uygulamalarının benzer işlevler için flash.desktop.NativeApplication sınıfını kullanmaları gerekir (örn.
fscommand("quit")
yerineNativeApplication.nativeApplication.exit()
gibi). - Test filmi oynatıcılarında yalnızca
allowscale
veexec
kullanılabilir.
exec
komutu yalnızca A-Z, a-z, 0-9, nokta (.), ve alt çizgi (_) içerebilir. exec
komutu yalnızca fscommand alt dizininde çalışır. Başka bir deyişle, bir uygulamayı çağırmak için exec
komutunu kullanırsanız, uygulamanın fscommand adındaki bir alt dizinde bulunması gerekir. exec
komutu yalnızca bir Flash projektör dosyası içinden çalışır.
Kullanım 2: Bir web tarayıcıdaki JavaScript gibi komut dosyası oluşturan bir dile mesaj göndermek üzere fscommand()
kullanmak için command
ve args
parametrelerine herhangi iki parametreyi iletebilirsiniz. Bu parametreler dizeler veya ifadeler olabilir ve fscommand()
işlevini işleyen ya da yakalayan bir JavaScript işlevi içinde kullanılır.
Bir web tarayıcısında fscommand()
, SWF dosyasını içeren web sayfasında bulunan moviename_DoFScommand
JavaScript işlevini çağırır. moviename
için, EMBED
etiketinin NAME
niteliği ve OBJECT
etiketinin ID özelliği için kullandığınız Flash nesnesinin adını sağlayın. SWF dosyasına "myMovie" adını atarsanız, myMovie_DoFScommand
JavaScript işlevi çağrılır.
SWF dosyasını içeren web sayfasında allowScriptAccess
niteliğini, yukarıda açıklandığı gibi, SWF dosyasının web sayfasına erişme yeteneğine izin verecek veya bu yeteneği reddedecek şekilde ayarlayın. (Bu niteliği, SWF dosyasını gömen HTML kodunda ayarlarsınız, örneğin Internet Explorer için PARAM
etiketinde ve Netscape için EMBED
etiketinde.)
Bir tarayıcıda çalışan Flash Player 10 ve sonrasında, bir açılır pencere açmak için programlama yoluyla bu yöntemin kullanılması başarılı olmayabilir. Çeşitli tarayıcılar (ve tarayıcı konfigürasyonları), herhangi bir anda açılır pencereleri engelleyebilir; tüm açılır pencerelerin görüntüleneceği garanti edilemez. Ancak bunu başarmanın en iyi yolu, yalnızca kullanıcı eyleminin doğrudan sonucu olarak çalıştırılan bir kodda (örneğin, fare tıklatması veya tuş basışı olayı gibi bir olay işleyicisinde) açılır pencere açmak için bu yöntemin kullanılmasıdır.
3. Kullanım: fscommand()
işlevi, Director'a (Adobe Macromedia Director) mesaj gönderebilir. Bu mesajlar, Lingo tarafından (Director komut dosyası dili) dize, olay veya çalıştırılabilir Lingo kodu olarak yorumlanır. Bir mesaj dize veya bir olaysa, mesajı fscommand()
işlevinden almak için Lingo kodunu yazmanız ve Director'da bir eylem gerçekleştirmeniz gerekir. Daha fazla bilgi için, bkz. Director Destek Merkezi www.adobe.com/support/director/.
4. Kullanım: VisualBasic, Visual C++ ve ActiveX denetimlerini barındırabilen diğer programlarda fscommand()
komutu, medyanın programlama dilinde işlenebilen, iki dizeli bir VB olayı gönderir. Daha fazla için, "Flash method" anahtar kelimelerini kullanarak www.adobe.com/support/flash/ adresinden Flash Destek Merkezi'nde arama yapın.
Not: ExternalInterface sınıfı, JavaScript ile ActionScript arasındaki (Kullanım 2) ve ActionScript ile VisualBasic, Visual C++ veya ActiveX denetimleri sunan diğer programlar arasındaki (Kullanım 4) iletişim için daha iyi işlevler sağlar. Flash Player'a (1. Kullanım) ve Director'a (3. Kullanım) mesaj göndermek için fscommand()
kullanmaya devam etmelisiniz.
Parametreler
command:String — Herhangi bir amaçla ana bilgisayar uygulamasına iletilen bir dize veya Flash Player'a iletilen bir komut.
| |
args:String (default = " ") — Herhangi bir amaçla ana bilgisayar uygulamasına iletilen bir dize veya Flash Player'a iletilen bir değer.
|
Atar
Error — Fare olayı veya tuş basışı olayı gibi bir kullanıcı eylemine yanıt olarak yöntem çağrılmazsa.
|
İlgili API Öğeleri
Örnek ( Bu örnek nasıl kullanılır? )
fscommand()
öğesini nasıl kullanılabileceğini gösterir. Ardından, sahne alanına draw()
kullanılarak turuncu bir kutu eklenir. draw()
öğesinde, Flash Player'ı fscommand()
öğesine başka bir çağrı kullanıp çıkacak şekilde yönlendirerek click
olaylarına yanıt veren clickHandler()
adlı bir click
olayı dinleyicisi eklenir.
Not: bu örnek, bir web tarayıcı içinde değil, tek başına çalışabilen bir Flash Player'da çalıştırılmalıdır.
package { import flash.display.Sprite; import flash.text.TextField; import flash.system.fscommand; import flash.events.MouseEvent; public class FSCommandExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function FSCommandExample() { fscommand("fullscreen", "true"); fscommand("allowscale", "false"); draw(); } private function clickHandler(event:MouseEvent):void { fscommand("quit"); trace("clickHandler"); } private function draw():void { var child:Sprite = new Sprite(); child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); child.buttonMode = true; addEventListener(MouseEvent.CLICK, clickHandler); var label:TextField = new TextField(); label.text = "quit"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); addChild(child); } } }
Tue Jun 12 2018, 01:25 PM Z