flash menu programı ile siteme menu yaptım. Headeri bir güzel editledim ve herşeyi yerli yerine oturtmayı header kısmına eklediğim swf'nin adresini vererek yaptım. Upload edip çalışıp çalışmadığına baktım.. Buraya kadar her şey güzel. Menüm çalışıyor, fakat;
Site açılınca menünün etrafında bir çerçeve oluyor ve "bu denetimi etkinleştirmek için tıklatın" yazıyor, bir kere tıklattıktan sonra çalışmaya başlıyor...
Aynı şekilde swish ile ardarda dönen resimler yaptım ve blok olarak sayfaya koydum... Burada da yukarıda anlattığım şekilde bir çerçeve oluyor ve üzerine gelince "bu denetimi..." şeklinde görüntüsü hiç te hoş olmayan bir çerçeve çıkıyor.. Bir kere tıklamak gerekiyor.
Bunun ie'nin güvenlik ayarlarından kaynaklandığını anladım. Biraz araştırma yaptım, bundan kurtulmanın yolları var fakat, hep html için anlatılanları buldum. php nuke için nereye hangi kodu ,nereye yazacağımı , nasıl yapacağımı bir türlü bulamadım... :)
Benim bir swf dosyam ve ve bu swfnin yolunu gösteren bir block dosyam var...
Umarım anlatabilmişimdir..
Yardımlarınızı bekliyorum..
bb.swf isimli bir çalışmayı içeren html sayfasında normalde alttaki gibi eklentiler yapılır (bu kodları görebilmek için html sayfasını açın ve ana menüdeki Görünüm-->Kaynak kısmını seçin) :
Burada bb.swf dosyasının özellikleri barındırılmaktadır.
İlk sayfada anlatıldığı gibi extension uygulamasından sonra ilk yaptığımız işlem Publish Settings kısmında html sekmesine geçip Template kısmını Active Content Update-HTTP şeklindeydi.Bu işlemi tamamladığımızda html sayfasında yukarıda yazdığımız kodlar aşağıdaki gibi değişecektir.
<script language="j a v a s c r i p t">
if (AC_FL_RunContent == 0) {
a l e r t("This page requires AC_RunActiveContent.js. In Flash, run \"Apply Active Content Update\" in the Commands menu to copy AC_RunActiveContent.js to the HTML output folder.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '550',
'height', '400',
'src', 'bb',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'bb',
'bgcolor', '#ffffff',
'name', 'bb',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', 'bb',
'salign', ''
); //end AC code
}
</script>
Yapılan eklentiler kırmızı ile belirlenmiştir.script tagları arasındaki kodları incelerseniz swf dosyasının tüm özelliklerinin bir j a v a s c r i p t içine kaydodulduğunu görürsünüz. Bu kodlar daha sonra oluşturulacak olan js kodları ile beraber hem swf dosyasının tüm özellikleriyle sayfaya yüklenmesini sağlar hem de activeX denetim sorununu ortadan kaldırır.
Mavi ile yazılan herkesin aşina olduğu kodların baş ve sonuna noscript tagları eklenmiştir.Bu eklentilerin arasında yazılan tüm kodlar html sayfası tarafından yorumlanmazlar. Yani bu kodlar yok kabul edilir.
Şimdi madem ki bu kodlar yok kabul ediliyor o zaman bunları silersek ne olur ?
Tahmin ettiğiniz gibi hiçbirşey değişmez.Swf dosyasının yüklenmesi ve yorumlaması artık tamamen j a v a s c r i p t kodları ile oluşturulmaktadır.Bu hoş olmasa da şu anda bulunan tek çözüm budur.Deneme amaçlı çalışmanızdaki noscript tagları da dahil olmak üzere içindeki kodları sildiğinizde html sayfasının swf dosyasını sorunsuz bir şekilde yüklediğini göreceksiniz.
Peki bu kodları silmeyip sadece <noscript> ve </noscript> taglarını silerseniz ne olur?
Bu durumda html sayfası j a v a s c r i p t kodları sayesinde bb.swf dosyasını yükler.noscript tagı kaldırıldığı için html sayfası buradaki kodları da yorumlar ve yine bb.swf dosyasını yükler. Bu durumda sayfaya 2 adet bb.swf dosyası yüklenmiş olur. Tek fark j a v a s c r i p t kodları ile yüklenende activeX denetim sorunu yoktur, ikinci yüklenen de ise vardır.
Flashseverlerin bir j a v a s c r i p t koduna ihtiyaç duyması rahatsız edici olsa da buluna yöntem anlatıldığı gibidir.İilerideki sürümlerde bu iki firmanın soruna uygun çözüm bulmalarını ummaktayız.
Şimdi 2.sorunumuz bir html sayfasında birden fazla swf dosyası varsa ne yapılacağıdır
Bir html sayfasına birden fazla swf dosyası yüklenmesi durumunda activeX sorununu halletmek daha sıkıntılı bir durumdur.Bu işlemde manuel uygulamalara ihtiyaç vardır.Umarım anlatılanlar size karışık gelmez.Şimdi senaryomuz şöyle:
Elimizde index.html diye bir sayfamız var ve bu sayfa içine aa.swf ve bb.swf isimli 2 dosya yüklemeyi planlıyoruz.
1.sayfa html sayfası içindeki tek bir swf dosyaı için yapılacaklar anlatılmıştı.Önce buradaki işlem yürürlüğe konulacak.
1- aa.fla dosyanızı açın 1.sayfada anlatılan yöntemleri uygulayarak aa.html sayfasını oluşturun.Bu işlemi düzgün yaptığınızda aa.html sayfasında activeX denetim sorunu ortadan kalkar.
2- Aynı işlemi bb.fla dosyasını açarak uygulayın ve sorunsuz olan bb.html sayfanızı oluşturun.
3- Biz burada oluşturulan aa.html ve bb.html sayfasını kullanmayacağız.Bu iki swf dosyasını index.html sayfasına yükleyeceğiz.Peki bu 2 html sayfasını niye oluşturduk? Amacımız bu sayfaların kaynak kodları açarak index.html sayfasında kullanmaktır.Bunun nasıl yapılacağı aşağıda anlatılacaktır.
4- Şu anda elimizde aa.html, bb.html,aa.swf,bb.swf, AC_RunActiveContent.js ve index.html sayfamız mevcut. İndex.html sayfasında istediğimiz alanlara bu 2 swf dosyasını ekleyelim.İndex.html sayfasında hiçbir eklenti olmadığından activeX denetim sorunu vardır.Kaynak kodlara baktığımızda alttaki gibi bildik kodları görürsünüz:
üstte gördüğünüz gibi aa ve bbswf dosyaları alt alta eklenmiştir.Şimdi bunlara manuel olarak tek tek j a v a s c r i p t kodlarını ekleyeceğiz.
aa.html sayfanızı çift tıklayarak açın ve Görünüm menüsünden kaynak kodlara ulaşın:
body alanı içinde script tagları arasındaki kaynak kodları kopyalayıp index.html sayfasındaki yukarıda gösterilen kodların üzerine yapıştırın. Birde yine ilk sayfada anlatılan klasik eski kodları devreden çıkartmak için nocript taglarını unutmayalım.
<script language="j a v a s c r i p t">
if (AC_FL_RunContent == 0) {
a l e r t("This page requires AC_RunActiveContent.js. In Flash, run \"Apply Active Content Update\" in the Commands menu to copy AC_RunActiveContent.js to the HTML output folder.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '550',
'height', '400',
'src', 'aa',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'aa',
'bgcolor', '#ffffff',
'name', 'aa',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', 'aa',
'salign', ''
); //end AC code
}
</script>
Yukarıdaki kodlarla index.html sayfasında aa.swf dosyasındaki sorun düzeltilmiş olur.Kalın kırmızı harfle yazılan noscript taglarını unutmayınız.Bu eklenmezse daha önce de anlattığım gibi aynı swf dosyası 2 kez yüklenir. bb.swf dosyasındaki sorunu çözmek için yine aynı uygulama yapılmalıdır. bb.html sayfasının kaynak kodları kopyalanır ve bb.swf dosyasının bulunduğu alanın hemen üzerine yapıştırılır.Yani:
// aa.swf dosyası için gereken j a v a s c r i p t kodları
<script language="j a v a s c r i p t">
if (AC_FL_RunContent == 0) {
a l e r t("This page requires AC_RunActiveContent.js. In Flash, run \"Apply Active Content Update\" in the Commands menu to copy AC_RunActiveContent.js to the HTML output folder.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '550',
'height', '400',
'src', 'aa',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'aa',
'bgcolor', '#ffffff',
'name', 'aa',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', 'aa',
'salign', ''
); //end AC code
}
</script>
// bb.swf dosyası için gereken j a v a s c r i p t kodları
<script language="j a v a s c r i p t">
if (AC_FL_RunContent == 0) {
a l e r t("This page requires AC_RunActiveContent.js. In Flash, run \"Apply Active Content Update\" in the Commands menu to copy AC_RunActiveContent.js to the HTML output folder.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '550',
'height', '400',
'src', 'bb',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'bb',
'bgcolor', '#ffffff',
'name', 'bb',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', 'bb',
'salign', ''
); //end AC code
}
</script>
Evet abizer, yardımcı olmaya çalıştığın için teşekkürler ama bu da derdime deva olmadı, yukarıda bahsettiğim gibi html sayfa için çözüm bu... Halbuki benim bir adet flash.swf dosyam ve bir adet block dosyam var.. Kodlarıda şu şekilde;
Yapman gerekeni kısaca anlatım block olarak bunu kullancaksın
bir adet deneme.js kodları oluşturacaksın içinede bu kodları yerleştireceksin
burda yükseklik genişlik ve adres yolunu göstereceksin hepsi bu kadar
if (eregi("block-program.php", $PHP_SELF)) {
Header("Location: index.php");
die();
}
$content = '<center>
<script type="text/j a v a s c r i p t"
src="deneme.js">
</script>
</center>';
?>
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız