在Haxe 3中将多个图像嵌入一个类文件中

时间:2014-11-27 16:27:15

标签: flash meta-tags embedded-resource haxe flashdevelop

我正在尝试在同一个类文件中嵌入多个图像(每个PNG的@:bitmap(...)手动方式)。

但是,当我来使用PNG时,我不断获得Class not found : assets._NameOfImageClass_

我是否需要先导入同名的类作为* .hx文件,这些文件首先被抛入?

示例:如果它们都在assets/Assets.hx中定义,我需要import assets.Assets;才能使用new ICON_FILE();或者我是否能够只需使用import assets.ICON_FILE;?)

我正在使用FlashDevelop,这是以Flash为目标。

(注意:我不想为此使用OpenFL解决方案)

1 个答案:

答案 0 :(得分:0)

您只需要行import assets.Assets;

有资产的班级。

package mypack ;

import flash.media.Sound;

@:sound("assets/sound/Hit_Hurt.wav") class Hit_Hurt extends flash.media.Sound { }
@:sound("assets/sound/Jump2.wav") class Jump extends flash.media.Sound { }
@:sound("assets/sound/Laser_Shoot.wav") class Laser_Shoot extends flash.media.Sound { }

class SoundLib
{
    private static var _sounds:Array<Sound> = [ new Hit_Hurt(), new Jump(), new Laser_Shoot() ];


    public static function play( index:Int ):Void
    {
        _sounds[ index ].play();
    }

}

主要班级。

package ;

import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.Lib;
import flash.media.Sound;
import mypack.SoundLib;

class Main 
{


    static function main() 
    {
        var stage = Lib.current.stage;
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;

        var tmp:Sound = new Laser_Shoot();
        tmp.play();
    }

}