A s3:를 간소화하'보편적인 로더'
-
12-09-2019 - |
문제
플래시에서 작업 스크립트 3 이 필요한 때에,로드하는 텍스트,사용하라는 클래스 URLLoader
, 고,필요할 때을 로드하는 이미지(또는.swf)당신은 클래스를 사용하라고'합니다.' 내가 알기로는,로드다.bmp 과 URLLoader
으로 쓸모드니다.xml 으로 로더-지 않을 계산합니다.
내가 만드는 클래스를 처리하는 큐의 외부 자산 로드-하지만 따로 분할에서 대상을 확인하는 URL 을 파일 확장자,내가 알아낼 수있는 좋은 방법을 말하는 경우 각각 필요한 URL URLLoader
나 Loader.어떤 속도,그것은 상상할 수 있는.php URL 을 반환할 수 있는 하나 이미지 또는 문서가 없다,그래서을 계산하는 방법에 파일 이름을 지시하는 오른쪽 유형의 클래스 로더 사용합니다.
는 방법에 대한 아이디어를 안정적으로 검출하는 오른쪽 클래스 작업에 URL 니다.
해결책
음,가장 까다로운 질문을 결정하는 유형의 대상...
- 보고서의 url 은 매우 간단하지만,대로 작동하지 않는 경우도 있습니다...일부 사람들에 봉사하는 이미지에서 phps 다.
- 당신은 그것을 할 수 있습 같은 브라우저로드 시작,그리고 그 다음에 그것이 무엇인지...지금은 다시 거기에 여러 가지 가능성을...
- 드 데이터는 바이너리로 데이터...을 때 수행,보고에서 시작하는 순서...그것은 PNG(
89 50 4E 47 0D 0A 1A 0A
)?GIF(47 49 46 38 39 61
)?JPEG(FF E0
)?SWF("FWS"
(는 재미,그렇지?))?다른 것이어야 텍스트 또는 텍스트 기반...의 경우에는 이미지,로드Loader
가Loader::loadBytes
...주의 SWF 하지만...당신이해야만 짐 graphicals Swf 는...다른 모든 경우에,문자열로 변환하여 오른쪽에 인코딩(이상적으로 텍스트 데이터 제공 utf8)...그런 다음 어쩌면 당신은 이미 수 있습니다 추측할 수 있는지 여부를 XML,JSON 또는 URL 을 인코딩된 변수...도 분석(클래스를 사용하여XML
,com.adobe.serialization.JSON
,flash.net.URLVariables
)...는 경우에는 모두 실패하면 아마 단지 텍스트가(당신이 시도할 수 있는지 확인하는 표면적으로...하려면 몇 가지 입력에서는 나에게 코멘트를 남겨주세요)... - 지
HTTP
자신을...오픈 소켓과 로드하는 소스...당신이 얻는 mime 유형 편안한 분위기를 제공합니다.아무것에 의지할 수 있지만,그것은 도움이...가HTTP
구현AS3
...일단 데이터
- 드 데이터는 바이너리로 데이터...을 때 수행,보고에서 시작하는 순서...그것은 PNG(
- 통합형 수동으로...순수하고 단순...당신은에 의존하지 않는 다른 사람이...
거기에는 또한 중요한 차이로더 및 URLLoader...로더 데이터를로드 할 수 있습을 건너 도메인 단순히 샌드박스의 컨텐츠도록을 찾을 수 없습니다 그것으로...URLLoader 를로드 할 수 있습니에서 당신의 도메인 및 도메인을 명시 적용 이를 사용하여 십자가 도메인 정책 파일을 만들거나 수정합니다.
또한,로드 Swf,되지 않은 다 외장 그래픽 자산지만,당신이 정말로 원하는 인터페이스를 사용하지 않아야 합니다 이 때문에,당신은 필요한 통제 LoaderContext etc....
그래서...어떤 방법으로,당신이 선택한 좋은 운...;)
greetz
back2dos
다른 팁
벌크 로더 URL을 기반으로 한 추측은 소스를 엿볼 수 있고 어떻게하는지 볼 수 있습니까?
개인적으로, 나는 이미지 또는 XML 인 경우 객체를로드하는 방법을 정확하게 지정합니다. 몇 개의 대기열 로더를 작성 했으므로 URL 문자열을 추적하는 것이 아니라로드 할 URL,로드 된 경우로드 우선 순위 및 유형과 같은 물건이있는 객체 세트를 추적하는 것이 좋습니다. 다음은 Psudo 코드입니다.
class QueueObject{
var URLtoLoad:String;
private var hasLoaded:Boolean = false;
var isDataObject:Boolean = false;
var queuePriority:Number = 3; //
}
이제 대기열에 무언가를 추가하고 싶을 때 코드에 있습니다.
간단히 가십시오
var loadObject:QueueObject = new QueueObject();
loadObject.URLtoLoad = "http://theurl.com/somedata.xml";
loadObject. isDataObject= true;
// 이제 큐를 관리 할 멋진 로더 클래스로 푸시하십시오. 객체를로드하여 현재 범위, 예를 들어,이 객체가로드되었을 때 호출하려는 함수의 이름을로드 할 것입니다.
MyStaticLodingClass.addQueueObject(loadObject, this, myFunctionThatYouWillCallWhenDone);
위의 해당 클래스에는 이제 우선 순위별로 정렬 할 수있는 배열이 있어야합니다. 이런 식으로 당신은 할 수 있습니다
이것은 도움이 될 수 있습니다.
다른 현명한 사람은 어떤 유형의 객체를로드하려고하는지 알아 내고 예를 들어 BMP 와이 객체를 조회하여 올바른 로더를 사용합니다.