2011-10-10 2 views
6

चलें कहना मैं एक html फ़ाइल है कि एक फार्म शामिल है:इनपुट elemnts एडोब आकाशवाणी में केवल पढ़ने के लिए कर रहे हैं

<form method="post" action="url"> 
    <input type="text" id="fullname" /> 
    <input type="text" id="bodyText" /> 
    <input type="submit"> 
</form> 

हमारे पास लोड इस html फ़ाइल एक swf फ़ाइल के अंदर HTMLLoader का उपयोग कर।

_htmlLoader = new HTMLLoader(); 
_htmlLoader.paintsDefaultBackground = false; 
var req:URLRequest = new URLRequest(urlValue); 
_htmlLoader.load(req); 
_stage.addChild(_htmlLoader); 

मुख्य आवेदन के अंदर Loader का उपयोग कर इस Swf फ़ाइल लोड करने के बाद, पाठ बॉक्स केवल पढ़ने के लिए कर रहे हैं और यह में टाइप नहीं कर सकते। लेकिन हम माउस का उपयोग करके उनका ध्यान बदल सकते हैं।

var loader1:Loader = new Loader(); 
loader1.load(new URLRequest("path to file.swf")); 
// ... 
this.addChild(loader1); 
// ... 

समस्या क्या है?

+0

HTML प्रपत्र तत्व ठीक से काम करते हैं (यानी कुंजीपटल इनपुट स्वीकार करते हैं) यदि आप सीधे पहली SWF (एक HTMLLoader है) देखने (के रूप में एक एआईआर एप्लीकेशन का मुख्य एसडब्ल्यूएफ) इसे किसी अन्य एसडब्ल्यूएफ के अंदर लोड किए बिना? यदि ऐसा है, तो आपके द्वारा उल्लिखित मुद्दा एआईआर में एक बग की तरह दिखता है। – Ashutosh

+0

क्या आपका एप्लिकेशन पूर्णस्क्रीन मोड में चलाया जाता है? – weltraumpirat

+0

@ आशुतोष: हाँ! – Jalal

उत्तर

0

क्या Event.COMPLETE ईवेंट के बाद HTMLLoader संलग्न किया गया है? एचटीएमएल लोडर के दस्तावेज़ को मंच को जोड़ने से पहले एक डोमरेडी घटना को आग लगाने के लिए इंतजार करना भी लायक हो सकता है। इस तरह

कोशिश कुछ:

_htmlLoader = new HTMLLoader(); 
_htmlLoader.paintsDefaultBackground = false; 
var urlRequest:URLRequest = new URLRequest(urlRequest); 
_htmlLoader.addEventListener(Event.COMPLETE, completeHandler); 
_htmlLoader.load(urlRequest); 

function completeHandler(event:Event):void { _htmlLoader.window.document.addEventListener("DOMContentLoaded", readyHandler); } 

function readyHandler(event:Event):void { _stage.addChild(_htmlLoader); } 

Flex documentation about handling HTML events में यह उल्लेख है:

एक श्रोता एक विशिष्ट डोम तत्व को संदर्भित करता है, यह अच्छा अभ्यास प्रेषण करने के लिए माता-पिता HTMLLoader के लिए इंतजार करना है ईवेंट श्रोताओं को जोड़ने से पहले पूरी घटना । एचटीएमएल पेज अक्सर कई फाइलें लोड करते हैं और एचटीएमएल डोम पूरी तरह से तब तक नहीं बनाया जाता है जब तक कि सभी फाइलें लोड और पार्स नहीं होतीं। HTMLLoader पूरी घटना भेजता है जब सभी तत्व बनाए गए हैं।

यह संभव हो सकता है कि दस्तावेज़ वास्तव में तैयार होने से पहले HTMLLoader चरण को संलग्न किया जा रहा है, जो कुछ अजीबता को समझा सकता है।

आप किसी भी अधिक जानकारी है कि एक भयानक मदद किया जाएगा है ...

0

प्रस्तावित समाधान ( "addChild से पहले DOMContentLoaded घटना इंतजार") मेरे लिए काम नहीं किया।

इसके बजाय यह FULL_SCREEN_INTERACTIVE प्रदर्शन स्थिति का उपयोग करके काम करता है। Adobe's documentation about FULL_SCREEN के अनुसार:

(मुझे लगता है कि यह इसके डेस्कटॉप की तरह विकलांग दूसरों प्रोफाइल है) "कीबोर्ड अन्तरक्रियाशीलता मोबाइल उपकरणों के लिए सक्षम किया गया है"।

जबकि FULL_SCREEN_INTERACTIVE:

निर्दिष्ट करता है कि स्टेज पूर्ण स्क्रीन मोड में है कुंजीपटल अन्तरक्रियाशीलता के साथ सक्षम। फ्लैश प्लेयर 11.3 के रूप में, यह क्षमता एआईआर अनुप्रयोगों और ब्राउज़र-आधारित अनुप्रयोगों दोनों में समर्थित है।

तो मेरे मामले में समाधान था:

_stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE 
संबंधित मुद्दे