Архів для категорії ‘Знайдені блохи’

Умовний оператор ?: та оператор віднімання не товаришують

Thursday, January 17, 2008

Маємо наступний код:

  1. trace(“begin”);
  2. var bool:Boolean = true;
  3. var flea:Number = -(bool ? 10 : 20);
  4. trace(“flea: “+flea.toString());

При спробі компіляції у Flex 2 ви отримаєте

“An internal build error has occurred. Please check the Error Log.” або

“1131: Classes must not be nested.”. Тобто, нічого працюючого Ви не отримаєте.

А Flash Вам взагалі нічого не скаже, але в output Ви не побачите навіть “begin”.

Це стосується тільки ActionScript 3.0. В ActionScript 2.0 наведений код скомпілюється як треба.

P.S. Про наведену помилку у Flex 2 Ви можете почитати тут (англійською). Вона трапляється іще в декількох випадках.

Блоха з DisplayObjectContainer.getObjectsUnderPoint()

Wednesday, December 5, 2007

Функція getObjectsUnderPoint() працює тільки для stage, або для контейнера, який знаходиться на stage (тобто його parent == stage). Для контейнерів з більшою вкладеністю getObjectsUnderPoint() повертає порожній масив.

Загадка про addProperty()

Tuesday, November 27, 2007

Загадка від Олександра Мостового (він же Ushan).

// ActionScript 1.0
flea = {};
flea.setter = function():Void{};
flea.getter = function() {
	this.i = isNaN(this.i) ? 0 : this.i+1;
	return this.property;
};
flea.addProperty("property", flea.getter, flea.setter);
flea.property;
trace("i: "+flea.i);

Яке значення flea.i буде в output?

Далі відповідь

(more…)

Загадка про String.replace()

Monday, November 26, 2007

Загадка від Олега (він же a_[w]):

var str:String = "vvv.blog.pirrest.com";
trace(str.replace("v", "w"));

Як Ви вважаєте що буде в output?

Далі відповідь

(more…)

Блоха з parseFloat()

Thursday, November 22, 2007

Пишемо в першому кадрі:

var n:Number = parseFloat("1.2.3.4");
trace("n: " + n);

В output бачимо:

Для ActionScript 1.0:

n: undefined

Для ActionScript 2.0:

n: 1.234

Для ActionScript 3.0:

n: 123.4

Деякі пояснення далі
(more…)