2013-11-04 1 views
0

현재 내 웹 사이트의 데이터베이스에서 최고 수준의 행을 내 플래시 응용 프로그램으로로드하려고합니다. PHP를 사용하여 MySQL 데이터베이스에서 데이터를 검색하고 다시 플래시로 반환합니다. 모든 것이 잘 작동하고 Flash Pro에서 응용 프로그램을 디버깅 할 때 데이터가 반환됩니다.PHP와 MySQL을 사용하여 원격 서버에서 플래시를 가져 오는 플래시

그러나 swf를 게시하고 두 번 클릭하면 빈 화면 만 표시되고 아무 것도 나타나지 않습니다. PHP 스크립트에 액세스하는 코드를 제거하면 작동하지만 데이터는 검색되지 않습니다.

htdocs 폴더에 crossdomain.xml을 추가했습니다. 다음은 XML

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="master-only"/> 
    <allow-access-from domain="*"/> 
    <allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy> 

의 내용이다하지만 여전히

어떤 도움이 감사합니다 .... 작동하지 않습니다. THX b4

+0

음 죄송합니다. '기발한'이 무슨 뜻입니까? 미안, 멍청한 질문이야. – Jason

답변

0

PHP와 통신하는 데 사용하는 클래스는 언급하지 않았지만 클래스가 무엇이든 상관없이 오류를 평가하는 방법도 있습니다. 실패 응답을보십시오.

예를 들어, URLRequest 클래스는 문제를 진단하기 위해 잡을 수있는 모든 종류의 오류를 throw 할 수 있습니다. 여기가 Adobe reference에서 발견 된 일부 코드 ...

다음 예제에서는 새 Loader 객체를 만들고 그것을 XML 파일의 경로를 포함하는 URLRequest 객체를 전달이다. 로딩 작업이 성공하면 complete 이벤트가 전달되고 XML 파일의 데이터는 출력으로 추적됩니다. 추가 이벤트 처리기는 오류 이벤트을 비롯한 다른 이벤트를 캡처합니다.

이 예제를 실행하려면 SWF 파일과 동일한 디렉토리에 XMLFile.xml이라는 파일을 저장하십시오.

package { 
import flash.display.Sprite; 
import flash.events.*; 
import flash.net.*; 

public class URLRequestExample extends Sprite { 
    private var loader:URLLoader; 

    public function URLRequestExample() { 
     loader = new URLLoader(); 
     configureListeners(loader); 

     var request:URLRequest = new URLRequest("XMLFile.xml"); 
     try { 
      loader.load(request); 
     } catch (error:Error) { 
      trace("Unable to load requested document."); 
     } 
    } 

    private function configureListeners(dispatcher:IEventDispatcher):void { 
     dispatcher.addEventListener(Event.COMPLETE, completeHandler); 
     dispatcher.addEventListener(Event.OPEN, openHandler); 
     dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); 
     dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); 
     dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); 
     dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); 
    } 

    private function completeHandler(event:Event):void { 
     var loader:URLLoader = URLLoader(event.target); 
     trace("completeHandler: " + loader.data); 
    } 

    private function openHandler(event:Event):void { 
     trace("openHandler: " + event); 
    } 

    private function progressHandler(event:ProgressEvent):void { 
     trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); 
    } 

    private function securityErrorHandler(event:SecurityErrorEvent):void { 
     trace("securityErrorHandler: " + event); 
    } 

    private function httpStatusHandler(event:HTTPStatusEvent):void { 
     trace("httpStatusHandler: " + event); 
    } 

    private function ioErrorHandler(event:IOErrorEvent):void { 
     trace("ioErrorHandler: " + event); 
    } 
} 
} 

더 빠른 방법은 (요소> 콘솔 탭을 검사>, 예를 들어 크롬에서 마우스 오른쪽 버튼을 클릭) 단순히 브라우저의 디버그 콘솔을 열 수있을 것이다. 오류를 살펴보십시오. 보안 제한이있는 경우 브라우저에서 오류가 발생할 수도 있습니다.

관련 문제