2011-10-14 45 views
6

Tôi đã chuyển đổi tệp SWF Flash sang HTML5 bằng Google Swiffy.Lỗi chuyển đổi Swiffy (Flash sang HTML5)

Tính năng này hoạt động tốt trong Firefox.

Tuy nhiên, trong IE8, Tôi nhận được các lỗi này:

'Swiffy' là undefined

'sân khấu' là null hoặc không phải là một đối tượng

Trong IE, nếu bạn truy cập vào Google Phần bộ sưu tập Swiffy (http://www.google.com/doubleclick/studio/swiffy/gallery.html) và nhấp vào bất kỳ ví dụ nào, bạn sẽ nhận được các lỗi tương tự (hoặc, ít nhất, tôi làm). Vì vậy, có lẽ đây là một vấn đề tồn tại.

Tôi cũng sẽ liên hệ với Google để xem có giải pháp cho vấn đề này hay không.

Đây là đoạn mã.

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Swiffy output</title> 
<script src="http://www.gstatic.com/swiffy/v3.5/runtime.js"></script> 
<script>swiffyobject = {"tags": 
[{"id":1,"height":194,"width":609,"data":"data:image/jpeg; 
base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS 

...there's a lot of converted code, most of it looks like the gibberish above... 

</script> 
</head> 
<body style="overflow:hidden;margin:0;"> 

<script>var stage = new swiffy.Stage(document.body, swiffyobject);</script> 
<script>stage.start();</script> 

</body> 
</html> 

Tôi đã bắt đầu chuyển đổi tệp Flash bằng cách tự mã hóa bản thân bằng Canvas. Tôi có thể sẽ tiếp tục với nó. Tôi đã được ép cho thời gian để có được điều này được thực hiện, và muốn có những lỗi này được giải quyết.

Cảm ơn.

Stephen

(BTW, tôi có thể đính kèm một tập tin? Mã này thực sự dài.)

Trả lời

3

Điều này là do HTML5 Canvas không được hỗ trợ trong IE8

Bạn có thể sử dụng thư viện excanvas nhưng nó thật khủng khiếp với hoạt hình. excanvas sử dụng VML để mô phỏng các lệnh canvas và giả vờ rằng nó hoạt động trên IE7/8

excanvas chưa được cập nhật từ năm 2009 và tôi thực sự khuyên bạn không nên hỗ trợ IE8 nếu bạn muốn sử dụng Canvas. Có thể giải pháp SVG/VML sẽ tốt hơn, tùy thuộc vào những gì bạn đang làm.

1

Đây là giải pháp: Tải xuống tệp swfobject.js và giữ tệp này trong thư mục "tập lệnh".

Đặt mã này trong phần tiêu đề:

<script type="text/javascript" src="http://www.mysite.com/scripts/swfobject.js"></script> 

trong tập tin Swiffy đặt này (rống lên kịch bản Swiffy):

<script type="text/javascript">swfobject.embedSWF("http://www.mysite.com/flash_files/myflash.swf", "swiffycontainer", "638", "500", "8.0.0", "myflash.swf", {}, {menu:"false", scale:"noscale", wmode:"transparent"}, {}); </script> 
+0

Tôi đã hoàn thành dự án này năm ngoái và không còn có tệp để làm việc. Tôi đã rất thích thử giải pháp này. Cảm ơn mặc dù. – user282648

1

Trên đây (sử dụng swfobject.js) là một giải pháp tốt! Về cơ bản, sử dụng swf trong Flash được hỗ trợ env và dự phòng HTML trong trường hợp của những người khác.

+0

bạn sẽ có thể nhận xét về câu trả lời sau khi bạn đã đạt được đủ đại diện :-) – kleopatra