在flex vs flash中声明变量?

tec*_*dog 0 apache-flex variables flash declare

此代码提供错误说明
1026:构造函数必须是实例方法.joe.mxml/joe/src第7行Flex问题

为什么.这就是我在flash中声明公共变量的方法.为什么它不适用于Flex?我也尝试过var joe:String ="won"; 仍然无法正常工作.

<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()"/>
Run Code Online (Sandbox Code Playgroud)

Myk*_*Myk 6

我认为您遇到了这个问题,因为您的变量名称(joe)与您的MXML文件名称相同.因此,当它在代码中看到一个名为"joe"的东西时,它会认为这是构造函数 - 并且它会变得混乱,因为构造函数是一个字符串而不是实例方法.

那有意义吗?

只需将字符串变量的名称从"joe"更改为"myString"即可.

另外,请注意Flash Builder给你的警告 - 这看起来似乎微不足道,但你真的应该为所有方法和属性指定访问修饰符(即代替"var myString"使它成为"public var myString".

此外,您还需要为变量和函数指定数据类型.

protected var myString:String protected function changeLabel():void

现在采取的这些措施将帮助您编写更易于管理的更好的代码.

祝好运!