2012-05-03 15 views
5

लक्ष्य:AS3 आकाशवाणी - आवेदन-सैंडबॉक्स सामग्री त्रुटि

मैं बाहर से भरी हुई SWF फ़ाइलें एक दूसरे को जो स्थानीय रूप से डिवाइस से लोड किए गए हैं के साथ संवाद अनुमति देने के लिए कोशिश कर रहा हूँ। मुझे युद्धों और कार्यों और वस्तुओं तक पहुंच प्राप्त करने में सक्षम होना चाहिए। मैं वेब यहाँ से लोड करते समय swf सामग्री accheived है as3 externally loaded swf from network to control externally loaded swf from network

लेकिन जब मैं उपयोगकर्ता डिवाइस से या ऑनलाइन से लोड करने का विकल्प दे ... डिवाइस SWF फ़ाइलें दूसरे के साथ संवाद नहीं कर सकते। विशेष रूप से लोड किए गए एसएफएफ को अपने माता-पिता से जानकारी नहीं मिल सकती है।

var InsideConent:Object = this.parent.parent as Object; //// GIVES ACCESS TO "Content.swf" 
var ItWorksNow:Sprite = MovieClip(InsideConent.TWO.content).ChildInTWO; /// 

डिवाइस इस कोड को पसंद नहीं करता:

नीचे कोड है कि जब ऑनलाइन से लोड हो रहा है काम करता है

Security.allowDomain("*"); 

लेकिन जब ऑनलाइन चलाने यह ठीक काम करता है। नीचे मैं त्रुटि प्राप्त करता हूं जब मैं इसे स्थानीय रूप से एपीपी पैकेज से लोड करता हूं।

त्रुटि:

SecurityError: # 3207 त्रुटि: आवेदन-सैंडबॉक्स सामग्री इस सुविधा का उपयोग नहीं कर सकते हैं। Flash12ystem पर :: सुरक्षा $/allowDomain() Products_fla :: MainTimeline/frame1() इस स्थान पर स्रोत कोड प्रदर्शित नहीं कर सकता।

प्रश्न: क्या मैं सुरक्षा डोमेन Android डिवाइस के लिए एक आकाशवाणी पर स्थानीय रूप से काम करने के लिए इसलिए मैं अपने कोड को बदलने की जरूरत नहीं है की अनुमति देते हैं बनाने के लिए कर सकते हैं? - धन्यवाद

+0

यह एक मुश्किल होना चाहिए। कोई भी इसे छूना नहीं चाहता। –

+0

मुझे एक ही समस्या का सामना करना पड़ रहा है: आईडीईएएस में संकलित होने पर काम करने के लिए 'लोडर' का उपयोग करके सरल कोड प्राप्त करने का कोई तरीका नहीं मिल सकता एंड्रॉइड। ग्लोबल फ्लैशप्लेयर सुरक्षा सेटिंग्स पैनल मुझे मोबाइल फ्लैश प्लगइन सेटिंग्स पर रीडायरेक्ट करता है केवल स्टोरेज और पी 2 पी सेट करने की इजाजत देता है। – www0z0k

+0

क्या आपने 'लोडर कॉन्टेक्स्ट' को http: //help.adobe पर पास करने का प्रयास किया था।com/en_US/FlashPlatform/संदर्भ/actioncript/3/फ़्लैश/प्रदर्शन/Loader.html # लोड()? – www0z0k

उत्तर

5

यदि आप उस रेखा के चारों ओर पकड़ने की कोशिश करते हैं तो यह विफल होने पर त्रुटि नहीं फेंक देगा। और इस तरह जब आपका कोड वेब पर और ऐप के रूप में काम करेगा। मेरे अनुभव से (एप्लिकेशन allowDomain की जरूरत नहीं/ग वे डिफ़ॉल्ट रूप से सब कुछ डाउनलोड कर सकते हैं और यही वजह है कि यह विफल रहता है ज।)

try {Security.allowDomain("*");}catch (e) { };

+0

उत्कृष्ट! :) महान विचार और भी काम करता है! –

+0

कोई चिंता नहीं, मैं एक ही चीज़ पर विचार कर रहा था लेकिन मैं इसे कभी हल नहीं कर सका क्योंकि मैं स्रोत एसएफएफ को संशोधित नहीं कर सका .... हे। यह वह समाधान है जिसे मैंने लागू किया होगा। – bnns

0

जहां तक ​​मुझे पता है कि आप एआईआर में लोड किए गए एसएफएस से कोड निष्पादित नहीं कर सकते हैं, फिर भी आप संपत्तियों को हटाने के लिए एकाधिक swfs का उपयोग कर सकते हैं लेकिन कोई भी कोड उस त्रुटि को देगा।

+0

असल में आप कर सकते हैं। मेरा पहला एसएफएफ एंड्रॉइड के लिए एक एयर है और अन्य सभी नियमित एसएफएफ फाइलें हैं और प्रत्येक एक दूसरे के साथ संवाद कर सकते हैं .. यानी अन्य फिल्मों में आकार और नियंत्रण वस्तुओं को प्राप्त करें। यह मेरे ड्रॉइड पर काम करता है लेकिन मुझे लगता है कि यह सेब पर काम नहीं करेगा। मैंने अभी तक इसका परीक्षण नहीं किया है। मुझे पता है कि आप बाहरी swfs लोड नहीं कर सकते हैं और उन्हें सेब के साथ कोड चला सकते हैं। तो मैंने सुना है। –

+1

हां, लेकिन उन एसडब्ल्यूएफ को आपके एपीपी के साथ बंडल किया गया है, और बैरीस एसडब्ल्यूएफ को आपके सैंडबॉक्स से लोड करने का जिक्र कर रहा था। –

1

आप किसी अन्य डोमेन के साथ सही तरीके से कॉन्फ़िगर से दूरस्थ swfs लोड कर सकते हैं क्रॉसडोमेन एक्सएमएल। कुछ की तरह: https://developers.arcgis.com/flex/guide/using-crossdomain-xml.htm

आप कोड, साथ swf लोड कर सकते हैं, लेकिन यह असफल हो जायेगी यदि आप उदाहरण के लिए मंच तक पहुँचने का प्रयास।

इसके अलावा, यदि आपके मूल प्रोजेक्ट में (सभी वेब सर्वर पर होस्ट किया गया है, तो आपने सामान्य स्थैतिक चर या सिंगेलटन का उपयोग किया है, यह सफल नहीं होगा। मेरा समाधान उन फ़ाइलों पर फ़ंक्शंस जोड़ रहा था जो मुझे काम करने के लिए आवश्यक वस्तुओं को प्राप्त करते थे