Статті, які підпадають під теґ ‘setter’

getter/setter + (increment || decrement) = жук у компіляторі

Friday, May 30, 2008

Маємо змінну задану за допомогою get та set функцій:

var _num:Number = 0;
function get num():Number
{
	return _num;
}
function set num(value:Number):void
{
	_num = value;
}

Створюємо іще одну змінну:

var num2:Number = num++;

Отримуєм помилку компіляції:

1067: Implicit coercion of a value of type void to an unrelated type Number.

Вважаю що виходить так:

var num2:Number = set num(get num() + 1);

А так як результат set num() є void, то ми і отримуємо помилку.

[MXML] Як зробити setter, який приймає числове значення та значення у відсотках?

Monday, March 10, 2008

Ви ніколи не замислювались як може setter (в mxml), наприклад width, який повинен приймати Number, може приймати значення виду ’50%’?

Насправді все дуже просто. Існує метатаґ [PercentProxy], який як параметр приймає ім’я методу, який буде задіяно, якщо значення буде задано у відсотках.

Приклад. Створимо клас FleasCatcher:

  1. package
  2. {
    1. import mx.containers.Canvas;
    1. public class FleasCatcher extends Canvas
    1. {
      1. [PercentProxy("percentFleasCountInMyHead")]
      1. public function set fleasCountInMyHead(value:Number):void
      1. {
        1. trace(“number: “+value);
      1. }
      1. public function set percentFleasCountInMyHead(value:Number):void
      1. {
        1. trace(“percent: “+value);
      1. }
    1. }
  3. }

Тепер можемо написати хоч так:

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” xmlns:local=”*”>
    1. <local:FleasCatcher fleasCountInMyHead=”1000” />
  3. </mx:Application>

Хоч так:

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” xmlns:local=”*”>
    1. <local:FleasCatcher fleasCountInMyHead=”99%” />
  3. </mx:Application>