SWF dosyası bir HTML sayfasına nasıl gömülür?


Yanıtlar:


174

SWF'yi bir HTML sayfasına gömmek için en iyi yaklaşım SWFObject kullanmaktır .

Flash içeriğini gömmek için kullanımı kolay ve standartlara uygun bir yöntem olan basit bir açık kaynaklı JavaScript kütüphanesidir.

Ayrıca Flash player sürüm tespiti sunar. Kullanıcının Flash sürümü gerekli değilse veya JavaScript devre dışı bırakılmışsa, alternatif bir içerik görür. Bu kitaplığı, bir Flash player yükseltmesini tetiklemek için de kullanabilirsiniz. Kullanıcı yeni sürüme geçtikten sonra tekrar sayfaya yönlendirilir.

Belgelerden bir örnek:

<!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" lang="en" xml:lang="en">
  <head>
    <title>SWFObject dynamic embed - step 3</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript" src="swfobject.js"></script>

    <script type="text/javascript">
        swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
    </script>

  </head>
  <body>
    <div id="myContent">
      <p>Alternative content</p>
    </div>
  </body>
</html>

Bu SWFObject HTML ve JavaScript olduğu ile iyi bir araç boyunca kullanmak jeneratör . Temelde SWFObject kullanarak Flash'ı gömmek için ihtiyacınız olan HTML ve JavaScript'i oluşturur. Parametrelerinizi girmeniz için çok basit bir kullanıcı arayüzü ile birlikte gelir.

Şiddetle tavsiye edilir ve kullanımı çok basittir.


11
SWFObject iyidir. Sadece işe yarıyor. Daha da güzel bir fikir, javascript'i almak için bir İçerik Dağıtım Ağı kullanmaktır. Google'ın ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js kullanıyorum
Ardee Aram

Nesne etiketini doğrudan IE9 ile kullanma konusunda sorun yaşadım ama swfobject ile mükemmel çalışıyor.
AndyMcKenna

Cevabınız için teşekkürler. Artık, html'deki çalışma örneğiyle birlikte oynatma özelliğine erişmesi için bir oynatıcı da önerebilirsiniz. ????
Sumit Ramteke

Bu, flash oynatıcının yüklü olmadığı sistemde çalışabilir mi veya tüm tarayıcıları destekleyebilir mi?
Muhammed Javed

Proje şimdi GitHub'a taşındı: github.com/swfobject/swfobject ve swf nesnesini yerleştirmek için yeni teknikvar el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);
Lucky

127
<object width="100" height="100">
    <param name="movie" value="file.swf">
    <embed src="file.swf" width="100" height="100">
    </embed>
</object>

1
Bu kod XHTML için geçerli değil ... <embed> bir nesne etiketi içinde olmamalıdır.
Anheledir

59
Kullanıcının XHTML geçerli olduğuna dair bir spesifikasyonu yok, HTML istedi
Ólafur Waage

3
Bu makalede flash ve geçerli XHTML yerleştirme hakkında iyi bir açıklama var. yoast.com/articles/valid-flash-embedding
Joko Wandiro

3
<object> öğesinde neden dataöznitelik kullanılmıyor ? W3C html5 dokümanlardan alıntı: özeliikten veya tip özelliğinden en az biri olmalıdır bulunabilir.
vladkras

@JokoWandiro sağladığınız bağlantı maalesef gitti. İşte arşivlenmiş bir sürümü: web.archive.org/web/20180602024700/https://yoast.com/…
Hermann.Gruber

17

Basit HTML5 etiketi yerleştirmeye ne dersiniz?

<!DOCTYPE html>
<html>
<body>

<embed src="anim.swf">

</body>
</html>

13

Bu, kök ortamdan uygulama için uygundur.

<object type="application/x-shockwave-flash" data="/dir/application.swf" 
id="applicationID" style="margin:0 10px;width:auto;height:auto;">

<param name="movie" value="/dir/application.swf" />
<param name="wmode" value="transparent" /> <!-- Or opaque, etc. -->

<!-- ↓ Required paramter or not, depends on application -->
<param name="FlashVars" value="" />

<param name="quality" value="high" />
<param name="menu" value="false" />

</object>

.Swf dosyasına bağlı olarak ek parametreler eklenmeli / eklenmelidir. Gömme yok , sadece nesne ve parametreler içinde, bu yüzden her yerde geçerli, çalışıyor ve kullanılabilir durumda kalıyor, hangisinin önemli olduğu önemli değil! :)


8
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" 
style="width:640px;height:480px;margin:10px 36px;">

<param name="movie" value="http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="wmode" value="opaque" />
<param name="quality" value="high" />
<param name="menu" value="false" />

</object>

2
Nesne> veri ve film> değer parametrelerinin aynı olduğunu unutmayın. Bu kod, izlemek ve paylaşmak için ücretsiz - youtube videosu için çalışmalıdır.
Ürkütücü

3
Genel olarak, cevapların sadece askere kod bırakmak yerine, verdikleri kodu açıklaması arzu edilir. Amaç, problemleri öğrenmek ve onları ortadan kaldırmak yerine gelecekte önlemektir.
KRyan

7

Flash eklemek için bu js kitaplıklarından birini kullanıyorsanız, içine düz nesne gömme etiketi eklemenizi öneririz <noscript/>.




2

Bu işe yarayacak, eminim!

<embed src="application.swf" quality="high" pluginspage="http://www.macromedia.com/go/getfashplayer" type="application/x-shockwave-flash" width="690" height="430">

1

'En iyi' yol nedir? 'En verimli', 'en hızlı renderleme' gibi kelimeler daha spesifiktir. Her neyse, bana çoğu zaman yardımcı olacak alternatif bir cevap öneriyorum ('en iyi' olup olmadığı önemli değil).

Alternatif cevap: Bir iframe kullanın.

Yani, SWF dosyasını sunucuda barındırın. SWF dosyasını kök veya public_html klasörüne koyarsanız, SWF dosyası şu konumda bulunur www.YourDomain.com/YourFlashFile.swf.

Ardından, index.html dosyasında veya herhangi bir yerde, yukarıdaki konumu iframe'inize bağlayın; iframe'inizi nereye koyarsanız yerleştirin, içeriğinizin çevresinde görüntülenir. Buraya bir iframe koyabilirseniz, buraya bir SWF dosyası koyabilirsiniz. İframe boyutlarını SWF dosyanızla aynı yapın. Aşağıdaki örnekte, SWF dosyası 500 x 500'dür.

Sahte kod:

<iframe src="//www.YourDomain.com/YourFlashFile.swf" width="500" height="500"></iframe>

Yukarıdaki HTML kodu satırı SWF dosyanızı gömecektir. Başka bir karmaşaya gerek yok. Artıları: W3C uyumlu, sayfa tasarımı dostu, hız sorunu yok, minimalist yaklaşım.
Eksileri: Bir tarayıcıda başlatıldığında SWF dosyanızın etrafında beyaz boşluk.

Bu alternatif bir cevap. Bunun 'en iyi' yanıt olup olmadığı projenize bağlıdır.


3
google @Stoic için üzgünüm yanlış //www...kullanmanız //anlamına gelir HTTPS veya HTTP üzerinde aynı bağlantı türünü kullanarak çalışır
Barkermn01

1

Bunun eski bir soru olduğunu biliyorum. Ama bu cevap şimdiki zaman için iyi olacak.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>histo2</title>
        <style type="text/css" media="screen">
        html, body { height:100%; background-color: #ffff99;}
        body { margin:0; padding:0; overflow:hidden; }
        #flashContent { width:100%; height:100%; }
        </style>
    </head>
    <body>
        <div id="flashContent">
            <object type="application/x-shockwave-flash" data="histo2.swf" width="822" height="550" id="histo2" style="float: none; vertical-align:middle">
                <param name="movie" value="histo2.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffff99" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="window" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
                <a href="http://www.adobe.com/go/getflash">
                    <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
                </a>
            </object>
        </div>
    </body>
</html>

1

Thi, IE, Edge, Firefox, Safari ve Chrome'da çalışır.

<object type="application/x-shockwave-flash" data="movie.swf" width="720" height="480">
            <param name="movie" value="movie.swf" />
            <param name="quality" value="high" />
            <param name="bgcolor" value="#000000" />
            <param name="play" value="true" />
            <param name="loop" value="true" />
            <param name="wmode" value="window" />
            <param name="scale" value="showall" />
            <param name="menu" value="true" />
            <param name="devicefont" value="false" />
            <param name="salign" value="" />
            <param name="allowScriptAccess" value="sameDomain" />
            <a href="http://www.adobe.com/go/getflash">
                <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
            </a>
        </object>

0

Bu benim için çalıştı:

    <a target="_blank" href="{{ entity.link }}">
        <object type="application/x-shockwave-flash" data="{{ entity.file.path }}?clickTAG={{ entity.link }}" width="120" height="600" style="visibility: visible;">
            <param name="quality" value="high">
            <param name="play" value="true">
            <param name="LOOP" value="false">
            <param name="wmode" value="transparent">
            <param name="allowScriptAccess" value="true">
        </object>
    </a>

0

<embed>Elemanı kullanın :

<embed src="file.swf" width="854" height="480"></embed>

-1

Aşağıdaki gibi bir bilginiz varsa JavaScript'i kullanabilirsiniz, örneğin:

swfobject.embedSWF("filename.swf", "Title", "width", "height", "9.0.0");

- 9.0.0 flash sürümüdür.

Veya <object>HTML5 etiketini kullanabilirsiniz .


-1 swfobject sadece JavaScript'in bir parçası değildir, sadece kütüphaneyi gömmeden arayamazsınız. ve <object> etiketi için işlevlerin çoğu HTML 4'ten 5'e çıkarılmıştır. Yine de kullanılabilir, ancak önerilmez. Sonuçta çok kötü bir cevap.
rorypicko

çok kötü bir cevap olduğunu söylemeden önce denedin mi? çok kötü bir cevap olduğunu, tamamen işe ya da yanlış olmayan cevap olduğunu unutmayın.
Allan

birisini javascript kullanması için bilgilendirdiğiniz ve daha önce bahsetmediğiniz bir javascript kitaplığını kullanarak kodu yapıştırmanız kötü bir yanıt
veriyor

Zaten Javascript kullanılmış bahsetti ve senaryo verdi. Bir kaşık besleme yapan tüm çalışma kodunu / senaryosunu verirsem. Senaryo gayet iyi, sadece bir mantık.
Allan

Yorumumu yanlış anlıyorsun. Ona SWFObject Javascript dosyasını
eklemesini söylemedin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.