Показаны сообщения с ярлыком Javascript. Показать все сообщения
Показаны сообщения с ярлыком Javascript. Показать все сообщения

среда, 28 марта 2012 г.

Форматирование даты в JavaScript с помощью regex



Столкнулся с задачей в JavaScript вывода даты/времени с добавлением "0" (аналог функций lpad в mySql или Oracle), если значение меньше 10. В интернете данная задача решается с помощью создания функции, например, такой:

function pad(num, size) {
    var s = num+"";
    while (s.length < size) s = "0" + s;
    return s;
}
или такие:
function pad(num, size) {
    var s = "000000000" + num;
    return s.substr(s.length-size);
}

function zeroPad(num, places) {
  var zero = places - num.toString().length + 1;
  return Array(+(zero > 0 && zero)).join("0") + num;
}

пятница, 16 декабря 2011 г.

Особенности ActionScript и не только

Одной из особенностью ActionScript, на которую стоит обратить внимание - это такая же, как и в JavaScript, передача объектов по ссылке (by reference), то есть при создании двух объектов и присваивании одного другому, изменение свойств второго объекта повлечет за собой изменение свойств первого объекта. Функция клонирования из JS понадобится и в AS3.
Попробую сделать две версии: с использованием встроенных объектов пространства имен flash.geom (Matrix3D, Vector3D и т.д.) и грубых примитивов - аналогов.
Потом будут тесты, по итогам которых останется наиболее производительный вариант.


четверг, 15 декабря 2011 г.

Начало преобразования с JavaScript в ActionScript

Начало

Ну вот, началось...

public class Main extends Sprite {
        var sc:Scene;
        public function Main():void {
            if (stage)
                init();
            else
                addEventListener(Event.ADDED_TO_STAGE, init);
        }
        private function init(e:Event = null):void {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            sc = new Scene();
            var req:URLRequest = new URLRequest("http://имя_домена/test/models/p.obj");
            req.method = URLRequestMethod.POST;
            var load:URLLoader = new URLLoader();
            load.addEventListener(Event.COMPLETE, completeHandler);
            try {
                load.load(req);
            } catch (err:Error){
                trace(err.message);
            }
        }
        private function completeHandler(event:Event):void {
            sc.loadOBJ(event.target.data);
        }
}


вторник, 6 декабря 2011 г.

Из истории создания 3D в Javascript

В интернете много опубликовано информации, есть даже исходники, для отображения трехмерных моделей в браузере без использования дополнительных плагинов вроде Microsoft Silverlight или Adobe Flash. В основном отображение осуществляется внутри контейнера canvas (одна из технологий HTML 5). Кое-где встречаются еще примеры работы с SVG и VML.

Казалось бы, что можно брать самую совершенную технологию и использовать ее, но что делать, когда у пользователей, которые будут просматривать странички с 3D содержимым, установлен только браузер по умолчанию, а это - Internet Explorer 6 или 7 (в лучшем случае) и нет возможности массово устанавливать новые версии браузеров вроде Mozilla Firefox или Google Chrome, плагин Adobe Flash Player? 
Ответ очевиден - использовать уже устаревшие технологии. SVG в Internet Explorer 6,7 не поддерживается, поэтому остается использовать VML.

Из известных примеров в интернете можно отметить (ни одного русскоязычного ресурса не встретилось, который бы затрагивал подобную тему):

http://www.garybeene.com/3d/3d-vml.htm - к сожалению, пример не удается загрузить (404 - Not found), а из тех частей кода, которые приведены в тексте невозможно восстановить текст целиком.
http://www.lutanho.net/svgvml3d/index.html - бесплатная библиотека, которая может быть использована для отображения и преобразования 3D объектов на html-страницах. Как видно из названия она поддерживает VML и SVG.
http://www.gersolutions.com/vml/ - еще одна из бесплатных библиотек 3D VML.