Профиль пользователя заблокирован сроком с 29 августа 2016 г. и навсегда по причине: Снова мат
  • Анимация вращения элементов на чистом js?

    copal
    @copal
    𝄞 ...оооо baby
    Читайте про матрицы.

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<style>
    		body{
    			background: #202020;
    		}
    
    		div.rect {
    			width: 50px;
    			height: 50px;
    
    			background: yellow;
    		}
    	</style>
    </head>
    <body>
    	<div class="rect" id="rotate-rect"></div>
    	<script>
    		var rect = document.getElementById('rotate-rect');
    		var a = 1, b = 0, c = 0, d = 1, tx = 10, ty = 10, angle = 0, currentAngle;
    
    		function getAngleToRAD(){
    			if(angle === 360){
    				angle = 0;
    			}
    
    			return angle++ * Math.PI / 180;
    		}
    		
    
    		function update(){
    			currentAngle = getAngleToRAD();
    
    			rect.style.transform = 'matrix(' + Math.cos(currentAngle) + ',' + Math.sin(currentAngle) + ',' + -Math.sin(currentAngle) + ',' + Math.cos(currentAngle) + ',' + tx + ',' + tx + ')'
    			window.requestAnimationFrame(update);
    		}
    
    		update();
    	</script>
    </body>
    </html>
    Ответ написан
  • Да что же такое MVC?

    copal
    @copal
    𝄞 ...оооо baby
    Ну раз книг Вам уже посоветовали, то остается пожелать лишь свободного времени побольше! Читайте у Вас получится!
    Ответ написан
  • Как раpставить обекты в canvas?

    copal
    @copal
    𝄞 ...оооо baby
    Вот есть о рисовании - рисование фигур с помощью canvas.
    Ответ написан
    Комментировать
  • Проблема browser-sync. Как решить?

    copal
    @copal
    𝄞 ...оооо baby
    Попробуйте удалить папку node_modules, а после выполнить -
    npm cache clean
    npm install

    Но если не сработает, то нужно ставить последнею, можно и бесплатную Visual Studio Community. Она подтягивает все нужные библиотеки и уже после, если по прежнему не будет работать, то сделайте так, как написано в самом начале - удалите и выполните.

    UPD: сорри, спутал консольные команды. Исправил.
    Ответ написан
    4 комментария
  • Почему в JavaScript у объекта Map есть свойство size, а не length как у других объектов?

    copal
    @copal
    𝄞 ...оооо baby
    Возможно для для того, чтобы отбить желание итерировать в циклах for и while выбирая элементы по индексу, ведь map и set не индексированный массив.
    Но как гласят доки из set и map элементы можно получать в том порядке, в котором их туда добавляли.
    Ответ написан
    Комментировать
  • В каких ситуациях используется шаблон фабрика в Javascript?

    copal
    @copal
    𝄞 ...оооо baby
    На самом деле шаблон фабрика, не путать с абстрактной фабрикой и сейчас не помню но есть и ещё какая-то, используется повсеместно и является очень хорошим примером ооп. Её суть в том чтобы сделать жизнь получателя наиболее комфортной. Ниже самый простой пример, в котором от показывается как на фабрике собирается кнопка о которой получатель знает лишь то, что она прибавляет карму. Если я сделаю таких кнопок очень много, а потом решу поменять её скин, то мне не придется бегать по коду и изменять её отовсюду, а нужно будет сменить лишь сборку на фабрике.
    var ButtonFactory = (function(){
      function ButtonFactory(){
        
      }
      
      ButtonFactory().prototype.getLikeButton = function(){
        	var likeButton = document.createElement('button');
        	likeButton.style.background = 'ff00ff';
        	likeButton.style.innerHTML = 'like';
    
            return likeButton;
      };
      
      return ButtonFactory;
    })();
    
    var buttonFactory = new ButtonFactory();
    
    document.getElementsByTagName('body')[0].appendChild(buttonFactory.getLikeButton());
    Ответ написан
    Комментировать
  • Как настроить фильтр ng-repeat?

    copal
    @copal
    𝄞 ...оооо baby
    Вот так нужно?

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Document</title>
    	<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.min.js"></script>
    	<style type="text/css">
    		body {
    			background-color: #232323;
    		}
    	</style>
    	<script type="text/javascript">
    		var app = angular.module('CheckBoxApp', []);
    
    		app.controller('FilterController', ['$scope', function($scope){
    			$scope.filters = {id: 2};
    
    			$scope.allFilms = [
    				{ name: 'title 1', genre: 'horror', date: 2014 },
    				{ name: 'title 2', genre: 'comedy', date: 2015 },
    				{ name: 'title 3', genre: 'horror', date: 2014 },
    				{ name: 'title 4', genre: 'comedy', date: 2014 },
    				{ name: 'title 5', genre: 'horror', date: 2015 }
    			];
    
    			$scope.checkboxDataForFilter = {
    				range: '',
    				date: ''
    			};
    
    		}]);
    
    	</script>
    </head>
    <body>
    	<div ng-app="CheckBoxApp">
    		<div ng-controller="FilterController">
    
    			<label> all:
    				<input type="checkbox" ng-model="checkboxDataForFilter.genre" ng-true-value="''"/>
    			</label>
    			<label> horro: 
    				<input type="checkbox" ng-model="checkboxDataForFilter.genre" ng-true-value="'horror'"/>
    			</label>
    			<label> comedy:
    				<input type="checkbox" ng-model="checkboxDataForFilter.genre" ng-true-value="'comedy'"/>
    			</label>
    			
    			<br />
    
    			<label> all:
    				<input type="checkbox" ng-model="checkboxDataForFilter.date" ng-true-value="''"/>
    			</label>
    			<label> 2014: 
    				<input type="checkbox" ng-model="checkboxDataForFilter.date" ng-true-value="2014"/>
    			</label>
    			<label> 2015:
    				<input type="checkbox" ng-model="checkboxDataForFilter.date" ng-true-value="2015"/>
    			</label>
    
    			<table>
    		            <tr ng-repeat="item in allFilms | filter: { date: checkboxDataForFilter.date, genre: checkboxDataForFilter.genre }">
    		                <td>Name: {{ item.name }},</td>
    		                <td>Genre: {{ item.genre }},</td>
    		                <td>Release Date: {{ item.date }}</td>
    		            </tr>
    			</table>
    		</div>
    	</div>
    </body>
    </html>
    Ответ написан
    Комментировать
  • Как вернуть свойства объекта к прототипным/стартовым?

    copal
    @copal
    𝄞 ...оооо baby
    Упрощенный вариант того, что Вам нужно -
    var Snake = (function(){
    	function Snake(){
    			this.body = [];
    			this.score = 180;
    			this.gameTime = 0;
    			this.level = 0;
    			this.levelStep = 0;
    	}
    
    	return Snake;
    })();
    
    var snake = new Snake(); // у этого объекта свойства по умолчанию
    ...
    ...
    snake = new Snake(); // теперь присваеваем свойству snake новый объект с свойствами по умолчанию
    Ответ написан
    4 комментария
  • Как заменить перенос строки на запятую в AS3?

    copal
    @copal
    𝄞 ...оооо baby
    А нужно так?
    trace(string.replace(/\r/g, ','));
    Ответ написан
  • Существует ли Alert в AS3?

    copal
    @copal
    𝄞 ...оооо baby
    ExternalInterface служит в качестве моста для связи flash с js. Работает только в браузере, так как локально нет объекта window чьим методом и является allert.

    И я знаю что Вы пишите в кадрах и именно по этому делаю упор на то, что Вас должен интересовать только код в конструкторе. Я не пишу в кадрах.

    package
    {
    	import flash.display.Sprite;
    	import flash.external.ExternalInterface;
    	
    	public class Main extends Sprite 
    	{
    		public function Main() 
    		{
    			if (ExternalInterface.available) 
    			{
    				ExternalInterface.call('alert', 'HelloWorld');
    			}
    		}
    	}
    	
    }
    Ответ написан
    1 комментарий
  • Почему DataProvider не хочет парсить XML?

    copal
    @copal
    𝄞 ...оооо baby
    У Вас в коде много расхождений, сначала одни значения потом другие, по этому я делал все наугад и если что не так вините себя. И так же я комментировать код не буду, если что не понятно то смотрите в хелпе.

    stop();
    
    import fl.controls.DataGrid;
    import fl.controls.dataGridClasses.DataGridColumn;
    import fl.data.DataProvider;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.*;
    
    var myXML: XML;
    var dp: DataProvider;
    var dg: DataGrid;
    var urlReq: URLRequest;
    var myLoader: URLLoader;
    
    myXML = <response>
    			<table>
    				<name>2</name>
    			</table>
    			<links>
    				<xml>6</xml>
    			</links>
    			<users>
    				<user><id>1</id></user>
    				<user><id>3</id></user>
    			</users>
    		</response>;
    		
    var xml:XML = XML(myXML.users);
    trace(xml)
    
    var ids: DataGridColumn = new DataGridColumn("id");
    ids.headerText = "id";
    ids.width = 100;
    
    dp = new DataProvider(xml);
    
    dg = new DataGrid();
    addChild(dg);
    
    dg.x = 0;
    dg.y = 0;
    dg.width = 550;
    dg.height = 454;
    dg.headerHeight = 40;
    dg.rowHeight = 30;
    dg.columns = [ids];
    dg.dataProvider = dp;
    dg.rowCount = dp.length;
    
    dg.setSize(550, 400);
    Ответ написан
    1 комментарий
  • Как правильно комментировать код JS?

    copal
    @copal
    𝄞 ...оооо baby
    /**
     * [param description]
     * @type {[type]}
     */
    var param = null;
    
    /**
     * [method description]
     * @param  {[type]} a [description]
     * @param  {[type]} b [description]
     * @param  {[type]} c [description]
     * @return {[type]}   [description]
     */
    function method(a, b, c){
    	return a + b + c;
    }
    Ответ написан
    1 комментарий
  • Производительность canvas анимации?

    copal
    @copal
    𝄞 ...оооо baby
    Соглашусь с предыдущими ораторами, но от части. requestAnimationFrame это хорошо, но на сколько я знаю, полифилом её не заменить, так как она должна синхронизироваться на уровне движка.

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

    Тут нужно сглаживать дельту времени. И у pixi я такого сглаживания не видел. Хотя я вообще на уровне фраймворков из коробки такое не видел.

    И pixi это рендер для gpu, который не для новичков. Не стоит его вообще пропагандировать в среде web-jquery'стов.)
    Ответ написан
  • Как из модуля получить root-директорию?

    copal
    @copal
    𝄞 ...оооо baby
    Возможно Вы об этом?
    global.process.cwd();
    Ответ написан
    Комментировать
  • Стоит ли изучать и использовать haxe вместо js и php?

    copal
    @copal
    𝄞 ...оооо baby
    Haxe - язык, который можно скомпилировать почти в любой другой. Но нельзя сказать, что можно выучить haxe для его последующий компиляции в php не зная php. Ведь haxe как язык ничего нового не принес в этот мир, а лишь повторяет api языков в которые компилируется.

    Так же я никогда не видел чтобы эксперты анализировали полученный код. Все говорят что у кода полученного с помощью haxe выше производительность (это не имеет отношения к inline), но лично мне кажется что это из-за пренебрежения канонами ооп.

    Я бы не стал его рекомендовать учить как язык.
    Ответ написан
    1 комментарий
  • Как реализовать цикл?

    copal
    @copal
    𝄞 ...оооо baby
    var json = {
    	"stops" : [{
    		"zoneId":"5522bdb1e4b047df5b5b7afa",
    		"coords":[[
    			[49.25100320801442,28.541126489672024],
    			[49.25156346163994,28.542151093515713],
    			[49.25113626882619,28.542376399072964],
    			[49.25074759018555,28.541657567056973],
    			[49.25076509829823,28.54119622710641],
    			[49.25100320801442,28.541126489672024]
    		]],
    		"name":"Ватутина",
    		"description":""
    	}]
    };
    
    var polygonCoords = [];
    var coords = json.stops[0].coords[0],
    	length = coords.length,
    	point,
    	POSITION_X = 0,
    	POSITION_Y = 1;
    
    for(var i = 0; i < length; i++){
    	point = coords[i];
    
    	console.log(point[POSITION_X],point[POSITION_Y]);
    	// new google.maps.LatLng(point[POSITION_X],point[POSITION_Y]);
    }

    function initialize_map( ) {
         var latlng = new google.maps.LatLng(info.stops[0].coords[0][0]);
         var myOptions = {
         zoom: 18,
         center: latlng,
         mapTypeId: google.maps.MapTypeId.ROADMAP
         };
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    
        var polygonCoords = [];
         //  ниже, я сохранил ссылку на json в свойство json,
         //  но как видно из Вашего кода, он у Вас называется info
         //  по этому я закоментирую свою строчку и оставлю Вашу.
        // var coords = info.stops[0].coords[0],
        var coords = info.stops[0].coords[0],
    
          length = coords.length,
          point,
          POSITION_X = 0,
          POSITION_Y = 1;
    
        for(var i = 0; i < length; i++){
          point = coords[i];
    
          polygonCoords.push(new google.maps.LatLng(point[POSITION_X],point[POSITION_Y]));
        }
        
         var polygon = new google.maps.Polygon({
          path: polygonCoords,
          strokeColor: "#5196DB",
          strokeOpacity: 1,
          strokeWeight: 2,
          fillColor: "#8ab9e7",
          fillOpacity: 0.5
         });
         polygon.setMap(map);   
         return map;
       }
    Ответ написан
    3 комментария
  • Сложно ли создать игру с командой 3-5 человек типа Fear, Silent Hill, Анабиоз?

    copal
    @copal
    𝄞 ...оооо baby
    Ответьте мне на вопросы -
    Скажите, а смогу ли я сделать одну из лучших игр? Я только завтра куплю книгу о программировании.
    Скажите, а смогу ли я сделать одну из лучших игр? У меня двадцать лет стажа и я участвовал в разработке всех топовых игр.

    Откуда отвечающий Вам может знать на что Вы способны? Человек который не понимает этого не может создать игру, ему ещё нужно минимум пять лет учится, чтобы дойти до того уровня, когда он сможет понять, что спрашивать нужно о другом.
    Ответ написан
    Комментировать
  • Какие вы видите перспективы в развитии js "оберток"?

    copal
    @copal
    𝄞 ...оооо baby
    В моем представлении о препроцессорах ниша для coffescript занята теми, кто предпочитает философию ruby.
    В сторону typescript смотрят те, кто перешел из типизированных языков и на
    данный момент не может представить, как можно сделать крупное приложение не программируя
    "на интерфейсах", каковым является философия типизированных языков.
    Поклонники Babel, это третья сторона силы, которая сейчас учится будущему.

    Лично я смотрел coffe и скомпилированный код мне понравился меньше, чем чисты, как слеза,
    скомпилированный код typescript.
    И я остановился на Babel, потому что js беден без последних новшеств, а выбирая между написания целой библиотеки или использовать точно такую же плюс учась завтрашнему синтаксису, я выбрал второе.
    Ответ написан
    5 комментариев