0
ボタン付きVBoxがあります。私はボタンをクリックした後、ラベルを変更したいと思う。私はコードビハインドプラクティスを使用しようとしていますが、ボタンのインスタンスは常にnullです。コードがあります:Flex 3:コードビハインドの問題
package TestPackage
{
import mx.containers.VBox;
import mx.controls.Button;
public class ControlsBox extends VBox
{
[Bindable]
public var btnPlay : Button;
public function ControlsBox()
{
super();
}
override protected function childrenCreated():void
{
super.childrenCreated();
}
public function ChangeImage():void
{
btnPlay.label = "a";
}
}
}
Here is mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:controls="TestPackage.*">
<controls:ControlsBox id="ctrlVBox">
<mx:Button id="btnPlay" click="this.ctrlVBox.ChangeImage();" label="c"></mx:Button>
</controls:ControlsBox>
</mx:Application>
私は間違っていますか?そして、それをどうやって行うのか? おかげ
がうーん....奇妙に見えますが...私はボタンを持つようにしたいと私コードビハインドからそれを扱う機会を得たいと思っています...あなたのコードでは、別のボタンを挿入する必要があります。なぜなら...どうもありがとう... – mimic
codebehindは、 'Button'型のインスタンスを保持できる*変数*' btnPlay'を宣言しますが、変数の値は最初はnullです - コードビハインドは実際にはボタンインスタンス。代わりに、ボタン*インスタンス*はmxmlステートメント ' 'によって作成されます。 ''内の 'Button'の位置は、新しい' Button'インスタンスを 'btnPlay'変数に割り当てるようにMXMLに指示します。奇妙な構文ですが、うまくいくはずです。 –
Lee
[スパークスキニング](http://help.adobe.com/en_US/flex/using/WSC8DB0C28-F7A6-48ff-9899-7957415A0A49.html)は、あなたがしようとしていることにはるかに適しています。このようなことは、.NETの "コードビハインド"コンセプトではじめて試みるよりもはるかに簡単です。具体的には、[Skin Parts](http://www.adobe.com/devnet/flex/articles/flashbuilder4_skin_parts.html)を参照してください。 – Lee