Thứ Ba, 26 tháng 7, 2011

19:27:00
2

Nhìn tiêu đề bài viết này, có lẽ sẽ có khoảng 99% mọi người sẽ nghĩ đại loại như là "ặc, cái này thì có gì phải nói nhỉ" hay "thằng này chắc bị khùng, cái này thì ai mà chẳng biết"  . Nhưng mà, mình thì nghĩ khác, và vì vậy, xin mọi người dành chút thời gian mà đọc tiếp vậy.
Như tất cả mọi người đều biết, trong Flash ta có thể xuất trực tiếp ra file html (mặc định là nhấn F12), và sau đó, để chèn Flash movie vừa mới tạo vào trang web, chúng ta chỉ đơn giản copy đoạn mã trong file html được tạo tự động bởi Flash.

Và vì những việc như vậy là quá đơn giản, hầu hết các site trên internet có sử dụng Flash đều chứa đoạn mã kiểu như sau:
Code:
Sao chép đến bản cắt dán
Mã:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" 
width="150" height="150" title="tunglinhonline.com">
<param name="movie" value="http://tunglinhonline.com/Flash/thuc_hanh/SnSd.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="http://tunglinhonline.com/Flash/thuc_hanh/SnSd.swf" wmode="transparent" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"
width="605" height="395">
</embed>
</object>
Đoạn mã trên được lấy từ chính trang tunglinhonline (Hình các thiên thần đáng yêu).
Vấn đề là ở chỗ, đoạn mã trên chỉ phù hợp (valid) với HTML4.01 và hoàn toàn thất bại với xHTML 1.0 (cả Transitional và Strict) (bạn có thể dùng công cụ này để kiểm tra). Lí do là ở chỗ thẻ <embed> hoàn toàn không phải là một thẻ hợp lệ trong danh sách của W3C, nó không phải là một thẻ xHTML hay HTML. Tuy nhiên, nếu bạn bỏ thẻ <embed> đi, Flash movie của bạn vẫn chạy bình thường nhưng chỉ là trong IE hay Opera mà thôi còn Firefox thì không, hoàn toàn không  ! Không những thế, nếu trình duyệt của người dùng không hỗ trợ Flash, sẽ không có một nội dung thay thế nào xuất hiện, không có ý nghĩa gì với các search engine.
Một cách thích hợp hơn, hoàn toàn valid với xHTML và làm việc trên cả IE, Firefox, Opera (những browser khác thì mình không có điều kiện để test) và có cả nội dung để thay thế nếu browser không hỗ trợ Flash là thay thế đoạn mã trên như sau:
Code:
Sao chép đến bản cắt dán
Mã:
<!--[if !IE]> -->
<object type="application/x-shockwave-flash"
data="http://tunglinhonline.com/Flash/thuc_hanh/SnSd.swf" width="605" height="395">
<!-- <![endif]-->

<!--[if IE]>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
width="605" height="395">
<param name="movie" value="http://tunglinhonline.com/Flash/thuc_hanh/SnSd.swf" />
<!--><!---->
<param name="loop" value="true" />
<param name="menu" value="false" />

<p>This is alternative content.</p>
</object>
<!-- <![endif]-->
Chúc vui vẻ !

2 Bình luận:

  1. đoạn code này có áp dụng đc vào asp.net đc k hả bạn

    Trả lờiXóa
    Trả lời
    1. asp.net cũng được bạn. nhưng giờ không nên xài flash bạn à

      Xóa

Khi các bạn đóng góp ý kiến nhớ chú ý ngôn từ cho phù hợp với thuần phong ,mỹ tục văn hóa nước ta. Cảm ơn!