Попытка получить доступ к информации об источниках изображений в Actionscript - по какой-то причине она не отображается - PullRequest
0 голосов
/ 02 ноября 2011

Я работаю над проектом (использующим Flash Builder 4.5), в котором пользователь может щелкнуть одно из нескольких изображений для выполнения действия.Все изображения загружаются в массив UIComponents с помощью actionscript.

У меня есть приватная переменная следующим образом:

private var _selectedChild:UIComponent;

, которая отслеживает, какой UIComponent в настоящее время "выбран" (былпоследний элемент нажал).

Я просто хочу показать оповещение при нажатии на изображение, отображающее его идентификатор и имя исходного файла.

Alert.show("Current id: " + _selectedChild.id + " -- filename: " + _selectedChild.source);

Идентификатор легко получить с _selectedChild.id,но нет такого понятия, как .source - я просмотрел весь список возможных переменных, которые дает мне eclipse, и я не могу понять, какая из них будет отображать URL или источник.Я чувствую, что могу упустить что-то простое - кто-нибудь знает, как получить эту информацию от UIComponent?

Это соответствующий mxml:

<dp:Test id="test" width="100%" height="100%" >
        <mx:Image id="i1" source="images/i1.jpg"/>
        <mx:Image id="i2" source="images/i2.jpg"/>
    </dp:Test>

Любая помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

Вы приводите объект mx: Image к базовому компоненту UIComponent, у которого нет свойства "source". Либо оставьте _selectedChild как неопределенный тип *, либо определите его как mx.controls.Image. Если вы переключаетесь на искру, используйте spark.components.Image.

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

if(_selectedChild.hasOwnProperty("source"))
{
    // do stuff
}
1 голос
/ 02 ноября 2011

Если я правильно понимаю ваш код, вам нужно сначала преобразовать UIComponent в изображение:

var image:Image = _selectedChild as Image;
if (!image) trace("Nothing selected or the child is not an image");
Alert.show("Current id: " + image.id + " -- filename: " + image.source);
...