İşte meydan okuma: Ben bir JS fonksiyonunda geri arama için/mağaza tespit edebilmek istiyorum bilinmeyen bir DOM kimliğini kullanarak bir sayfa gömülecek Flash film var.Bir JavaScript işlevi hangi Flash DOM nesnesinin onu aradığını tespit edebilir mi?
Benim ideal kullanıcı akışı olacaktır:
- Kullanıcı Flash düğmesini tıklar.
- Flash, herhangi bir animasyonu/videoyu/sesi/vb. Duraklatır
- Flash, sayfa kaplaması yer paylaşımı deneyimini görüntülemek için enjekte edilmiş bir JS işlevini çağırır. Kullanıcı bindirme deneyim kapattığında
- Flash nesne üzerinde bir geri arama yöntemi olarak adlandırılır.
- Flash oynatmaya devam ediyor.
sorun AS3 ("functionName", args ...) yöntemini ExternalInterface.call kullandığında, orada bir DOM olayı tetiklenir gibi görünüyor ve böylece bunu söylemek mümkün değildir gelmez, hangi nesne JS işlevi denir, böylece "registerMe()" işlevine sahip çalışmak işe yaramıyor. Temel olarak, enjekte edilen JS işlevinin hangi DOM nesnesinin çağrılacağını belirlemesinin bir yolu yoktur, çünkü Flash nesnesinin kimliği bilinmemektedir.
[UPDATE] Bu bir SWF, loaderInfo.url kullanarak kendi URL'sini belirleyebilir. Bu bilgiyi, tüm uygulama/x-shockwave-flash DOM nesnelerine karşı gelecekteki bir karşılaştırma için saklanabilmesi için bindirme deneyimini başlatan komut dosyasına aktarıyorum. Bir eşleşme bulunduğunda, bu arayan SWF'dir. Bu mantıkta bir kusur gören var mı? (Ben AS ile olduğu kadar JS ile neredeyse yetkin değilim)
Bazen Flash ve JS'nin birlikte çalışmasını sağlamakla ilgili kabuslar görüyorum. – sdleihssirhc
Her zaman, sayfadaki tüm SWF'leri bulma ve her birinde geri arama işlevini denemenin kaba kuvvet tekniği vardır, ancak bu beni riskli ve sorumsuz olarak vurur, bu yüzden masa üstünde değildir. –
swf'nin kontrolü sizde var mı? –