2012-02-20 31 views
12

Tôi muốn hiển thị nội dung được định dạng HTML từ nhiều nguồn khác nhau bên trong ứng dụng Flash Flex. Flash hỗ trợ định dạng HTML trong các trường văn bản của nó, tuy nhiên nó rất hạn chế so với trình duyệt web. Có bất kỳ tập lệnh nào ở đó sẽ chuyển đổi văn bản được định dạng HTML phổ biến thành định dạng mà Flash có thể xử lý không? trường hợp sử dụng cụ thể của tôi là:Dọn dẹp nội dung có định dạng HTML để hiển thị trong Flash?

  • Hiển thị các email định dạng HTML bên trong flash
  • Hiển thị các file RTF bên trong Flash (sau khi chạy một chuyển đổi RTF2HTML trên máy chủ)
  • Hiển thị nội dung HTML ngẫu nhiên sao chép và dán từ các nguồn khác vào Flash

Tôi đang mở cho mã chạy trên máy khách hoặc máy chủ, nhưng máy chủ có lẽ là thích hợp hơn.

+0

Câu hỏi thú vị tôi tò mò nếu có bất kỳ công cụ hiển thị HTML phía máy chủ đáng tin cậy nào sẽ gửi xuống dữ liệu được hiển thị trước dưới dạng dữ liệu bitmap (mặc dù tôi tưởng tượng ra đầu để thực hiện điều này có thể là vô lý) . Ngoài ra, phía khách hàng cũng có thể kiểm tra StageWebView http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/media/StageWebView.html – shaunhusain

+0

Thực ra tôi tự hỏi liệu bạn có thể lấy bộ trang web và móc vào nó hay không để hiển thị phía máy chủ HTML, sau đó bằng cách nào đó gửi phiên bản được hiển thị (được mã hóa dưới dạng jpg hoặc thứ gì đó) trở lại máy khách. Hoặc nếu ai đó đã làm điều này. – shaunhusain

+0

@shaunhusain Có, có một số dự án trên mạng hiển thị các trang web dưới dạng bitmap trên máy chủ và sau đó gửi lại. Bạn có sự lựa chọn của bạn giữa một webservice mà bạn gọi ra API của họ, hoặc mã bạn chạy trên máy chủ của riêng bạn. Một vài liên kết: http://url2png.com http://webthumb.bluga.net/home http://www.thumbalizr.com/ http://www.boutell.com/webthumb/ http: // khtml2png. sourceforge.net/ – davr

Trả lời

5

Các tập hợp con của các thẻ html được hỗ trợ là khá nghèo và đã không thay đổi trong mãi mãi:

<a>, <b>, <br>, <font>, <img>, <i>, <li>, <p>, <textformat>, <u> 

Điều này có nghĩa là bất kể chất lượng chuyển đổi, html có thể không được trả lại như dự định đầy đủ; bạn cũng có thể từ bỏ một phần đáng kể phong cách css nếu bạn thay thế các thẻ không được hỗ trợ bằng các thẻ cơ bản hơn.

Điều đó đang được nói, http://simplehtmldom.sourceforge.net/ (PHP) sẽ hoạt động với một số chỉnh sửa và nó đủ khả năng để đối phó với đánh dấu không hợp lệ (xem cách bạn xử lý nội dung từ nhiều nguồn khác nhau) rất nhiều đau đớn trong thời gian dài) - hơn thay thế

<h1>,...,<h6> => <b> 
<strong>  => <b> 
<em>   => <i> 

và rõ phần còn lại của nó vào đoạn văn bạn sẽ ngạc nhiên như thế nào có thể đọc được nó vẫn sẽ là. Bạn có thể là một chút lạ mắt quá như vậy:

<h1> => <b class="header1"> 

và thêm một số css cho phù hợp (mặc dù hỗ trợ đèn flash css là khá hạn chế quá)

Tôi đã tiết kiệm này cho sa mạc - bạn sẽ hoặc là yêu nó hay ghét nó nhưng nó sẽ làm điều đó. Giả sử ứng dụng của bạn được triển khai trong trình duyệt (nếu không và tôi đã hiểu sai bạn, hãy tiết kiệm cho tôi sự xấu hổ và ngừng đọc ngay tại đây), bạn có thể sử dụng iframe để hiển thị html của mình một cách nghiêm túc.

JS < - > AS giao tiếp khá đơn giản và bạn có thể đặt nó trên một khu vực được xác định trước trong ứng dụng của bạn, tạo cho ảo giác rằng nó là một phần của nó; chỉ cần nhớ đặt windowmode trên đối tượng flash/nhúng chính xác để nó không hiển thị trên đầu trang của các phần tử trang khác, sau đó tăng iframe z-index.

Tôi sẽ không ngạc nhiên nếu điều này được xem như một cách tiếp cận "xấu xí", nhưng nó đẹp ở bên trong - bạn sẽ kết thúc với html nguyên bản và hỗ trợ css thực. Đối với tương tác của người dùng, bạn thậm chí có thể chặn các nhấp chuột liên kết, v.v. trong iframe và yêu cầu một hành động từ movieclip.

+1

Câu trả lời của bạn liệt kê một số điểm đáng lưu ý. Đặc biệt là một phần với lớp phủ html trong một khu vực nhất định có thể là cách hợp lý nhất để đối phó với tất cả những thiếu sót của dựng hình html của riêng flash. Làm cách nào bạn chuyển đổi các bảng hoặc biểu mẫu thành tập hợp con flash html? - Tôi không thấy nó hoạt động thông qua kết xuất html của riêng mình. – kontur

1

AS3 HTML Parser Library không hoàn toàn là những gì tôi đang tìm kiếm, vì nó không chuyển đổi HTML mà thay vào đó hiển thị nó trong Flash, nghĩa là nó sẽ không thể chỉnh sửa được. Nhưng nó có thể hữu ích trong một số trường hợp mà tôi chỉ muốn hiển thị và không chỉnh sửa văn bản.

Một tùy chọn khác là xem xét một số mẫu HTML mà tôi muốn có thể hiển thị và sau đó viết regex để chuyển đổi chúng sang định dạng Flash/TLF mong đợi. Nhưng tôi cảm thấy như vậy có thể là một nỗ lực rất lớn, do có rất nhiều HTML ở đó.

+0

Tôi không hiểu. Nếu mục tiêu của bạn là chỉ hiển thị nội dung HTML, thì thư viện bạn liên kết với dường như chỉ làm việc đó. –

2

Bạn có thể sử dụng HTMLPurifier và chỉ định danh sách trắng các thẻ mà bạn muốn hỗ trợ.

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