İş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:
İ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:
-
Flash İşaret Noktaları iletişim kutusunu açmak için, Bileşen denetçisindeki
cuePoints
parametresinin değer hücresini çift tıklatın.
-
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.
-
Ad sütununda Yeni İşaret Noktası metnini tıklatın ve metni işaret noktasının adı olacak şekilde düzenleyin.
-
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.
-
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.
-
Daha fazla ActionScript işaret noktası eklemek için, her biri için 2 ile 5 arasındaki adımları yineleyin.
-
Değişikliklerinizi kaydetmek için Tamam'ı tıklatın.
ActionScript işaret noktasını silme:
-
Flash İşaret Noktaları iletişim kutusunu açmak için, Bileşen denetçisindeki
cuePoints
parametresinin değer hücresini çift tıklatın.
-
Silmek istediğiniz işaret noktasını seçin.
-
Sol üst köşede, işaret noktaları listesinin yukarısındaki eksi (-) işaretini silmek için tıklatın.
-
Silmek istediğiniz her işaret noktası için 2 ile 3 adımlarını yineleyin.
-
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:
-
Flash İşaret Noktaları iletişim kutusunu açmak için, Bileşen denetçisindeki
cuePoints
parametresinin değer hücresini çift tıklatın.
-
Etkinleştirmek veya devre dışı bırakmak istediğiniz işaret noktasını seçin.
-
Açılır menüyü tetiklemek için Tür sütunundaki değeri tıklatın veya aşağı oku tıklatın.
-
İş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.
-
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.
|
|
|