チェンジセット 2440

差分発生行の前後
無視リスト:
コミット日時:
2009/04/10 12:08:14 (3 年前)
コミッタ:
alumican
ログメッセージ:

Eseclock:IEseclockTextFieldの仕様を変更

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/Eseclock/branches/alumican/samples/99/CustomClockField.as

    r2439 r2440  
    5656                //------------------------------------- 
    5757                 
    58                 public function get defaultTextFormat():TextFormat { return hours.defaultTextFormat; } 
    59                 public function set defaultTextFormat(value:TextFormat):void { hours.defaultTextFormat = minutes.defaultTextFormat = seconds.defaultTextFormat = value; } 
    60                  
    61                 public function get autoSize():String { return hours.autoSize; } 
    62                 public function set autoSize(value:String):void { hours.autoSize = minutes.autoSize = seconds.autoSize = value; } 
    63                  
    64                 public function get selectable():Boolean { return hours.selectable; } 
    65                 public function set selectable(value:Boolean):void { hours.selectable = minutes.selectable = seconds.selectable = value; } 
    66                  
    67                 public function get description():String { return ""; } 
    68                 public function set description(value:String):void { } 
    69                  
    70                 public function get textWidth():Number { return seconds.x + seconds.textWidth; } 
    71                 public function get textHeight():Number { return hours.textHeight; } 
     58                public function get objectWidth():Number { return seconds.x + seconds.textWidth; } 
     59                public function get objectHeight():Number { return hours.textHeight; } 
    7260                 
    7361                 
     
    8270                 * コンストラクタ 
    8371                 */ 
    84                 public function CustomClockField():void { 
     72                public function CustomClockField():void 
     73                { 
    8574                        var fmt:TextFormat = hours.defaultTextFormat; 
    8675                        fmt.letterSpacing = -3; 
    87                          
    8876                        hours.defaultTextFormat   = fmt; 
    8977                        minutes.defaultTextFormat = fmt; 
     
    9987                //------------------------------------- 
    10088                 
    101                 public function update(h:uint, m:uint, s:uint):void { 
     89                /** 
     90                 * 色を設定する関数 
     91                 * @param       h       時 
     92                 * @param       m       分 
     93                 * @param       s       秒 
     94                 */ 
     95                public function setColor(color:uint):void 
     96                { 
     97                        var fmt:TextFormat = hours.defaultTextFormat; 
     98                        fmt.color = color; 
     99                        hours.defaultTextFormat   = fmt; 
     100                        minutes.defaultTextFormat = fmt; 
     101                        seconds.defaultTextFormat = fmt; 
     102                } 
     103                 
     104                /** 
     105                 * 時計表示を更新する関数 
     106                 * @param       h       時 
     107                 * @param       m       分 
     108                 * @param       s       秒 
     109                 */ 
     110                public function updateClock(h:uint, m:uint, s:uint):void 
     111                { 
    102112                        hours.text   = Eseclock.toDigitString(h); 
    103113                        minutes.text = Eseclock.toDigitString(m); 
     
    105115                } 
    106116                 
    107                 public function setTextFormat(textFormat:TextFormat, beginIndex:int = -1, endIndex:int = -1):void { 
    108                         hours.setTextFormat(textFormat, beginIndex, endIndex); 
    109                         minutes.setTextFormat(textFormat, beginIndex, endIndex); 
    110                         seconds.setTextFormat(textFormat, beginIndex, endIndex); 
     117                /** 
     118                 * テキストを更新する関数 
     119                 * @param       message 表示文字列 
     120                 */ 
     121                public function updateDescription(message:String):void 
     122                { 
    111123                } 
    112124                 
  • as3/Eseclock/branches/alumican/samples/99/CustomDescriptionField.as

    r2439 r2440  
    22        import flash.text.TextField; 
    33        import flash.text.TextFormat; 
    4         import org.libspark.eseclock.textfield.EseclockDefaultTextField; 
     4        import org.libspark.eseclock.textfield.EseclockDefaultDescriptionTextField; 
    55         
    66        /** 
     
    1212         */ 
    1313         
    14         public class CustomDescriptionField extends EseclockDefaultTextField { 
     14        public class CustomDescriptionField extends EseclockDefaultDescriptionTextField { 
    1515                 
    1616                //------------------------------------- 
     
    7979                //------------------------------------- 
    8080                 
    81                 override public function set description(value:String):void { 
    82                         super.description = value; 
    83                 } 
     81                 
    8482                 
    8583                 
  • as3/Eseclock/branches/alumican/src/org/libspark/eseclock/Eseclock.as

    r2430 r2440  
    153153                //-------------------------------------------------------------------------- 
    154154                 
    155                 public function get description():String { return _clock1.description; } 
     155                public function get description():String { return _description; } 
    156156                public function set description(value:String):void 
    157157                { 
     158                        _description = value; 
    158159                        _clock1.updateDescription(value); 
    159160                        _clock2.updateDescription(value); 
    160161                } 
     162                 
     163                private var _description:String = "TOKYO / JAPAN"; 
    161164                 
    162165                 
     
    473476                        _clock1.updateField(date.hours, date.minutes, date.seconds); 
    474477                        _clock2.updateField(date.hours, date.minutes, date.seconds); 
     478                         
     479                        //最初に表示するテキスト 
     480                        _clock1.updateDescription(_description); 
     481                        _clock2.updateDescription(_description); 
    475482                         
    476483                        //自動開始 
  • as3/Eseclock/branches/alumican/src/org/libspark/eseclock/object/ClockSprite.as

    r2430 r2440  
    3535        import flash.text.TextFormat; 
    3636        import flash.utils.getDefinitionByName; 
    37         import org.libspark.eseclock.textfield.EseclockDefaultTextField; 
     37         
     38        import org.libspark.eseclock.textfield.EseclockDefaultClockTextField; 
     39        import org.libspark.eseclock.textfield.EseclockDefaultDescriptionTextField; 
    3840        import org.libspark.eseclock.textfield.IEseclockTextField; 
    3941         
     
    6264                private var _leading:Number; 
    6365                 
     66                //テキストが空文字列以外の場合はtrue 
     67                private var _hasDescription:Boolean; 
     68                 
     69                 
    6470                 
    6571                 
     
    6975                //------------------------------------- 
    7076                 
    71                 //時計の下に表示するテキスト 
    72                 public function get description():String { return _sub.description; } 
    73                 public function set description(value:String):void { updateDescription(value); } 
    74                  
    7577                //テキスト色 
    76                 public function get textColor():uint { return _field.defaultTextFormat.color as uint; } 
    7778                public function set textColor(value:uint):void { 
    7879                        _changeTextColor(_field, value); 
     
    8182                 
    8283                //背景色 
    83                 public function get backgroundColor():uint { return _backgroundColor; } 
    8484                public function set backgroundColor(value:uint):void { _drawBackground(value); } 
    8585                 
     
    128128                private function _createFields(color:uint, clockAsset:String = "", subAsset:String = ""):void 
    129129                { 
    130                         var fmt:TextFormat; 
    131                          
    132                         fmt = (clockAsset == "") ? new TextFormat("Arial Black", 96, color, true) : new TextFormat(null, null, color); 
    133                         _field = _createField(clockAsset, fmt); 
    134                         _field.update(99, 99, 99); 
    135                          
    136                         fmt = (subAsset == "") ? new TextFormat("Arial Black", 36, color, true) : new TextFormat(null, null, color); 
    137                         _sub = _createField(subAsset, fmt); 
    138                         description = "TOKYO / JAPAN"; 
     130                        _field = _createField(clockAsset, EseclockDefaultClockTextField); 
     131                        _field.setColor(color); 
     132                        _field.updateClock(99, 99, 99); 
     133                         
     134                        _masked.addChild(_field as DisplayObject); 
     135                         
     136                         
     137                        _sub = _createField(subAsset, EseclockDefaultDescriptionTextField); 
     138                        _sub.setColor(color); 
     139                        _sub.updateDescription("TOKYO / JAPAN"); 
     140                         
     141                        _masked.addChild(_sub as DisplayObject); 
     142                         
    139143                         
    140144                        //中央揃え 
     
    144148                /** 
    145149                 * 各テキストフィールドを生成する関数 
    146                  * @param       tf 
    147150                 * @param       asset 
    148                  * @param       fmt 
    149                  */ 
    150                 private function _createField(asset:String, fmt:TextFormat):IEseclockTextField { 
     151                 * @param       defaultClass 
     152                 */ 
     153                private function _createField(asset:String, defaultClass:Class):IEseclockTextField { 
    151154                        var tf:IEseclockTextField; 
    152155                         
    153156                        if (asset == "") { 
    154                                 tf = new EseclockDefaultTextField()
     157                                tf = new defaultClass() as IEseclockTextField
    155158                        } else { 
    156159                                var fieldClass:Class = getDefinitionByName(asset) as Class; 
     
    158161                        } 
    159162                         
    160                         tf.defaultTextFormat = fmt; 
    161                         tf.selectable = false; 
    162                         tf.autoSize = TextFieldAutoSize.LEFT; 
    163                         _masked.addChild(tf as DisplayObject); 
    164                          
    165163                        return tf; 
    166164                } 
     
    172170                public function updateDescription(description:String):void 
    173171                { 
    174                         _sub.description = description; 
     172                        _hasDescription = (description != "") ? true : false; 
     173                         
     174                        _sub.updateDescription(description); 
    175175                         
    176176                        //中央揃え 
     
    186186                public function updateField(h:uint, m:uint, s:uint):void 
    187187                { 
    188                         _field.update(h, m, s); 
     188                        _field.updateClock(h, m, s); 
    189189                } 
    190190                 
    191191                /** 
    192192                 * テキストフィールドの色を変更する関数 
    193                  * @param       textField     ターゲット 
     193                 * @param       tf    ターゲット 
    194194                 * @param       color           色 
    195195                 */ 
    196                 private function _changeTextColor(textField:IEseclockTextField, color:uint):void 
    197                 { 
    198                         var fmt:TextFormat = textField.defaultTextFormat; 
    199                         fmt.color = color; 
    200                         textField.defaultTextFormat = fmt; 
    201                         textField.setTextFormat(fmt); 
     196                private function _changeTextColor(tf:IEseclockTextField, color:uint):void 
     197                { 
     198                        tf.setColor(color); 
    202199                } 
    203200                 
     
    212209                         
    213210                        //テキストフィールドの中央揃え 
    214                         var margin:int = (description.length > 0) ? _leading : 0; 
    215                         var totalHeight:uint = _field.textHeight + _sub.textHeight; 
    216                          
    217                         _field.x = (_w - _field.textWidth) / 2; 
    218                         _field.y = (_h - totalHeight     ) / 2; 
    219                          
    220                         _sub.x = (_w - _sub.textWidth) / 2; 
    221                         _sub.y = (_h - totalHeight   ) / 2 + _field.textHeight + margin; 
     211                        var margin:int = (_hasDescription) ? _leading : 0; 
     212                        var totalHeight:uint = _field.objectHeight + _sub.objectHeight; 
     213                         
     214                        _field.x = (_w - _field.objectWidth) / 2; 
     215                        _field.y = (_h - totalHeight       ) / 2; 
     216                         
     217                        _sub.x = (_w - _sub.objectWidth) / 2; 
     218                        _sub.y = (_h - totalHeight     ) / 2 + _field.objectHeight + margin; 
    222219                } 
    223220        } 
  • as3/Eseclock/branches/alumican/src/org/libspark/eseclock/textfield/IEseclockTextField.as

    r2428 r2440  
    2727{ 
    2828        import flash.text.TextFormat; 
     29        import jp.nium.core.display.IDisplayObject; 
    2930         
    3031        /** 
     
    3738         */ 
    3839         
    39         public interface IEseclockTextField 
     40        public interface IEseclockTextField extends IDisplayObject 
    4041        { 
    4142                 
     
    7677                //------------------------------------- 
    7778                 
    78                 function get x():Number; 
    79                 function set x(value:Number):void; 
    80                  
    81                 function get y():Number; 
    82                 function set y(value:Number):void; 
    83                  
    84                 function get defaultTextFormat():TextFormat; 
    85                 function set defaultTextFormat(value:TextFormat):void; 
    86                  
    87                 function get autoSize():String; 
    88                 function set autoSize(value:String):void; 
    89                  
    90                 function get selectable():Boolean; 
    91                 function set selectable(value:Boolean):void; 
    92                  
    93                 function get description():String; 
    94                 function set description(value:String):void; 
    95                  
    96                 function get textWidth():Number; 
    97                 function get textHeight():Number; 
     79                /** 
     80                 * 表示オブジェクトの幅と高さを取得する 
     81                 */ 
     82                function get objectWidth():Number; 
     83                function get objectHeight():Number; 
    9884                 
    9985                 
     
    114100                 
    115101                /** 
    116                  * 時計の文字盤を更新する関数(時計のTextField用) 
     102                 * 色を設定する関数 
     103                 * @param       color 
     104                 */ 
     105                function setColor(color:uint):void; 
     106                 
     107                /** 
     108                 * 時計表示を更新する関数 
    117109                 * @param       h       時 
    118110                 * @param       m       分 
    119111                 * @param       s       秒 
    120112                 */ 
    121                 function update(h:uint, m:uint, s:uint):void; 
     113                function updateClock(h:uint, m:uint, s:uint):void; 
    122114                 
    123115                /** 
    124                  * TextFormatを適用する関数 
    125                  * @param       textFormat 
    126                  * @param       beginIndex 
    127                  * @param       endIndex 
     116                 * テキストを更新する関数 
     117                 * @param       message 表示文字列 
    128118                 */ 
    129                 function setTextFormat(textFormat:TextFormat, beginIndex:int = -1, endIndex:int = -1):void; 
    130                  
     119                function updateDescription(message:String):void; 
    131120                 
    132121