Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.04.2012, 16:16
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 31  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Цитата:
Сообщение от -De- Посмотреть сообщение
n неплохо бы uint сделать.
Спасибо. Исправил. Бес попутал.

Цитата:
Сообщение от -De- Посмотреть сообщение
В этом вашем FisherYatesRandomizer надо вместо len + 1 просто len
А вот тут вас бес попутал.

len при первом же вхождении в цикл на самом деле (_currentArray.length - 1), а Math.random() единицу не возвращает.
Поэтому, чтобы захватить крайний элемент, прибавляем единицу.

Добавлено через 45 часов 21 минуту
Тк тоже сел писать свой твин, решил посмотреть все, что под руку попадутся.

Первым же делом нарвался на неприятную ошибку вот здесь:

Код AS3:
*
* CALL
*/
private function callFunction(func:String):void {
  var arr:Array=this['on'+func+'Params'];
  if(arr){
    if(arr[1].length>0)
      if(arr[2]==true) arr[0](arr[1], this);
      else arr[0](arr[1]);
    else
      if(arr[2]==true) arr[0](this);
      else arr[0]();
  }
}
Кроме того, что прочитать невозможно, неверно вызываете коллбеки.
Советую почитать про apply/call.

А если вы и собираетесь передавать массив, то лучше об этом сообщить в документации.
"дополнительный параметр" тоже невнятный.
Кстати, вот список тегов для асдоков.
Примеры лучше оформлять с тегом code хотя бы. Или атрибутом example.

Добавлено через 46 часов 19 минут
К чести создателя, работает довольно шустро.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.


Последний раз редактировалось ChuwY; 09.04.2012 в 13:53.
Старый 10.04.2012, 00:04
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 32  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
Советую почитать про apply/call.
Я же обновление выложил
Там все исправлено, и твин обновлен.
Стал более легче.
Ну и еще подправлены некоторые ошибки.

Цитата:
К чести создателя, работает довольно шустро.
Спасибо, старался.

Старый 10.04.2012, 12:57
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 33  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Если уж ты дошел до создания асдоков, то выкладывай все-таки свою библиотеку в публичный репозиторий типа гитхаба, или битбакета, или гуглокода и давай ссылку именно на репозиторий, чтобы не нужно было по форуму искать актуальную версию.

По поводу строения кода. Например, та же функция будет выглядеть кошернее в таком виде:

Код AS3:
private function callFunction(funcName:String):void {
  var arr:Array = this['on' + funcName + 'Params'];
  if (!arr) {
    return;
  }
  var callback : Function = arr[0];
  if(!(callback)){
    return;
  }
  var params       : Array = arr[1]||[];
  var isTweenParam : Boolean = arr[2];
  if(isTweenParam){
    params.push(this);
  }
  callback.apply(null, params);
}
Старайтесь избегать большой вложенности кода. Это сильно затрудняет чтение.
Выход из функции при неверных параметрах предпочтительнее, чем вход в блок при верных, например, в данном случае.

И конструкция выбора параметров для apply переусложнена и неверна.
Код AS3:
{
  if (arr[2] == true) {
    arr[0].apply(null, this);
  } 
  else 
  {
    arr[0]();
  }
}
apply принимает вторым параметром именно массив, так что нужно было написать хотя бы
Код AS3:
arr[0].apply(null, [this]);
, а еще лучше, примерно как я выше.
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.


Последний раз редактировалось ChuwY; 10.04.2012 в 13:15.
Старый 10.04.2012, 13:06
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 34  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
MikroAcse, пара статей в тему http://habrahabr.ru/post/125799/
http://habrahabr.ru/post/141160/

Старый 10.04.2012, 13:20
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 35  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Я уже советовал в блогах ещё. Не слушается совета.
и ИМХО
https://bitbucket.org/ и mercurial кошернее.
__________________
Отряд Котовскага

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.