2012-02-20 24 views
12

मैं फ्लैश फ्लेक्स एप्लिकेशन के अंदर विभिन्न स्रोतों से HTML स्वरूपित सामग्री प्रदर्शित करना चाहता हूं। फ्लैश अपने टेक्स्ट फ़ील्ड में HTML स्वरूपण का समर्थन करता है, हालांकि यह एक वेब ब्राउज़र की तुलना में बहुत सीमित है। क्या वहां कोई स्क्रिप्ट है जो सामान्य HTML स्वरूपित टेक्स्ट को उस प्रारूप में परिवर्तित कर देगी जो फ़्लैश संभाल सकता है? मेरे विशेष उपयोग के मामलों रहे हैं:फ्लैश के भीतर प्रदर्शित करने के लिए एचटीएमएल स्वरूपित सामग्री की सफाई?

  • अंदर फ्लैश
  • अंदर फ्लैश आरटीएफ फ़ाइलें प्रदर्शित
  • की नकल की और में अन्य स्रोतों से चिपकाया यादृच्छिक HTML सामग्री प्रदर्शित (सर्वर पर कोई RTF2HTML रूपांतरण चलाने के बाद) एचटीएमएल प्रारूपित ईमेल में प्रदर्शित फ्लैश

मैं क्लाइंट या सर्वर पर चलाने वाले कोड के लिए खुला हूं, लेकिन सर्वर शायद बेहतर है।

+0

कुछ हद तक दिलचस्प सवाल मैं उत्सुक हूं कि अगर किसी भी प्रकार का विश्वसनीय सर्वर पक्ष HTML प्रतिपादन इंजन है जो पूर्व-प्रस्तुत डेटा को बिटमैप डेटा के रूप में वापस भेज देगा (हालांकि मुझे लगता है कि ऐसा करने के लिए ओवर-हेड हास्यास्पद हो सकता है) । वैकल्पिक रूप से क्लाइंट साइड स्टेजवेब व्यू देखें http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/media/StageWebView.html – shaunhusain

+0

असल में मुझे आश्चर्य है कि क्या आप वेब-किट पकड़ सकते हैं और इसमें हुक कर सकते हैं एचटीएमएल सर्वर की तरफ प्रस्तुत करने के लिए किसी भी तरह से ग्राहक को वापस प्रस्तुत किए गए संस्करण (jpg या कुछ के रूप में एन्कोड किया गया) भेजें। या अगर किसी ने पहले से ही यह किया है। – shaunhusain

+0

@shaunhusain हां, वहां कई परियोजनाएं हैं जो सर्वर पर बिटमैप के रूप में वेब पेज प्रस्तुत करती हैं और फिर इसे वापस भेजती हैं। आपके पास एक webservice के बीच आपकी पसंद है जिसे आप अपने एपीआई में कॉल करते हैं, या कोड जो आप अपने सर्वर पर चलाते हैं। कुछ लिंक: http://url2png.com http://webthumb.bluga.net/home http://www.thumbalizr.com/ http://www.boutell.com/webthumb/ http: // khtml2png। sourceforge.net/ – davr

उत्तर

5

समर्थित html टैग के सबसेट काफी खराब है और हमेशा के लिए में नहीं बदला है:

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

इसका मतलब यह है कि रूपांतरण गुणवत्ता की परवाह किए बिना, एचटीएमएल के रूप में पूरी तरह से इरादा रेंडर नहीं किया जा सकता है; यदि आप असुरक्षित टैग को अधिक बुनियादी लोगों के साथ प्रतिस्थापित करते हैं तो आप सीएसएस स्टाइल का एक महत्वपूर्ण हिस्सा भी छोड़ सकते हैं।

कहा जा रहा है कि, http://simplehtmldom.sourceforge.net/ (PHP) कुछ बदलावों के साथ काम करेगा और यह अमान्य मार्कअप के साथ सामना करने के लिए पर्याप्त सक्षम है (यह देखते हुए कि आप विभिन्न स्रोतों से सामग्री को संसाधित करने के बाद कैसे हैं, मैं कहूंगा कि यह सुविधा अकेले ही बचाएगी लंबे समय में बहुत ज्यादा दर्द हो) - से पैराग्राफ में बदलने के

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

और प्लेन बाकी आप कैसे पठनीय यह अभी भी होगा हैरानी होगी। तुम इतनी तरह भी थोड़ा कल्पना हो सकता है:

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

और के रूप में उपयुक्त

मैं रेगिस्तान के लिए यह एक बचत कर रहा है कुछ सीएसएस जोड़ने (हालांकि फ़्लैश सीएसएस समर्थन सुंदर भी सीमित है) - आप हूँ या तो इसे प्यार करें या नफरत है लेकिन यह चाल करेगा। मान लें कि आपका ऐप ब्राउज़र में तैनात है (यदि नहीं और मैं आपको गलत तरीके से पढ़ता हूं, मुझे शर्मिंदगी बचाएं और यहां पढ़ना बंद करें) तो आप अपने एचटीएमएल को गंभीरता से प्रदर्शित करने के लिए आईफ्रेम का उपयोग कर सकते हैं।

जेएस < - > एएस संचार काफी सरल है और आप इसे अपने ऐप के पूर्व निर्धारित क्षेत्र में स्थानांतरित कर सकते हैं, यह भ्रम देकर कि इसका हिस्सा है; बस फ्लैश ऑब्जेक्ट/एम्बेडेड पर विंडोमोड सेट करना याद रखें ताकि यह अन्य पेज तत्वों के शीर्ष पर प्रस्तुत न हो, फिर iframe z-index को बढ़ाएं।

मुझे आश्चर्य नहीं होगा अगर इसे "बदसूरत" दृष्टिकोण के रूप में देखा जाता है, लेकिन यह अंदर पर सुंदर है - आप वर्बैटिम एचटीएमएल और असली सीएसएस समर्थन के साथ समाप्त हो जाएंगे। उपयोगकर्ता इंटरैक्शन के लिए, आप iframe में लिंक क्लिक इत्यादि को भी रोक सकते हैं और मूवीक्लिप से कार्रवाई का अनुरोध कर सकते हैं।

+1

आपके उत्तर में कुछ बिंदुएं सूचीबद्ध हैं जो दिमाग में आईं। विशेष रूप से एक निश्चित क्षेत्र में एचटीएमएल ओवरले के साथ भाग फ्लैश के अपने एचटीएमएल प्रतिपादन की सभी कमियों से निपटने का सबसे व्यावहारिक तरीका हो सकता है। आप फ्लैश एचटीएमएल सबसेट में टेबल या फॉर्म कैसे परिवर्तित करेंगे? - मैं इसे फ्लैश के अपने एचटीएमएल प्रतिपादन के माध्यम से काम नहीं देख रहा हूं। – kontur

1

AS3 HTML Parser Library काफी कुछ नहीं है जिसे मैं ढूंढ रहा हूं, क्योंकि यह HTML को परिवर्तित नहीं करता है बल्कि इसके बजाय इसे फ्लैश के भीतर प्रस्तुत करता है, जिसका अर्थ यह है कि यह संपादन योग्य नहीं होगा। लेकिन यह कुछ मामलों में उपयोगी हो सकता है कि मैं केवल टेक्स्ट को प्रदर्शित करना और संपादित नहीं करना चाहता हूं।

एक और विकल्प कई नमूना HTML को देखना है जिसे मैं प्रदर्शित करने में सक्षम होना चाहता हूं, और उसके बाद रेगेक्स को प्रारूप/टीएलएफ प्रारूप में रूपांतरित करने के लिए लिखना चाहता हूं। लेकिन मुझे लगता है कि एचटीएमएल की विस्तृत श्रृंखला के कारण, यह एक बड़ा प्रयास हो सकता है।

+0

मुझे समझ में नहीं आता है। यदि आपका लक्ष्य केवल HTML सामग्री प्रदर्शित करना है, तो आपके द्वारा लिंक की गई लाइब्रेरी बस ऐसा ही प्रतीत होती है। –

2

आप HTMLPurifier का उपयोग कर सकते हैं और टैग का एक श्वेतसूची निर्दिष्ट कर सकते हैं जिसे आप समर्थन देना चाहते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^