объявить переменную в flex против flash? - PullRequest
0 голосов
/ 15 мая 2011

Этот код выдает ошибку. Описание
1026: Функции конструктора должны быть методами экземпляра.joe.mxml / joe / src line 7 Проблема Flex

Почему.Вот так я объявляю публичные переменные во flash.Почему это не работает во Flex?Я также попробовал var joe: String = "victory";все еще не работает.

<fx:Script>
    <![CDATA[
        var joe="winning";
        function changelabel()
        {
            myButton.label=joe; 
        }

    ]]>
</fx:Script>
<s:Button x="50" y="42" label="Button" id="myButton" click="changelabel()"/>

1 Ответ

6 голосов
/ 15 мая 2011

Я думаю, что вы столкнулись с этой проблемой, потому что имя вашей переменной (joe) совпадает с именем вашего файла MXML. Поэтому, когда он видит в коде что-то, называемое «joe», он предполагает, что это конструктор - и это сбивает с толку, потому что конструктор - это строка, а не метод экземпляра.

Имеет ли это смысл?

Просто измените имя вашей строковой переменной с "joe" на "myString".

Также обратите внимание на предупреждения, которые выдает Flash Builder - это может показаться тривиальным, но вам действительно следует указать модификаторы доступа для всех методов и свойств (т. Е. Вместо «var myString» сделать его «public var my myring».

Кроме того, вы захотите указать типы данных для переменных и функций.

защищенный var myString: String защищенная функция changeLabel (): void

Эти меры, принятые сейчас, помогут вам написать лучший код, которым легче управлять, двигаясь вперед.

Удачи!

...