İşaret noktalarını kullanma

İşaret noktası, bir video dosyası oynatılırken video oynatıcının bir cuePoint olayı gönderdiği noktadır. Web sayfasında başka bir öğe için bir eylemin oluşmasını istediğiniz zamanlarda bir FLV dosyasına işaret noktaları ekleyebilirsiniz. Örneğin, metin veya grafik görüntülemek, bir Flash animasyonuyla senkronize etmek veya FLV dosyasını duraklatarak, videoda farklı bir noktayı arayarak ya da farklı bir FLV dosyasına geçerek FLV dosyasının oynatımını etkilemek isteyebilirsiniz. İşaret noktaları, FLV dosyanızdaki noktaları web sayfasındaki diğer eylemlerle senkronize etmek için ActionScript kodunuzda denetim elde etmenize olanak sağlar.

Üç tür işaret noktası vardır: gezinme, olay ve ActionScript. Gezinme ve olay işaret noktaları FLV dosya akışında ve FLV dosyasının meta veri paketinde gömülü olduğundan gömülü işaret noktaları olarak da bilinir.

Gezinme işaret noktası , FLV dosyası içinde belirttiğiniz zamana olabildiğince yakın bir anahtar kare oluşturduğundan, FLV dosyası içinde belirli bir kare aramanıza olanak sağlar. Anahtar kare , FLV veri akışında görüntü kareleri arasında gerçekleşen bir veri parçasıdır. Bir gezinme işaret noktası aradığınızda, bileşen anahtar kareyi arar ve cuePoint olayını başlatır.

Olay işaret noktası , FLV dosyası içindeki zamanda yer alan bir noktayı web sayfasındaki harici bir olayla senkronize etmenize olanak sağlar. cuePoint olayı tam olarak belirtilen zamanda gerçekleşir. Video İçe Aktarma sihirbazını veya Flash Video Kodlayıcı'yı kullanarak gezinmeyi ve olay işaret noktalarını bir FLV dosyasına gömebilirsiniz. Video İçe Aktarma sihirbazı ve Flash Video kodlayıcı hakkında daha fazla bilgi için bkz. Bölüm 16, “Video ile Çalışma,” Flash Uygulamasını Kullanma .

ActionScript işaret noktası , bileşenin Flash Video İşaret Noktaları iletişim kutusu üzerinden veya FLVPlayback.addASCuePoint() yöntemiyle ekleyebileceğiniz harici bir işaret noktasıdır. Bileşen, FLV dosyasından ayrı olarak ActionScript işaret noktalarını saklar ve izler, böylece doğruluk oranı gömülü işaret noktalarından daha düşüktür. ActionScript işaret noktalarının doğruluğu saniyenin onda biri kadardır. Oynatma kafası güncellendiğinde, bileşen ActionScript işaret noktaları için cuePoint olayını oluşturduğundan, playheadUpdateInterval özelliğinin değerini düşürerek ActionScript işaret noktalarının doğruluğunu artırabilirsiniz. Daha fazla bilgi için, Flash Professional için ActionScript 3.0 Başvurusu bölümündeki FLVPlayback.playheadUpdateInterval özelliğine bakın.

ActionScript'te ve FLV dosyasının meta verisinde işaret noktası, şu özellikleri içeren bir nesne olarak temsil edilir: name , time , type ve parameters . name özelliği, işaret noktasının atanmış adını içeren bir dizedir. time özelliği, işaret noktasının gerçekleştiği zamanı (SS:DD:SS.mmm) olarak temsil eden bir sayıdır. type özelliği, oluşturduğunuz işaret noktası türüne bağlı olarak değeri "navigation" , "event" veya "actionscript" olan bir dizedir. parameters özelliği, belirtilen ad ve değer çiftlerinin bir dizisidir.

cuePoint olayı gerçekleştiğinde, işaret noktası nesnesi, info özelliği üzerinden olay nesnesinde kullanılabilir.

Flash Video İşaret Noktaları iletişim kutusunu kullanma

Bileşen denetçisinde cuePoints parametresinin Değer hücresini çift tıklatarak Flash Video İşaret Noktaları iletişim kutusunu açın. İletişim kutusu aşağıdaki şekildeki gibi görünür:

Grafiği tam boyut görüntüle
İşaret Noktaları iletişim noktası

İletişim kutusu, gömülü işaret noktalarını ve ActionScript işaret noktalarını görüntüler. cue point parametrelerinin yanı sıra ActionScript işaret noktaları eklemek ve silmek için bu iletişim kutusunu kullanabilirsiniz. Ayrıca gömülü işaret noktalarını etkinleştirebilir veya devre dışı bırakabilirsiniz. Ancak gömülü işaret noktalarını ekleyemez, değiştiremez veya silemezsiniz.

ActionScript işaret noktası ekleme:

  1. Flash İşaret Noktaları iletişim kutusunu açmak için, Bileşen denetçisindeki cuePoints parametresinin değer hücresini çift tıklatın.

  2. Varsayılan bir ActionScript işaret noktası girişi eklemek için, sol üst köşede, işaret noktaları listesinin yukarısındaki artı (+) işaretini tıklatın.

  3. Ad sütununda Yeni İşaret Noktası metnini tıklatın ve metni işaret noktasının adı olacak şekilde düzenleyin.

  4. 00:00:00:000 Zaman değerini düzenlemek için tıklatın ve işaret noktasının gerçekleşmesi için bir zaman atayın. Zamanı saat, dakika, saniye ve milisaniye (SS:DD:SS.mmm) olarak belirtebilirsiniz.

    Birden çok işaret noktası varsa, iletişim kutusu yeni işaret noktasını listedeki kronolojik konumuna taşır.

  5. Seçilen işaret noktasına bir parametre eklemek için, Parametreler bölümünün yukarısındaki artı (+) işaretini tıklatın ve Ad ve Değer sütunlarına değerleri girin. Her parametre için bu adımı yineleyin.

  6. Daha fazla ActionScript işaret noktası eklemek için, her biri için 2 ile 5 arasındaki adımları yineleyin.

  7. Değişikliklerinizi kaydetmek için Tamam'ı tıklatın.

ActionScript işaret noktasını silme:

  1. Flash İşaret Noktaları iletişim kutusunu açmak için, Bileşen denetçisindeki cuePoints parametresinin değer hücresini çift tıklatın.

  2. Silmek istediğiniz işaret noktasını seçin.

  3. Sol üst köşede, işaret noktaları listesinin yukarısındaki eksi (-) işaretini silmek için tıklatın.

  4. Silmek istediğiniz her işaret noktası için 2 ile 3 adımlarını yineleyin.

  5. Değişikliklerinizi kaydetmek için Tamam'ı tıklatın.

Gömülü bir FLV dosyası işaret noktasını etkinleştirmek veya devre dışı bırakmak için:

  1. Flash İşaret Noktaları iletişim kutusunu açmak için, Bileşen denetçisindeki cuePoints parametresinin değer hücresini çift tıklatın.

  2. Etkinleştirmek veya devre dışı bırakmak istediğiniz işaret noktasını seçin.

  3. Açılır menüyü tetiklemek için Tür sütunundaki değeri tıklatın veya aşağı oku tıklatın.

  4. İşaret noktası türünün adını (örneğin, Olay veya Gezinme) etkinleştirmek için tıklatın. Devre dışı bırakmak için Devre Dışı öğesini tıklatın.

  5. Değişikliklerinizi kaydetmek için Tamam'ı tıklatın.

ActionScript ile işaret noktalarını kullanma

ActionScript işaret noktalarını eklemek, cuePoint olaylarını dinlemek, herhangi türde veya belirli bir türde bir işaret noktasını bulmak, gezinme işaret noktasını aramak, işaret noktasını etkinleştirmek veya devre dışı bırakmak, bir işaret noktasının etkinleştirilip etkinleştirilmediğini kontrol etmek ve işaret noktasını kaldırmak için ActionScript'i kullanabilirsiniz.

Bu bölümdeki örnekler, şu üç işaret noktasını içeren cuepoints.flv adında bir FLV dosyasını kullanır:

Ad

Zaman

Tür

point1

00:00:00.418

Gezinme

point2

00:00:07.748

Gezinme

point3

00:00:16.020

Gezinme

ActionScript işaret noktaları ekleme

addASCuePoint() yöntemini kullanarak FLV dosyasına ActionScript işaret noktaları ekleyebilirsiniz. Şu örnek, FLV dosyası oynatılmaya hazır olduğunda FLV dosyasına iki ActionScript işaret noktası ekler. Bir işaret noktası nesnesi kullanarak, özelliklerinde işaret noktasının zamanını, adını ve türünü belirten birinci işaret noktasını ekler. İkinci çağrı, yöntemin time ve name parametrelerini kullanarak zamanı ve adı belirtir.

// Requires an FLVPlayback instance called my_FLVPlybk on Stage 
import fl.video.*; 
import fl.video.MetadataEvent; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var cuePt:Object = new Object(); //create cue point object 
cuePt.time = 2.02; 
cuePt.name = "ASpt1"; 
cuePt.type = "actionscript"; 
my_FLVPlybk.addASCuePoint(cuePt);//add AS cue point 
// add 2nd AS cue point using time and name parameters 
my_FLVPlybk.addASCuePoint(5, "ASpt2"); 

Daha fazla bilgi için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümündeki FLVPlayback.addASCuePoint() yöntemine bakın.

cuePoint olaylarını dinleme

cuePoint olayı, bir cuePoint olayı gerçekleştiğinde ActionScript kodunuzda denetim elde etmenizi sağlar. Şu örnekte işaret noktaları gerçekleştiğinde, cuePoint dinleyicisi, playheadTime özelliğinin değerini ve işaret noktasının adını ve türünü görüntüleyen bir olay işleyici işlevini çağırır. Sonuçları görmek için, bir önceki ActionScript işaret noktaları ekleme bölümündeki örnekle birlikte bu örneği kullanın.

my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Elapsed time in seconds: " + my_FLVPlybk.playheadTime); 
        trace("Cue point name is: " + eventObject.info.name); 
        trace("Cue point type is: " + eventObject.info.type); 
}

cuePoint olayıyla ilgili daha fazla bilgi için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümündeki FLVPlayback.cuePoint olayına bakın.

İşaret noktalarını bulma

ActionScript'i kullanarak herhangi türde bir işaret noktası bulabilir, bir zamana en yakın işaret noktasını bulabilir veya belirli bir ada sahip sonraki işaret noktasını bulabilirsiniz.

Şu örnekteki ready_listener() olay işleyici, ASpt1 işaret noktasını bulmak için findCuePoint() yöntemini çağırır ve sonra ASpt1 işaret noktasının zamanına en yakın gezinme işaret noktasını bulmak için findNearestCuePoint() yöntemini çağırır:

import fl.video.FLVPlayback; 
import fl.video.CuePointType; 
import fl.video.VideoEvent; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var rtn_obj:Object; //create cue point object 
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point 
function ready_listener(eventObject:VideoEvent):void { 
    rtn_obj = my_FLVPlybk.findCuePoint("ASpt1", CuePointType.ACTIONSCRIPT); 
    traceit(rtn_obj); 
    rtn_obj = my_FLVPlybk.findNearestCuePoint(rtn_obj.time, CuePointType.NAVIGATION); 
    traceit(rtn_obj); 
} 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function traceit(cuePoint:Object):void { 
    trace("Cue point name is: " + cuePoint.name); 
    trace("Cue point time is: " + cuePoint.time); 
    trace("Cue point type is: " + cuePoint.type); 
}

Şu örnekte, ready_listener() olay işleyici ASpt işaret noktasını bulur ve aynı ada sahip sonraki işaret noktasını bulmak için findNextCuePointWithName() yöntemini çağırır:

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
var rtn_obj:Object; //create cue point object 
my_FLVPlybk.addASCuePoint(2.02, "ASpt");//add AS cue point 
my_FLVPlybk.addASCuePoint(3.4, "ASpt");//add 2nd Aspt 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    rtn_obj = my_FLVPlybk.findCuePoint("ASpt", CuePointType.ACTIONSCRIPT); 
    traceit(rtn_obj); 
    rtn_obj = my_FLVPlybk.findNextCuePointWithName(rtn_obj); 
    traceit(rtn_obj); 
} 
function traceit(cuePoint:Object):void { 
    trace("Cue point name is: " + cuePoint.name); 
    trace("Cue point time is: " + cuePoint.time); 
    trace("Cue point type is: " + cuePoint.type); 
}

İşaret noktalarını bulmayla ilgili daha fazla bilgi için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümündeki FLVPlayback.findCuePoint(), FLVPlayback.findNearestCuePoint() ve FLVPlayback.findNextCuePointWithName() yöntemlerine bakın.

Gezinme işaret noktalarını arama

Bir gezinme işaret noktasını arayabilir, belirtilen bir zamandan sonraki gezinme işaret noktasını arayabilir ve belirtilen bir zamandan önceki gezinme işaret noktasını arayabilirsiniz. Şu örnek, ready olayı gerçekleştiğinde cuepoints.flv FLV dosyasını oynatır ve 7,748 değerindeki işaret noktasını arar. cuePoint olayı gerçekleştiğinde örnek, birinci işaret noktasını aramak için seekToPrevNavCuePoint() yöntemini çağırır. Bu cuePoint olayı gerçekleştiğinde örnek, geçerli işaret noktasının zamanı olan eventObject.info.time öğesine 10 saniye daha ekleyerek son işaret noktasını aramak için seekToNextNavCuePoint() yöntemini çağırır.

import fl.video.*; 
 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:Object):void { 
    my_FLVPlybk.seekToNavCuePoint("point2"); 
} 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
    trace(eventObject.info.time); 
    if(eventObject.info.time == 7.748) 
        my_FLVPlybk.seekToPrevNavCuePoint(eventObject.info.time - .005); 
    else 
        my_FLVPlybk.seekToNextNavCuePoint(eventObject.info.time + 10); 
} 
my_FLVPlybk.source = "http://helpexamples.com/flash/video/cuepoints.flv";

Daha fazla bilgi için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümündeki FLVPlayback.seekToNavCuePoint(), FLVPlayback.seekToNextNavCuePoint() ve FLVPlayback.seekToPrevNavCuePoint() yöntemlerine bakın.

Gömülü FLV dosyası işaret noktalarını etkinleştirme ve devre dışı bırakma

setFLVCuePointEnabled() yöntemini kullanarak gömülü FLV dosyası işaret noktalarını etkinleştirebilir ve devre dışı bırakabilirsiniz. Devre dışı bırakılan işaret noktaları, cuePoint olaylarını tetiklemez ve seekToCuePoint() , seekToNextNavCuePoint() veya seekToPrevNavCuePoint() yöntemleriyle çalışmaz. Ancak devre dışı bırakılan işaret noktalarını findCuePoint() , findNearestCuePoint() ve findNextCuePointWithName() yöntemleriyle bulabilirsiniz.

Gömülü bir FLV dosyası işaret noktasının etkinleştirilip etkinleştirilmediğini isFLVCuePointEnabled() yöntemini kullanarak test edebilirsiniz. Şu örnek, video oynatılmaya hazır olduğunda point2 ve point3 gömülü işaret noktalarını devre dışı bırakır. Ancak birinci cuePoint olayı gerçekleştiğinde, olay işleyici point3 işaret noktasının devre dışı bırakılıp bırakılmadığını test eder ve devre dışı bırakılmışsa etkinleştirir.

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv"; 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    my_FLVPlybk.setFLVCuePointEnabled(false, "point2"); 
    my_FLVPlybk.setFLVCuePointEnabled(false, "point3"); 
} 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Cue point time is: " + eventObject.info.time); 
        trace("Cue point name is: " + eventObject.info.name); 
        trace("Cue point type is: " + eventObject.info.type); 
        if (my_FLVPlybk.isFLVCuePointEnabled("point2") == false) { 
            my_FLVPlybk.setFLVCuePointEnabled(true, "point2"); 
        } 
}

Daha fazla bilgi için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümündeki FLVPlayback.isFLVCuePointEnabled() ve FLVPlayback.setFLVCuePointEnabled() yöntemlerine bakın.

ActionScript işaret noktasını kaldırma

removeASCuePoint() yöntemini kullanarak ActionScript işaret noktasını kaldırabilirsiniz. Şu örnek, ASpt1 işaret noktası gerçekleştiğinde ASpt2 işaret noktasını kaldırır:

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/cuepoints.flv" 
my_FLVPlybk.addASCuePoint(2.02, "ASpt1");//add AS cue point 
my_FLVPlybk.addASCuePoint(3.4, "ASpt2");//add 2nd Aspt 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
function cp_listener(eventObject:MetadataEvent):void { 
        trace("Cue point name is: " + eventObject.info.name); 
        if (eventObject.info.name == "ASpt1") { 
            my_FLVPlybk.removeASCuePoint("ASpt2");     
            trace("Removed cue point ASpt2"); 
        } 
}

Daha fazla bilgi için, Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu bölümündeki FLVPlayback.removeASCuePoint() yöntemine bakın.