root/as3/TwoWayBinding/src/com/nitoyon/binding/TwoWayBinding.as

リビジョン 63, 1.4 kB (コミッタ: nitoyon, コミット時期: 1 年 前)

--

Line 
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 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。