| 1 |
package com.nitoyon.binding |
|---|
| 2 |
{ |
|---|
| 3 |
import flash.events.Event; |
|---|
| 4 |
import mx.binding.utils.ChangeWatcher; |
|---|
| 5 |
|
|---|
| 6 |
/** |
|---|
| 7 |
* TwoWayBinding �N���X�́AActionScript �������[�^�o�C���f�B���O��� |
|---|
| 8 |
* ���邽�߂̐ÓI�ȃN���X�ł��B |
|---|
| 9 |
* |
|---|
| 10 |
* <p>�v���O���������[�^�o�C���f�B���O��������́A�ʏ�BindingUtils |
|---|
| 11 |
* �N���X��<code>bindProperty</code> ���\�b�h�𗘗p���܂����A |
|---|
| 12 |
* �o���쐬�����X�^�b�N�I�[�o�[�t���[���Ă��܂��܂��B |
|---|
| 13 |
* ���̃N���X�͑o���f�[�^�o�C���f�B���O��P�ɍ쐬���邽�߂� |
|---|
| 14 |
* <code>TwoWayBinding.create</code> ���\�b�h��ӂ��Ă��܂��B</p> |
|---|
| 15 |
*/ |
|---|
| 16 |
public class TwoWayBinding |
|---|
| 17 |
{ |
|---|
| 18 |
/** |
|---|
| 19 |
* �o���[�^�o�C���f�B���O������܂��B |
|---|
| 20 |
* @param src1 �P�ڂ̃I�u�W�F�N�g��肵�܂��B |
|---|
| 21 |
* @param prop1 �P�ڂ̃v���p�e�B��肵�܂��B |
|---|
| 22 |
* @param src2 �Q�ڂ̃I�u�W�F�N�g��肵�܂��B |
|---|
| 23 |
* @param prop2 �Q�ڂ̃v���p�e�B��肵�܂��B |
|---|
| 24 |
*/ |
|---|
| 25 |
public static function create(src1:Object, prop1:String, src2:Object, prop2:String):void |
|---|
| 26 |
{ |
|---|
| 27 |
var flag:Boolean = false; |
|---|
| 28 |
|
|---|
| 29 |
ChangeWatcher.watch(src1, prop1, function(event:Event):void |
|---|
| 30 |
{ |
|---|
| 31 |
if(!flag) |
|---|
| 32 |
{ |
|---|
| 33 |
flag = true; |
|---|
| 34 |
src2[prop2] = src1[prop1]; |
|---|
| 35 |
flag = false; |
|---|
| 36 |
} |
|---|
| 37 |
}); |
|---|
| 38 |
|
|---|
| 39 |
ChangeWatcher.watch(src2, prop2, function(event:Event):void |
|---|
| 40 |
{ |
|---|
| 41 |
if(!flag) |
|---|
| 42 |
{ |
|---|
| 43 |
flag = true; |
|---|
| 44 |
src1[prop1] = src2[prop2]; |
|---|
| 45 |
flag = false; |
|---|
| 46 |
} |
|---|
| 47 |
}); |
|---|
| 48 |
} |
|---|
| 49 |
} |
|---|
| 50 |
} |
|---|