Action Script 3.0 ile birlikte flash videolarda (.flv) müthiş kullanım kolaylıkları sağlandı.
Bunların en başında ise "CUE_POINT" yani işaret noktları belirleyebilmek, peki bu ne işe yarıyor; siz hazırladığınız flv dosyasında belirlediğiniz süre yada sürelerde (örn; video’nun 10cu saniyesinde) function tetikleyebiliyorsunuz.
hazırladığınız video’yu (.flv) uzantılı olarak Window>Components yardımıyla ile flash’a aktarın. Aktarma işlemi bittikten sonra yine Window>Component Inspector penceresinden component özelliklerinden "parameters" sekmesinde yer alan cuePoints satırına tıklayın.
Karşınıza Cue Point Penceresi çıkacak sol ekran’da "+" ekranına tıklayın. "Time" alanında istediğiniz sürenizi (00:00:05.000 - saat:dakika:saniye:salise) "Name" bölümüne herhangi bir isim ("flvTesting") girin. Böylelikle function’un hangi saniyede çalışmasını istediğimizi belirlemiş oluyoruz.
Şimdi biraz code yazarak işlemimizi tamamlayalım. F9’a basarak Action Script Paneli açın,
Flash uygulamanız içindeki video oynarken bir event’in bunu takip etmesi ve girdiğiniz süre içinde function’u tetiklemesi gerekiyor. Belki aklımıza ENTER_FRAME kullanarak yapabiliriz, her saniye tetikletebiliriz diye düşünebilirsiniz. Ancak şunları da düşünmeniz gerekiyor;
- ENTER_FRAME flash uygulamanız ile birlikte çalışır,
- Videonuz ile senkronize çalışmama olasığı yüksek,
- ENTER_FRAME her saniye tetikliyor ancak sizin girdiğiniz sürede "salise" değeri de olabilir.
Bizim bunu senkronize bir şekilde çalıştırabilmemiz için sürekli video’yu takip altına almamız gerekiyor, bunuda "MetadataEvent" olayı ile sağlayabilirsiniz. Siz değerleri girdiğinizde action script sürekli videoyu takip edecek belirtilen süre’ye geldiğinde function’u çalıştıracak.
video’nuzun ismini "testVideo" olduğunu varsayarsak, aşağıdaki kodu kullanarak CUE_POINT işlemini tamamlamış olursunuz.
testVideo.addEventListener(MetadataEvent.CUE_POINT, cueCheck);
function cueCheck(evt:MetadataEvent):void
{
var cName:String=evt.info.name;
trace(cName); // burada siz "flvTesting" ismini olacaksınız
}
yukarıdaki uygulamayı test ettiğinizde muhtemelen aşağıdaki hatayı alacaksınız.
1046: Type was not found or was not a compile-time constant: MetadataEvent.
MetadataEvent’i "top level" bir event sınıfı olmadığı için bunu size flash içine en üste bu sınıfı import etmenizini istiyor.
import fl.video.MetadataEvent;
testVideo.addEventListener(MetadataEvent.CUE_POINT, cueCheck);
function cueCheck(evt:MetadataEvent):void
{
var cName:String=evt.info.name;
trace(cName); // burada siz "flvTesting" ismini olacaksınız
}