2010-12-11 4 views
1

Я трал сеть, пытаясь найти решение, но все, кажется, mxml-centric. Я хочу динамически создавать серию графических объектов, каждый из которых имеет дочерний элемент BitmapImage. Однако, это не похоже на работу:Flex AS3: динамически создавать графику с помощью BitmapImage Ребенок

var bmi:BitmapImage = new BitmapImage(); 
    bmi.source="@Embed('custom-case.png')"; 
    var gr:Graphic = new Graphic(); 
    gr.addElement(bmi); 
    gr.x = 50; 
    gr.y = 50; 
    this.addElement(gr); 

В то время как это делает:

<s:Graphic x="250" y="250"> 
    <s:BitmapImage source="@Embed('custom-case.png')"> 
    </s:BitmapImage> 
    </s:Graphic> 

Заранее спасибо за любые идеи.

Пол

ответ

4

это совсем другое в AS3, вы должны определить тип переменной класса, как показано ниже.

[Embed("custom-case.png")] 
private var someImage:Class; 
... 
bmi.source=someImage; 
+0

Работает отлично! Ура! – theworldsbestpies

+0

Привет @rxx Я пытаюсь загрузить источник изображения динамически уже созданного компонента изображения mxml. Когда я использовал код ура, он дает ошибку, поскольку «Частный атрибут может использоваться только при определении свойства класса», затем я получаю его публичность, а затем он также дает ошибку для публики. Могу ли вы предложить проблему –

+0

Привет, Shruti, я больше не работаю над материалом AS, и у меня нет подсказки, извините. – rxx

0

Чтобы следить за Shruti в комментарий/вопрос (я не могу выразить свое мнение, так как моей нынешней репутации Недостаточно высокий уровень):

Требование динамического обновления изображений с MXML так же, как указано с оригинальным ответом , которая является то, что любые изображения, которые вы можете динамически изменять, должен быть предварительно поместить его в вашем MXML:

[Embed(source="image.png")] private var theImage:Class; 

, которые могут быть впоследствии использованы для обновления источника изображения, как, например:

<fx:Script> 
    <![CDATA[   
    [Embed(source="image.png")] private var theImage:Class; 

    private function updateImage():void { 
     image.source = theImage; 
    } 
    ]]> 
</fx:Script> 

<s:BitmapImage id="image" source="@Embed('defaultImage.png')"/> 
Смежные вопросы