2011-05-10 43 views
5

Đây là một điều phổ biến mà tôi tưởng tượng phải có một cách "tốt" để nhúng Flash vào HTML5 một cách rõ ràng? Tôi chỉ quan tâm đến việc hỗ trợ các trình duyệt sau: FF3, FF4, IE7, IE8, IE9, Chrome và Safari.Cách tốt nhất để nhúng Flash cho trình duyệt hiện đại bằng HTML5 là gì?

Tôi biết có một số giải pháp Javascript như SWFObject, nhưng điều đó có vẻ như quá mức cần thiết. Không chỉ có một cách sạch sẽ, nhanh chóng và dễ dàng bằng cách sử dụng HTML?

Ngoài ra: Có nhược điểm nào khi chỉ sử dụng <embed> không? Nó đã được W3C khấu hao trước đây, nhưng tôi hiểu nó đã trở lại HTML5. Vậy tại sao không chỉ sử dụng nó thay vì faffing xung quanh với <object>?

Trả lời

3

Đã thử jQuery Tools?

Về cơ bản, tất cả các bạn đã làm là:

<div id="clock"></div> 

<script> 
flashembed("clock", "/media/swf/global/clock.swf"); 
</script> 

Một ví dụ làm việc sẽ là:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script> 

<div id="clock"></div> 

<script> 
flashembed("clock", "http://jquerytools.org/media/swf/global/clock.swf"); 
</script> 

Nó làm việc với jQuery 2.0.3, 1.10.2, 1.9.0.

+0

Tôi đã thêm một liên kết tập lệnh vào nguồn jQuery và mã trên vào trang của tôi (rõ ràng là có liên kết hoạt động), nhưng không có gì xảy ra: Tôi chỉ nhận được một trang trống. Tôi đã bỏ lỡ bất cứ điều gì? – radagast

+0

Ví dụ trên có các thẻ tối thiểu cần thiết để nó hoạt động. Kiểm tra trang của bạn với nó. – Parziphal

+0

Nó hoạt động ngay bây giờ. Tôi không có dòng chữ thứ hai. Cảm ơn. – radagast

0

SWFObject được tạo để tự động xử lý các cách khác nhau mà mỗi trình duyệt diễn giải thẻ đối tượng. Tôi không biết về bất kỳ thay đổi thực sự nào đối với kịch bản này, ngay cả với ie9, vẫn yêu cầu kích hoạt người dùng của đối tượng x hoạt động.

tôi vẫn thích SWFObject cho bàn mạnh mẽ và đơn giản của đèn flash vars:

var flashvars = { 
    filePath: "somePath", 
    verbose: "true" 
}; 

var params = { 
    quality: "high", 
    wmode: "opaque", 
    menu: "false", 
    base: "/flash/home_page/" 
}; 

var attributes = { 
    id:  "flashContent" 
}; 


    swfobject.embedSWF(
     "../flash/home_page/home.swf", 
     "flashContent", 
     "570", 
     "325", 
     "10.0.0", 
     "../frameworks/swfobject/expressInstall.swf", 
     flashvars, 
     params, 
     attributes, 
     outputStatus 
     ); 

Tôi đồng ý, nó sẽ là "tốt đẹp" nếu có một "thậm chí nhiều hơn" thay thế trọng lượng nhẹ, nhưng sự tiện lợi chiếm cho bất kỳ tải phụ được yêu cầu, imo.

cổ vũ

+0

Cho đến khi có câu trả lời hay hơn, tôi đã đi với SWFObject. –

Các vấn đề liên quan