2013-06-13 6 views
1

다른 플랫폼에서는 [Embed (source = "logo.gif")] 또는 @ : bitmap과 같은 것을 사용할 수 있지만 Windows/다른 Cpp 플랫폼.Windows에 배포 할 때 이미지 애셋 임베딩 및 읽기

EmbedAssets lib를 사용하려고했지만 오래된 것입니다.

또한 nmml 파일 리소스 태그를 사용해 보았습니다. 이것으로 이미지를 haxe.sys.io.Bytes로 얻을 수 있지만 haxe.sys.io.Bytes를 nme.utils.ByteArray로 변환해야합니다. 나는 이것을 할 길을 찾지 못했습니다.

그래서 Windows에 배포 할 때 haxe/nme 프로젝트에 이미지를 포함하려면 어떻게해야합니까?

답변

4

openfl.Assets 외에는 OpenFL는 @:bitmap, @:sound, @:font@:file 삽입 태그를 지원한다.

전자는 프로젝트 XML 파일에 <assets path="to/assets" />이 필요하고 Windows에서는 실행 파일과 함께 파일을 복사합니다.

embed 태그는 애셋 파일이 포함 된 방식에 따라 소스 경로에 있어야하므로 프로젝트 파일에 <source path="to/assets" />을 사용하십시오.

package; 


import flash.display.Bitmap; 
import flash.display.BitmapData; 
import flash.display.Sprite; 

@:bitmap("nme.png") class Image extends BitmapData {} 


class Main extends Sprite { 


    public function new() { 

     super(); 

     var bitmap = new Bitmap (new Image (0, 0)); 
     addChild (bitmap); 

     bitmap.x = (stage.stageWidth - bitmap.width)/2; 
     bitmap.y = (stage.stageHeight - bitmap.height)/2; 

    } 


} 

삽입 태그를 사용하여 자산이 실행 파일 안에있을 것입니다 : 여기

@:bitmap 태그를 사용하는 예입니다.

+0

감사! 나는 이것을하기 위해 NME에서 OpenFL로 옮겼고 그 결과에 더 만족할 수 없었다. 또 다른 빠른 메모 : 어떻게 Alt + Enter 기능을 비활성화 할 수 있습니까? –

+0

@ : 파일을 swf 라이브러리를 포함시키는 데 어떻게 사용합니까? 위의 답변에 예제를 추가해 주시겠습니까? 고맙습니다 – simo

0

NME 또는 OpenFL을 사용하면 <assets path="Assets" rename="assets"/>을 추가하거나 assets 디렉토리의 이름을 변경해야 할 수도 있지만 NMML 파일에 애셋을 추가하지 않고도 Assets.getBitmapData("assets/myImg.png");으로 전화를 걸 수 있습니다. 그런 다음이 bitmapData를 표시 목록의 비트 맵 객체에 추가 할 수 있어야합니다. 예를 들어

:

var bd:BitmapData = Assets.getBitmapData("assets/myImg.png"); 
var bitmap:Bitmap = new Bitmap(bd); 
addChild(bitmap); 
+0

나는 그것을했고 파일은 여전히 ​​실행 파일과 함께 복사됩니다. –