저는 표준화 된 래퍼를 빌드해야하는 컴퓨터 기반 교육 프로젝트가 있습니다. 강좌 페이지는 XML을 사용하여 생성됩니다. 각 페이지에는 고유 한 XML 파일이 있습니다. 예를 들어 Page 1은 1.xml
에서 모든 내용을로드하고 Page 2는 2.xml
등이됩니다. 페이지 수는 모든 클라이언트가 동일하지 않기 때문에 항상 다릅니다.
내가 함께 테스트하기 위해 열 개 XML 파일을 만들었습니다,하지만 내 인생 내가 다음 알아낼 수 없습니다
문제 :
- 플래시를 사용하여,의 XML 파일의 양을 계산 폴더 (나는 모든 것을 바꿀 수 있다면 어떤 서버 측에 대한 액세스 권한이 없습니다.) 어떤 유형의 루프와 함께
IOErrorEvent.IO_ERROR
을 사용하는 것에 대해 생각했지만 어디서부터 시작해야할지 몰랐습니다. - 플래시 사용 모든 XML 파일의 모든 정보를 사용자가 코스를 진행하면서 페이지에 표시 할 하나의 배열 또는 벡터. 사용자는 코스를 건너 뛸 수 있습니다 (예 : 5 페이지에서 20 페이지로 건너 뛰기를 원할 수도 있습니다). 그래서 객체 또는 연관 배열이 내 아이디어였습니다
플래시는 파일 시스템에 액세스 할 수 없지만 xml 파일의 이름은 1.xml, 2.xml, 3.xml, 4.xml, 5가됩니다. xml 등 ... (XML 파일이 페이지 번호와 직접적으로 관련되므로이 명명 규칙은 결코 변경되지 않습니다)이 작업을 수행하는 방법이 있어야합니다. 내 생각은 각 파일을로드하고로드하는 루프 유형을 만드는 것이 었습니다. 파일을 찾을 수 없기 때문에 오류가 발생하면 루프에서 빠져 나옵니다. 아래의 내 작업 파일을 시각적으로 볼 수 있습니다.
현재 작업 파일
내가 만든 작은 정보를 가지고와 내가 심지어이 접근하는 방법을 알고하지 않기 때문에 작업을 시작했습니다 파일은. 하지만, 여기에 내가 가진 무엇 :
xml 파일또한 (내가하지 가지고 DO (5 또는 100 또는 클라이언트가 필요하지만 그들은 모두 같은 포맷됩니다 어떤 다른 사람이 될 수있다, 기억) 이 업데이트 Iv'e 내가 말했듯이 데이터베이스의 모든 유형에 대한 액세스가 너무 XML 파일은 **
) 내 최선의 선택이 될
<?xml version="1.0" encoding="iso-8859-1"?>
<content>
<title>My First Page</title>
<body>This is the body of my new page I just built using XML</body>
<img>graphic.jpg</img>
</content>
XmlClass.as ** 코드는 아래를 참조 할 것 , 이것이 출발점입니다. 1 톤의 것들을 해결할 필요가 있지만, 내가 향하고있는 길은 올바른 것인지 확인하고 싶다;)이 xml 아이디어가 이것에 접근하는 가장 좋은 방법인지 확신 할 수 없다. 클라이언트가 xml 파일을 자체적으로 만들고 유지 관리한다면 작업 부하가 줄어들 것이라고 생각했습니다.
감사합니다.
편집
내 질문에 잘못 기록 된 내 응답으로 판단. 다음은 위에서 설명한 것보다 더 잘 설명 할 수있는 주석으로 작업 한 XmlClass.as 파일입니다.} 코드에서 볼 수 있듯이 for 루프에서 xml 파일에 대한 각 링크를로드 할 때 사용할 수있는 _loaderArray
을 만드는 메서드를 만듭니다.
내가하려고하는 것은 xmlx 파일을 가져 와서 모든 XML 파일을 한 곳에서 가질 수있는 배열 또는 무언가를 만드는 것입니다.
XmlClass.as
package
{
import flash.display.*;
import flash.xml.*;
import flash.events.*;
import flash.net.*;
public class XmlClass extends XMLDocument
{
private var _xml:XML;
private var _loader:URLLoader;
private var _request:URLRequest;
private var _loaderArray:Array; /* this is to store my paths to each xml file */
private var _xmlArray:Array; /* this is where I want to store all the information in all the xml files */
private var _fileError:Boolean; /* this tells me that I have hit a 404 trying to load one of the files */
public function XmlClass():void
{
BuildLoaderArray();
BuildXmlArray();
}
/* build the xml array so I can have one place that stores each of the xml files content */
private function BuildXmlArray():void
{
_loader = new URLLoader();
for(var i=1;i<_loaderArray.length;i++)
{
/* check to see if we have a 404 error and stop the loop */
if(_fileError){break;}
_request = new URLRequest(_loaderArray[i]);/* load each of the xml paths to load into the array */
_loader.addEventListener(Event.COMPLETE,ProcessXML);
_loader.addEventListener(IOErrorEvent.IO_ERROR,XMLioErrorHandler);
_loader.load(_request);
}
trace(_xmlArray);/* show me the newly created xml array that has all the files information */
}
/* build all the links to the xml files for the loader */
private function BuildLoaderArray():void
{
_loaderArray = new Array();
for(var i=1;i<201;i++)
{
_loaderArray.push("../xml/"+i+".xml");
}
}
private function ProcessXML(e:Event):void
{
_xmlArray = new Array();
_xml = new XML(e.target.data);
_xmlArray.push(_xml);
}
private function XMLioErrorHandler(e:IOErrorEvent):void
{
_fileError = true;
trace("Loading Error")
}
}
}
프로젝트를 구성 할 XML을 만듭니다. 예를 들어 정보가 들어있는 노드가있을 경우 페이지 번호와 해당 페이지의 해당 XML에 대한 URL이 필요합니다. 이렇게하면 XML에서 프로젝트를 동적으로 구성 할 수 있습니다. –
@ The_asMan : 저 아이디어가 마음에 들었고 웹에서 비슷한 것을 보았습니다. 그러나 저의 머리 속에 떠오른 생각은 저와의 상호 작용이 거의 없으면 가능한 한 역동적으로 만드는 것이 었습니다. 구성 파일을 사용하여이 작업을 수행 할 수있는 방법이 있어야합니다. 내가 해결책을 찾지 못하면 당신의 생각은 나의 유일한 선택이 될 것입니다. – Mike
서버 쪽 스크립트에 액세스 할 권한이 없으므로 동적 소재를 생성 할 수있는 방법이 없습니다. –