문제

먼저 문제를 제시하겠습니다. 프로젝트에서 사용했던 모든 이미지를 내부적으로 내놓지 않고로드해야합니다. 이미지는 스킨 또는 나무의 아이템에 대한 아이콘으로 존재합니다. 나는 상징적 수업을 발견했습니다 여기나는 그것을 수정하고 나무에 사용할 수 있었지만 문제는 동일한 구성 요소에 상징성을 사용할 수 없다는 것입니다 (버튼과 같은 Upskin Downskin과 같은 2 개의 다른 스킨을 설정할 수 없다는 것입니다. 상징적 인 해결 방법을 생각할 수 없었습니다. 임베드를 시뮬레이션하고 동적으로 클래스를 생성하고 런타임에 클래스를 반환 할 수 있습니까?

도움이 되었습니까?

해결책

이러한 것들을 달성하는 가장 간단한 것은 자산이 포함 된 하나/다중 SWF를 만들고로드 한 다음 그곳에서 클래스를 꺼내는 것입니다 (즉,로드 된 SWFS 응용 프로그램 도메인) ...

이에 대한 여러 솔루션이 있습니다.

  • 하드 코어 버전은 해당 이미지를로드하는 것입니다 ByteArrays는 urlloader를 사용한 다음 새로 생성합니다 ByteArray, 그것은 내장 된 자산과 클래스와 연결하는 데 필요한 지침을 포함하는 SWF 파일입니다 ... Spark 's를보고 싶을 수도 있습니다. Swfassist ...
  • 조금 더 단순하고 성능이 (한 번만 수행하므로) 서버에서 그렇게하는 것입니다 ... 여기서는 할 수 있습니다.
    • 간단히 사용하십시오 플렉스 컴파일러
    • SWFMILL을 사용하십시오
    • SWF를 조작하기 위해 일부 라이브러리를 사용하십시오
    • 직접 해요, 손으로 ... :)

도움이되기를 바랍니다

편집하다: 두 번째 솔루션은 서버에서 자산을 만들거나 적절한 도구를 사용하거나 도구를 직접 코딩하는 것입니다. ... 아이디어는 단순히 웹 서버에 연결 한 다음 일부 Actionscript를 컴파일하도록하는 것입니다. 이는 포함시켜 다음과 같이 하나의 ActionScript 파일을 생성합니다.

package {
    import flash.display.Sprite;
    import flash.utils.describeType;
    public class Assets extends Sprite {
        [Embed(source='asset_1_Location')]
        public static var asset_1:Class;
        [Embed(source='asset_2_Location')]
        public static var asset_2:Class;
        ...
        [Embed(source='asset_n_Location')]
        public static var asset_n:Class;    
        public function Assets() { }
        public static function getAll():Object {
            var ret:Object = { };
            for each (var x:XML in describeType(Assets).variable.(@type=="Class")) {
                var name:String =  x.@name;
                ret[name] = Assets[name];
            }
            return ret;
        }
    }
}

그런 다음 Flex 컴파일러가 컴파일되도록하십시오 ...로드하면 LoaderInfo :: ApplicationDomain.getDefinition ( "Assets")으로 데이터를 추출하십시오. GetAll ()은 필요한 모든 클래스와 함께 키 값 맵을 제공합니다 ...

다른 도구를 사용하면 다르게 작동하지만 이것이 어떻게 작동 해야하는지 명확히하기를 바랍니다.

서버에는 서비스가 필요합니다.이 자산 SWF를 구축하고 캐시 할 수있는 서비스가 필요합니다. 예를 들어 필요한 JSON 배열과 함께 게시물 요청을 보냅니다. 당신은 SWF를 되돌려 ... 서버는 물론 적절한 캐싱을 수행해야합니다 ...

희망, 이제 도움이됩니다 ... :)

인사

back2dos

다른 팁

이것 내가 찾고 있던 것이 었습니다 ... 불행히도 저자는 버튼 스킨에 사용할 수 없다고 주장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top