2009-09-22 4 views
0

나는 swx 파일을 내 haxe (미래 swf 파일에도 컴파일) 프로그램에서 사용해야한다. swfmill에 의해 그림을 포함하는 데 문제가 없으므로 swfmill을 사용하여 swf를 해체하려고 시도하고 DefineSprite 및 DefineShape와 같은 objectID가있는 항목을 발견했습니다.ObjectID로 swf 요소 첨부하기

swf 파일을 라이브러리로 사용하여 haxe에서 이러한 요소를 첨부 할 수 있습니까?

답변

1

가있는 경우가 요소 (등 그림, 소리 등)를 첨부 할 수 있습니다 : (+ 적어도 FLASH9에 대한) 그것을 (또는 어쩌면 ExportAsset)

  • AS3 클래스 스텁 생성에 대한 수출

    1. SymbolClass을 - Haxe haxe를 들어 첫 번째 프레임

    에 적어도 자원이 처리됩니다, 당신은 매개 변수로 하나의 SWF 걸리는 -swf-lib mylib.swf 스위치를 지원해야합니다. 여러 개의 라이브러리를 사용하려는 경우 swfmill 또는 SamHaxe을 사용하여 라이브러리를 하나로 어셈블하고 어셈블 된 라이브러리를 지원할 수 있습니다.

    Haxe에서, 당신은 다음이 도움이

    var mySprite: flash.display.Sprite = cast 
    Type.createInstance(Type.resolveClass("the.exported.SpriteSymbolName"), []); 
    
    var myBitmap: flash.display.Bitmap = cast 
    Type.createInstance(Type.resolveClass("the.exported.BitmapSymbolName"), []); 
    

    희망을 사용할 수 있습니다.

  • +0

    친절 함. 아니 내 질문에 대답하지만 적어도 나는 그것을 할 수없는 유일한 사람 (ObjectID에 의해 링크) 아니에요. – stroncium

    +0

    주어진 ID에 대한 SymbolClass가없는 경우 인스턴스화 할 수 없다는 것을 알려 드리고 싶습니다. 그러나 필요한 경우 해킹을 할 수 있습니다. SWF를 format.swf haxelib로 구문 분석하고, 구문 분석 된 구조에 SymbolClass 태그를 추가하고, format.abc를 사용하여 어셈블 된 AS3 클래스 스텁을 추가하십시오. SamHaxe의 출처를 들여다 보면 어떻게되는지 알 수 있습니다. – ron

    +0

    물론 런타임에이 작업을 수행 할 수 있으며 새로 조립 된 swf 파일을로드하여 사용할 수 있습니다. – ron