2017-01-30 4 views
2

У меня есть пример XML на LocalHost, и я написал код, чтобы прочитать это данные, он работает нормально, но когда я загрузил на Byethost сервер работает на веб-браузер но возвращение ошибка в Adobe Animate.ActionScripts3 чтения XML от выпуска сервера

XML Пример:

<?xml version="1.0" encoding="UTF-8"?> 
<Data> 

    <D1>1</D1> 
    <D2>2</D2> 
    <D3>3</D3> 

</Data> 

AS3 коды:

import flash.events.Event; 
import flash.net.URLLoader; 

var myXML:XML = new XML(); 
var XML_URL:String = "http://example.com/api/data.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

function xmlLoaded(event:Event):void 
{ 
    myXML = XML(myLoader.data); 
    trace(myXML.D1); 
    trace(myXML.D2); 
    trace(myXML.D3); 

} 

Вывод при чтении XML в локальном хосте из ActionScripts3:

1 2 3 

Выход при использовании Web-браузер :

1 2 3 

Вывод при чтении XML в сервере (byet.host) от ActionScripts3:

TypeError: Error #1085: The element type "d.length;f++)e+=(16" must be terminated by the matching end-tag "</d.length;f++)e+=(16>". 

сообщение из режима отладки:

Attempting to launch and connect to Player using URL E:\PROJECTS\1. ANIMATE\XML\RECOVER_xml.swf 
[SWF] E:\PROJECTS\1. ANIMATE\XML\RECOVER_xml.swf - 1802 bytes after decompression 
*** Security Sandbox Violation *** 
Connection to http://example.com/api/data.xml halted - not permitted from file:///E|/PROJECTS/1.%20ANIMATE/XML/RECOVER%5Fxml.swf 
-- Untrusted local SWFs may not contact the Internet. 
SecurityError: Error #2028: Local-with-filesystem SWF file file:///E|/PROJECTS/1.%20ANIMATE/XML/RECOVER%5Fxml.swf cannot access Internet URL http://example.com/api/data.xml. 
    at flash.net::URLStream/load() 
    at flash.net::URLLoader/load() 
    at flash.net::URLLoader() 
    at RECOVER_xml_fla::MainTimeline/frame1()[RECOVER_xml_fla.MainTimeline::frame1:7] 
Cannot display source code at this location. 

Solution:

*Free hosts doesn't support direct access to files. It is possible to use google drive for access directly to a file and read it's content.* 

This site helped me to solve this problem: 

http://www.syncwithtech.org/p/direct-download-link-generator.html 
+0

Кажется, что есть ошибка безопасности, моя цель - многоплатформенное приложение AIR. –

+0

Как я могу решить эту ошибку разрешения и сделать это приложение доверенным? –

ответ

1

Это нарушение безопасности. Если вы намерены протестировать свое приложение локально, вы должны пойти и разрешить его с глобальными настройками безопасности: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

Если вы хотите загрузить XML из домена B с приложением из домена A, вы должны разрешить его с помощью политики crossdomain, размещенной в домене B : http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7e08.html

+0

Я изменил безопасность в настройках публикации, и он работает. Благодарю. –

+0

Я опубликовал приложение для рабочего стола AIR, он работает, В настройке публикации android AIR я проверил все разрешения в разрешении TAB, но все же эта ошибка безопасности существует, что я должен делать? –

+0

Хммм, вы проверили «доступ к сети» прямо на вкладке «Разрешения» (последняя на панели «Настройки публикации на Android»)? – Organis

1

Сначала я бы поставил точку останова в первой строке метода xmlLoaded и начал сеанс отладки Debug->Debug. Похоже, вы получаете неверные данные xml, поэтому в режиме отладки проверьте myLoader.data - он должен дать вам ответ

+0

спасибо за предложение, это помогло мне найти правильную ошибку. –

Смежные вопросы