Передача значений через функции в mxml? - PullRequest
2 голосов
/ 11 февраля 2012

Я довольно новичок в MXML и Flash Builder с небольшим опытом работы с AS3 во Flash Professional. Мой вопрос заключается в том, что в настоящее время у меня есть базовое приложение, где у нас есть несколько кнопок, у которых есть функции, активируемые прослушивателями событий «щелчка» на этих кнопках. Проблема в том, что каждая кнопка выполняет более или менее одну и ту же функцию; только данные, которые загружаются для каждой кнопки, различны. Как мне сделать так, чтобы я мог перерабатывать ту же функцию? В Javascript или AS3 что-то в этом роде будет сделано ...

<s:Button id="btn_1" x="378" y="601" label="Button 1" click="photoSwap(event,"image1.jpg")"/>
<s:Button id="btn_2" x="350" y="601" label="Button 2" click="photoSwap(event,"image2.jpg")"/>

protected function photoSwap(event:MouseEvent):void
{
    // TODO Auto-generated method stub
    var selectedImage = evt.target;
    Tweener.addTween(img, {alpha:0, time:1});
    img.source="images/" + selectedImage;
    Tweener.addTween(img, {alpha:1, time:2, delay:1});
}

Но очевидно, что это не так. Я пытался решить проблему, но не смог ничего найти. Это работает, когда каждая кнопка имеет свою собственную функцию, но это кажется очень глупым и не должно быть сделано.

Ответы [ 2 ]

3 голосов
/ 11 февраля 2012

Очень распространенная ошибка новичка в Flash Builder.

Теги MXML имеют атрибуты, указанные в двойных кавычках ("). Таким образом, естественно запретить " в значении атрибута. Все, что вам нужно сделать, это указать строки в атрибутах MXML, используя одинарные кавычки (')

<s:Button id="btn_1" x="378" y="601" label="Button 1" click="photoSwap(event,'image1.jpg')"/>
<s:Button id="btn_2" x="350" y="601" label="Button 2" click="photoSwap(event,'image2.jpg')"/>

protected function photoSwap(event:MouseEvent, selectedImage:String):void
{
    Tweener.addTween(img, {alpha:0, time:1});
    img.source="images/" + selectedImage;
    Tweener.addTween(img, {alpha:1, time:2, delay:1});
}
0 голосов
/ 20 августа 2013

Более того, если вы ссылаетесь на такие атрибуты, как высота и ширина, тогда заключите метод в {}

<s:HGroup id="hoppers" height="40%" gap="{getAbsolutedimension(9.8, 'width')}"
...
...
</s:HGroup>

, где getAbsolutedimension возвращает число

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...