Можно ли создать функцию динамического встраивания? - PullRequest
1 голос
/ 03 октября 2011

Возможно ли создать динамическую функцию встраивания в ActionScript3

, например, вот так

     public function embedImage(path:String):Bitmap{
            [Embed(source = path, mimeType = "image/png")]
        var NewBitmapClass:Class;

            var image:Bitmap=new NewBitmapClass();
            return image;

     }// tried it, it doesnt work

или, возможно, каким-либо другим способом, или даже если это вообще возможно?*

Ответы [ 3 ]

4 голосов
/ 08 октября 2012

Самое близкое, что вы можете получить с помощью «динамической» части, - это создать класс-обертку, в котором вы определяете свои изображения, и позже вы можете получить их как Bitmap по идентификатору. К сожалению, свойства являются общедоступными, в противном случае функция hasOwnProperty не возвращает true. (Если кто-то найдет лучший способ, пожалуйста, дайте мне знать)

См. Ниже:

package {
import flash.display.Bitmap;

public class DynamicEmbed {

    [Embed(source = "../images/cat.jpg")]
    public var cat : Class;

    [Embed(source = "../images/parrot.jpg")]
    public var parrot : Class;

    [Embed(source = "../images/pig.jpg")]
    public var pig : Class;

    [Embed(source = "../images/quail.jpg")]
    public var quail : Class;

    public function DynamicEmbed() {
    }

    public function getBitmap(id : String) : Bitmap {
        if(hasOwnProperty(id)) {
            var bitmap : Bitmap = new this[id]();
            return bitmap;
        }

        return null;
    }
}
}
2 голосов
/ 03 октября 2011

Встроенные элементы внедряются во время компиляции. Вы не можете динамически встраивать что-то во время компиляции ... Если вы хотите загружать ресурсы динамически, используйте Loader.

1 голос
/ 03 октября 2011

Нет, источник встраивания встроен во время компиляции.Вы не можете ничего встроить во время выполнения.Вот что означает встраивание, встраивание во время сборки SWF.

...