Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
public function UiAnalyticVO()
{
}
public function get ageGroup():String
{
var ageGroup:String;
// Данные о возрасте пользователя никогда не отправляются, важно только
// чтобы он был старше 18 (хз зачем).
// Возраст пользователя устанавливается 1 раз за всю жизнь приложения,
// даже если у него случится день Рождения - об этом приложение не
// узнает.
if (_age)
{
ageGroup = _age < 18 ? "1":"2";
}
else
{
ageGroup = "0";//undefined age
}
return ageGroup;
}
. . .
// эту функцию вызывают много раз в секунду
protected function sendAnalytics(categoryType:String, evtType:String):void
{
// жизненный цикл этого объекта - ровно пока не отработает эта функция,
// потом он жертва мусорщика
var analyticsVo:UiAnalyticVO = new UiAnalyticVO();
. . .
Тут прийдется немного нарпячь воображение, чтобы понять, что происходит. Kак бы много всего одновременно... (и даже больше, но для того, чтобы объяснить на сколько все плохо пришлось бы очень много постить. Я думаю, этого должно хватить :)
var vremya=15
var tim=0
var FpS=24//ваше fps
var intarval=1
stage.addEventListener(Event.ENTER_FRAME,qwer)
function qwer(e:Event){
t+=interval
if(tim>vremya*FpS){
interval=0
trace("15 сукунд прошло!!!")
}
}
Как сделать 15-секундную задержку? анонимус подскажет!
override public function call(... rest):void
{
var callname:String = rest[0];
var paramsStr:String = "";
for(var i:int = 1; i < rest.length; i++)
{
paramsStr += rest[i] + ((i == rest.length - 1) ? "" : ",");
}
ExternalInterface.call("page.appplicationToVideoPage", callname, paramsStr);
}
Все тот же автор продолжает говнореализацию встроенных функций и классов. (Особого внимания заслуживает говноархитектура предполагающая вызывать reflection API через reflection. Т.е. page.appplicationToVideoPage - это функция, которая парсит аргументы обратно, и вызывает функцию callname с параметрами полученными из paramsStr. Человека не устроил ExternalInterface, и он решил его тоже, через жопу, реализовать еще раз, средствами, естесственно ExternalInterface).
private function getListenerIndex(func:Function):Number
{
var num:Number = -1;
for(var i:int = 0; i < mouseWheelListeners.length; i++)
{
if(func == mouseWheelListeners[i])
{
num = i;
break;
}
}
return num;
}
public function addMouseWheelListener(subscriberFunc:Function):void
{
if(getListenerIndex(subscriberFunc) == -1)
mouseWheelListeners.push(subscriberFunc);
}
Отдельного внимания заслуживает тот факт, что человек решил, что индексов в массиве не будет больше чем максимальное цело 32-битное знаковое, и не меньше чем минимальное, а вернул все равно Number. (Для не разбирающихся в AS3 есть Array.indexOf(), метод который делает то, что делает getListenerIndex() в данном примере, только быстрее, и называется по-человечески. Но автор считает, что мануал написан для идиотов...)
function GetServerAddress( addressId )
{
var name = "";
// fill element
rs = oConn.Execute( "SELECT * FROM Address WHERE Id="+addressId );
var step = 0;
while ( !rs.EOF )
{
if ( rs.Fields("Type").Value != 20 ) // отключаем участие названий регионов в формировании адреса
{
if( step>1 )
{
name += ",";
}
if( step>0 )
{
name += rs.Fields( "Name" ).Value;
}
}
step++;
rs = oConn.Execute( "SELECT * FROM AddressName WHERE Id=" + rs.Fields( "AddressName" ).Value );
}
return name;
}
Это ж какие надо иметь мозги, чтобы в одном вайле бегать по разным ресурсам?!