web-gelistirme-sc.com

Adobe Flash kullanılamıyorsa alternatif görüntüler sağlama

Adobe Flash uygulamasının kurulu olmaması ve/veya devre dışı bırakılması durumunda, kullanıcının alternatif bir GIF/PNG resmi sunmasının herhangi bir yolu var mı? W3C'den aşağıdaki gibi, JavaScript'in varlığını belirleyen JavaScript önerileri buldum. İstemcideki Adobe Flash: W3C Alternatif görüntüler sağlama

Açıkçası, bir non JS tekniğini tercih ederdim. <noscript> 'ye eşdeğer bir XHTML etiketi düşünüyorum. (eğer nesne (bizim durumumuzda Flash) gösterilemiyorsa/yüklenemiyorsa, <noobject> gibi).

Bu ayrılığa ihtiyaç duyulmasının nedeni şudur: Çalıştığım banka tercihen afişlerini Flash biçiminde gösterecektir. Mümkün olmadığı takdirde basit bir resim gösterilmelidir. Geçmişte daha önce belirtilen şekilde çözüldü. Şu anda bir tasarım yenilemesi üzerinde çalışıyoruz ve bu kodun üzerinde durduğum yer burası, bunun gerçekten en şık ve uyumlu olup olmadığını merak etmemi sağlıyor.

Başka bir fikir bu beni etkiliyor: Flash nesnelerini JavaScript devre dışı bırakılmış bir ortamda yüklemek gerçekten mümkün mü?

17
Gerhard Dinhof

Aslında flash yüklü ama javascript kapalı olması geçerli bir senaryodur. Bu, çoğu tarayıcıda çalışmalıdır:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600" id="flashContent">
  <param name="movie" value="flash.swf" />
  <!--[if !IE]>-->
    <object type="application/x-shockwave-flash" data="flash.swf" width="800" height="600">
  <!--<![endif]-->
      <img src="(...)" alt="Put your alternate content here" />
  <!--[if !IE]>-->
    </object>
  <!--<![endif]-->
</object>
13
Kristian J.

Zarif bir bozulma için aşağıdaki kodu kullanın. İyi çalışıyor.

<!--[if !IE]> -->
<object type="application/x-shockwave-flash" data="flash.swf" width="500" height="100">
<!-- <![endif]-->

<!--[if IE]>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
    width="500" height="100">
  <param name="movie" value="flash.swf" />
<!--><!--dgx-->
  <param name="loop" value="false">
  <param name="menu" value="false">
  <param name="quality" value="high">
  <img src="flash_replacement.png" width="500" height="100" alt="No Flash">
</object>
<!-- <![endif]-->
5
Raithlin

Neden javascript kullanmaktan kaçınmak istediğinizi bilmiyorum, Flash ile uğraşırken en iyi çözüm bu.

SWFObjects Library (bu konuda şimdiye kadar bilinenlerin en iyileri) kullanarak şunları yapabilirsiniz:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
 <title> My Home Page </title> 
 <meta name="viewport" content="width=780"> 
 <script type="text/javascript" src="swfobject.js"></script> 
</head> 
<body> 
 <div id="splashintro"> 
   <a href="more.html"><img src="splash_noflash.png" /></a> 
 </div>
 <script type="text/javascript"> 
   var so = new SWFObject("csplash.swf", "my_intro", "300", "240", "8", "#338899"); 
   so.write("splashintro"); 
 </script> 
 </body> 
</html>

betiğin yaptığı şey, tarayıcı Flash'ı desteklemiyorsa, splashintro div dosyasını flash dosyası ile değiştirirse, hiçbir şey yapmaz ve splash_noflash.png gösterilir.

P.S. Bu teknikle iPhone için hazırsınız, mavi küpü göstermek yerine görüntüyü gösterecek :)

4
balexandre

Adobe Flash uygulamasının kurulu olmaması ve/veya devre dışı bırakılması durumunda, alternatif bir GIF/PNG resmi sağlayabiliriz.

<object id="flashcontent classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550px" height="400px">
<param name="movie" value="mymovie.swf" />

<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="mymovie.swf" width="550px" height="400px">
<!--<![endif]-->

<p>
Fallback or 'alternate' content goes here.
This content will only be visible if the SWF fails to load.
</p>

<!--[if !IE]>-->
</object>
<!--<![endif]-->

</object>

Ve bunu da ekleyin ...

<script type="text/javascript">
swfobject.registerObject("flashcontent", "9", "/path/to/expressinstall.swf");   
</script>
2
Sinju Moncy

Hile yapmak için satır içi stil kullanarak buluyorum.

Örneğin:

<div style="background-image: url('...');">
    <object>
     /* Embedded Flash */
    </object>
</div>
2
Andres Vargas

Bunu CSS'de yapmanın kolay bir yolunu yazdım - fazladan JavaScript yok.

Kimliğinize/Sınıfınıza Flash filminizin bulunduğu yeri yazın ve bir arka plan resmi kullanın. Flash filminizi bu div içine yerleştirin. 

Örneğin:

<div ID="MyFlashMovie"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600" id="flashContent">
  <param name="movie" value="flashMovie.swf" />... etc., etc.</object>
</div> etc.

Ardından CSS’nizde:

#MyFlashMovie {
background: url("alternateGraphic.png");
background-repeat: no-repeat;
height: XXpx;
width: XXpx;
}

Flash kullanılamıyorsa, iphone/pad'de söyleyin, grafik görüntülenecektir. Bununla ilgili bulduğum tek dezavantajı, Flash filminiz saydam bir arka plan kullanıyorsa, alt grafikleri geçişler arasında göreceksiniz. Sadece Flash filmi içinde en düşük katmanınızla düz bir renk yapın (web sitesiyle aynı bg rengin olduğundan emin olun) ve iyi görünecektir.

~ GreaseJunkie

0
GreaseJunkie