четверг, 13 мая 2010 г.

AS3. Баг или я чего-то не знаю

Реализовывая сегодня очередной функционал в проекте и наткнулся на странную особенность работы с константами:
const PI:Number = 3.14;
PI = 6.28;//Compile error
PI++; //Ok PI = 4.14


* This source code was highlighted with Source Code Highlighter.


Что это? :)

upd:
создал bug ASC-4075
так же потом заметил ASC-4074 опередили :)

четверг, 14 января 2010 г.

QT 4.6, QMessageBox и запуск потоков

Сегодня случайно обнаружил в проекте странно поведение:
При вызове QMessageBox::critical и тп создаются потоки!
в Task Manager'e счетчик потоков с 1го прыгает аж до 9 и потом падает до 7.
Сначала подумал где то у меня чего-нибудь течет, но сразу зарубил эту мысль, тк в проекте потоки нигде не создаются. OС win7, VC++ 9.0

вторник, 27 октября 2009 г.

Singleton в Action Script 3

С появлением Action Script 3 кое какой код на предыдущей версии перестанет работать: например реализация синглтона, тк в AS2 конструктор можно было объявлять приватным.

Решение для AS3:

namespace some.project {
public class SomeClass {
private static var _instance:SomeClass = null;

public function SomeClass(PrivateClass pc) {
}

public static function get instance():SomeClass {
if (_instance == null) {
_instance = new SomeClass(new PrivateClass);
}
return _instance;
}
}
}

class PrivateClass {}


что бы не писать подобное:

public class SomeClass {
private static var _instance:SomeClass = null;
private static var flag:Boolean = false;

public function SomeClass() {
if (! flag) {
throw new Error("This is singleton");
}
}

public static function get instance():SomeClass {
if (_instance == null) {
flag = true;
_instance = new SomeClass();
}

return _instance;
}
}


Фишка в том что в первом случае компилятор нам не даст сделать

var obj:SomeObject = new SomeObject(...);

тк для создания объекта требуется объект класса PrivateClass. Класс виден только в том же файле что и SomeObject.

Во-втором случае все будет хорошо и о проблеме мы узнаем только во время работы "аппликации".

ух ты

У мну теперь есть свой блог :)