allowScriptAccess etiketinin değerini okumak istiyorum, böylece "hiç" olarak ayarlanmışsa veya bir ExternalInterface çağrısı yapmaya kalkışmayacak şekilde ayarlanmamışsa. Flex çerçevesini kullanarak Application.application'ı kullanabilirim. Flash için bir eşdeğer var mı?allowScriptAccess'in değerine Flash'tan nasıl erişebilirim?
cevap
Bu parametre değerlerine erişmenin Flex veya Flash'tan mümkün olmadığı oldukça iyi belgelenmiş gibi görünüyor. Flashvarlara önceki cevapta önerildiği gibi erişilebilir, ancak nesne etiketinin parametre değerleri yapamaz.
Herhangi bir sorgu dizesi parametresi ile birlikte bu tür bilgilere flashVars özelliği üzerinden erişilebilir. FlashVars özelliklerine erişebilirsiniz. Ayrıntılı bir tartışma için this'u okuyun. Application.application.parameters
'un Flash eşdeğeri stage.loaderInfo.parameters
'dur.
This blog bunu nasıl tutarlı bir şekilde yapabileceğinizi açıklar.
Doğrudan allowScriptAccess değerine erişmenin bir yolu yoktur, ancak yalnızca bir try-catch kullanarak bir ExternalInterface çağrısı yapıp yapamayacağınızı kolayca belirleyebilirsiniz.
try
{
ExternalInterface.call('document.getElementById', 'NOELEMENTBYTHISNAME');
allowScriptAccess = true;
}
catch(err:SecurityError)
{
allowScriptAccess = false;
}
Daha sonra başka ExternalInterface arama yapılmasını önlemek için uygulama kontrolü akışını belirlemek için allowScriptAccess kullanabilirsiniz.
@dirkgently Çözümünüz, Flex ortamında harika bir şekilde çalışır, ancak Application.app yapısı Flash'ta bulunmaz; Bunun sonucu, bu sorunu tam olarak çözmemesidir. Ayrıca EI.available sadece EI etkin bir kapta olmanızı sağlar. Cevabınız için teşekkürler. – monvural
Güncellenmiş yanıtımı görün. Ayrıca, bağlantıları okuyun;) – dirkgently