Jump to content

cyklop77

User
  • Posts

    1,770
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by cyklop77

  1. спасибо. а цвет синий не был привязан к этому лого?.. в том то и дело, что непонятно где этот файл искать. раньше я копировал подобные svg-изображения, но координаты содержались в атрибуте как я понял, путь к файлу как то формируется динамически в этой строке: var svg = rnews.settings.STATIC_DOMAIN + '/i/' + version + '/' + 'icons.svg'; но как?...
  2. а подскажите как установить. я, как и написано, перетянул на кнопку "add bookmark". в результате открылся about:blank и всё
  3. помогите пожалуйста скопировать лого. желательно чтобы в результате оно было на прозрачном фоне: http://joxi.net/Y2L8Z8nSnNPJ52 https://news.rambler.ru/world/33965170/ тут мне даже не понятно где параметры svg-изображения хранятся >__<
  4. а что с ним не так?)
  5. оцените пожалуйста форму, которая добавляет в базу рецепты коктейлей: http://fh79272k.bget.ru/files/works/coctails/1/ в первую очередь хотелось бы услышать отзывы об архитектурке
  6. помогите пожалуйста вывести на страничку превью загружаемой картинки https://jsfiddle.net/6e97awdo/6/ $('#loadImgLabel').on('click', openLoadFileMaster); $('input').on('change', closeLoadFileMaster); function openLoadFileMaster() { console.log(111) $('#pageDescLoadImg').click(); }; function closeLoadFileMaster() { console.log(222) var fileInfo = document.getElementById('pageDescLoadImg').files[0]; console.log(fileInfo) var reader = new FileReader(); console.log(reader) reader.onload = function(e) { console.log('readerload') document.getElementById("loadImg").src = e.target.result; }; }; проблема в том, что после выбора файла в атрибут src элемента img не прописывается изображение в двоичном коде функция reader.onload вообще не запускается процессе работы скрипта
  7. как думаете, в конфиге допустимо следующим образом дублировать код? validation: { length: [ { required: true, msg: 'Поле не может быть пустым' }, { pattern: 'number', msg: 'Введите число' }, { pattern: /^[0-9]\d*(\.\d+)?$/, msg: 'Введите положительное число' }, { pattern: /^[1-9]\d*(\.\d+)?$/, msg: 'Число не может быть нулём' } ], width: [ { required: true, msg: 'Поле не может быть пустым' }, { pattern: 'number', msg: 'Введите число' }, { pattern: /^[0-9]\d*(\.\d+)?$/, msg: 'Введите положительное число' }, { pattern: /^[1-9]\d*(\.\d+)?$/, msg: 'Число не может быть нулём' } ], height: [ { required: true, msg: 'Поле не может быть пустым' }, { pattern: 'number', msg: 'Введите число' }, { pattern: /^[0-9]\d*(\.\d+)?$/, msg: 'Введите положительное число' }, { pattern: /^[1-9]\d*(\.\d+)?$/, msg: 'Число не может быть нулём' } ], volume: [ { required: true, msg: 'Поле не может быть пустым' }, { pattern: 'number', msg: 'Введите число' }, { pattern: /^[0-9]\d*(\.\d+)?$/, msg: 'Введите положительное число' }, { pattern: /^[1-9]\d*(\.\d+)?$/, msg: 'Число не может быть нулём' } ], weight: [ { required: true, msg: 'Поле не может быть пустым' }, { pattern: 'number', msg: 'Введите число' }, { pattern: /^[0-9]\d*(\.\d+)?$/, msg: 'Введите положительное число' }, { pattern: /^[1-9]\d*(\.\d+)?$/, msg: 'Число не может быть нулём' } ] } понятно дело, что DRY и всё такое. но здесь же не просто код, а конфиг
  8. да там не только в скорости дело. верстальщик может оскорбиться
  9. помогите пожалуйста советом допустим есть форма отправки груза. есть возможность в её пределах создать несколько позиций(например как тут). при этом разработчик будет для каждой новой позиции генерировать html, помеченный классом. это нужно для того чтобы пользователь мог кликнуть по кнопке "удалить позицию" проблема в том, что классы - для верстальщика, а id - для яваскриптера. ничего что яваскриптер для того чтобы натравить скрипт на элемент использует класс? теоретически можно конечно использовать id, добавляя числовой постфикс(например id="delBtn_23"). но в этом случае сложность неоправданно увеличивается как в подобном случае поступают профессионалы?
  10. всё прояснилось спасибо всем
  11. спасибо, но мне кажется, это не то. я разбираюсь с тремя ссылками не в блоке "Смотрите также", а в блоке "Сегодня в СМИ". а в нём нет ссылок с классом "tem-thumbnail-href". тем не менее ссылки в этом блоке открываются в двух окнах как я описал выше
  12. спасибо. а не расскажете как именно его искали?
  13. посоветуйте пожалуйста способ найти обработчик есть рекламный блок, после клика по которому открывается определённый адрес в новом окне. это происходит потому что у ссылки target="_blank". так работает блок, если он размещён не на странице сайта, а на отдельной странице если рекламный блок размещён не на странице сайта, то после клика адрес одновременно открывается и в текущем окне, и в новом. я думаю, что это происходит потому что владелец сайта поставил обработчик клика, который заставляет открываться ссылки в двух окнах помогите пожалуйста если не отключить этот обработчик, то хотя бы найти пример блока можно смотреть https://russian.rt.com/article/304782-pri-evakuacii-iz-zagorevshegosya-samolyota-v-yaponiiтут скриншот блока http://joxi.net/Vm6kJkpsxYWop2тут его id: #today-media-article ps: пробовал вот это , но не помогло
  14. запутал я всех своими абстракциями, но сейчас всё пояснится в книжке того же эдди османи "Разработка Backbone.js приложений (2014)" в главе "агрегаторы событий и посредники" рассказывается как раз об тех двух подходах, которые я описал в первом посте. и сама библиотека backbone там не при чём я так понял, что в первом случае(который я описал в первом посте) совсем избежать связанности не получится. пример: летит снаряд, он постоянно перебирает массив астероидов(то есть знает о существовании других объетов), и если сталкивается с астероидом, то генерирует событие, которое обрабатывается некоторым ядром(ядро только слушает подобно jquery-методу .on()). в результате например ядро заставляет астероид взорваться во втором случае объект-посредник координирует поведение всех объектов. при каждый объект(ракета или астероид) не знает о соседях(а знает только об объекте-посреднике). в процессе игры расчёт всех координат и проверка на столкновения происходит в объекте посреднике. вывод: второй способ удобен когда объектов не много(то есть логика объекта-посредника не превратится в простыню кода). первый способ удобен когда объектов очень много(в этом случае допускается увеличение связанности объектов как меньшее из зол) я в представленном примере не использовал ни один из этих методов в чистом виде. а значит придётся многое переделывать иначе сам запутаюсь(собственно уже начинаю) ps: написал всё это скорее для себя. чтобы отложилось))
  15. Помогите пожалуйста разобраться в вопросе организации кода в простейшей игре. и в результате скажите: 1. правильный первый вариант 2. правильный второй вариант 3. оба варианта правильные и используются в зависимости от ситуации 4. давно уже существует паттерн %patternname% и с успехом используется в такой ситуации Допустим есть 2D-ландшафт, над ним летит корабль игрока. Корабль может стрелять ракетами. Описываю первый вариант организации ООП-кода на js(в js контроллер и представление совмещены): инициализация игры начинается с создания spaceView, который в свою очередь инициализирует: ландшафт, корабль игрока PlayerShipView - корабль игрока. Он может стрельнуть ракетой(PlayerRocketView). То есть объект корабля связан с объектом ракеты Ракета может столкнуться с ландшафтом. То есть объект ракеты связан с объектом spaceView В результате: Имеем 3 связанных объекта, но каждый из них содержит только свою функциональность(это плюс). Но если в программе придётся что-нибудь менять(например отключить кораблю игрока возможность стрелять ракетами), то вносить правки придётся в разных местах программы(это минус). Есть несколько глобальных переменных(это минус) Описываю второй вариант организации ООП-кода на js(в js контроллер и представление совмещены): инициализация игры начинается с создания spaceView, который в свою очередь инициализирует: ландшафт, корабль игрока, ракеты(есть нажата кнопка "огонь") и вообще все остальные объекты Таким образом: Если например игрок нажимает "огонь", то инициализация ракеты происходит в spaceView, а PlayerShipView вообще ничего не знает об объекте ракеты(это плюс). Соответственно нет глобальных переменных(это плюс). Но в spaceView содержится куча логики(всей игры, в котрой кроме корабля игрока и ракеты существует очень много других объектов). Для наглядности я реализовал первый вариант здесь: https://github.com/zlodiak/space-1 В нём используются различные библиотечки типа backbone, underscore, но незнание их не мешает пониманию общей структуры программы Не бейте(ногами), я знаю что вопрос для телепатов
  16. ребята, отбой. уже сам исправил: приятно поговорить с умным человеком)
  17. у меня вопрос скорее теоретический, чем практический. однако буду благодарен и за код Помогите пожалуйста найти причину, по которой игра зависает. Это выражается в невозможности переместить корабль игрока на более чем на 100px в любом направлении Основной алгоритм игры следующий: Для каждой сущности создан отдельный view: APP.SpaceView - содержит основную логику игры APP.InformerView - табличка, отображающая количество снарядов, жизненные силы, счёт и т.д. APP.InfolineView - бегущая строка с разной информацией APP.FieldView - игровая область(в ней летают корабли протвника, корабль игрока и звёзды) APP.PlayerShipView - корабль игрока APP.PlayerRocketView - снаряды игрока APP.StarView - звёзды на фоне Большая часть логики на ходится в APP.SpaceView и организована так: При инициализации этого view запускается основной цикл игры, в котором вычисляются координаты и условия для каждого объекта игры: setInterval(function() { self._makeMoves(self) }, 100); в _makeMoves() вычисляются: движения звёзд(перебор всей коллекции), движение снарядов игрока отслеживаются нажатия клавиш, отвечающих за перемещение корабля игрока и стрельбу То есть каждую 0.1 сек происходит вычисление довольно большого количества опраций. Но не думаю, что в причина тормозов игры в этом. во-первых потому, что вычислений не так уж и много(ОЗУ 8гб). Во-вторых потому что я делал подобную игру таким же способом(на чистом js) и тоже с немалым количеством объектом и не было даже намёка на зависание Помогите пожалуйста найти причину зависания http://fh79272k.bget.ru/files/works/space/1/ https://github.com/zlodiak/space-1 ps: извиняюсь, что не форматировал текст, но не работает здесь блок кода. второй день. хромиум у меня
  18. помогите пожалуйста решить проблему я поставил фокус на элемент и затем повесил на этот элемент обработчик события, который срабатывает после нажатия клавиши. https://jsfiddle.net/9t1cwfrv/22/ для клавиши пробела этот обработчик срабатывает, но для клавиш курсора - не срабатывает. для клавиши 'q' тоже не срабатывает. а надо бы чтобы для всех перечисленных клавиш срабатывал
  19. у меня вопрос снова про эту программу. всё таки доделал я её. но у меня закрались сомнения по поводу чистоты ООП-кода. то что игра написана на backbone принципиального значения не имеет http://fh79272k.bget.ru/files/works/tic_tac_toe/1/ https://github.com/zlodiak/ttt_1 проблема такая: игра состоит из нескольких view: APP.TttView // основа игры APP.FieldView // генерация игрового поля APP.CellView // генерация клетки я почти всю логику поместил в основной view: APP.TttView = Backbone.View.extend({ render(), // отрисовка элементов игры playerStep(), // handler хода игрока compStep(), // handler хода компьютера addStep(), // запись информации об очередном ходе в спец.массив winnerCheck() // вызывается после каждого хода. здесь же вызывается alert в случае победы }); в APP.FieldView есть метод, который проверяет сложились ли крестики или нолики в линию: APP.FieldView = Backbone.View.extend({ checkCellLines() // проверка расположения крестиков/ноликов }); проблема в том, что APP.TttView содержит слишком много методов и при том длинных. а это верный признак, что программа спроектирована наудачно. подскажите пожалуйста хотя бы на словах как изменить архитектурку?
  20. в общем всё разрешилось. я просто перенёс обработчик клика из представления поля в представление клетки. вот что значит надеть носки на свежую голову)
  21. спасибо, но мне только backbone)
  22. помогите пожалуйста решить проблему вот заготовка для игры крестики-нолики на backbone: https://jsfiddle.net/9t1cwfrv/9/ https://github.com/zlodiak/ttt_1 пока она умеет после клика по любой клетке выводить в консоль координаты клетки. каждой клетке соответствует своя модель. для вывода в консоль координаты берутся из атрибутов элемента 'data-*' проблема в том, что эти же самые координаты хранятся в модели каждой клетки. таким образом получается дублирование данных(в модели и в атрибутах элемента) хотелось бы чтобы после каждого клика данные брались из модели, а не из атрибутов элемента
  23. пишете, что эксперименты над сайтом не ищете, но с подобным стилем объявления найдёте только их. а del потому что хозяин - барин
  24. помогите пожалуйста разобраться в вопросе обычно, делая компонент, разработчик предоставляет возможность добавить в html один элемент. например: <div id="megaSlider"></div> и затем подключенные скрипты заполняют этот компонент нужной разметкой и поведением. это красиво и лаконично. но не всегда удобно. например, если используется bootstrap и шаблонизатор типа underscore. в этом случае при написании компонента разработчику приходится поочерёдно открывать шаблоны и добавлять в них классы: container, row, col-md-6 и т. д. от такой деятельности голова пойдёт кругом но есть и другой путь. в теле страницы вместо <div id="megaSlider"></div> сразу сверстать bootstrap-сетку со всеми нужными классами и уже потом в неё скрипт будет добавлять нужные шаблоны вопрос: допустимо ли использование второго способа? подавляющее большинство компонентов, которые есть в интернете сделаны первым способом. возможно, для этого есть важные причины...
  25. ребята, помогите пожалуйста советом я сделал на backbone форму с валидацией: https://jsfiddle.net/9t1cwfrv/5/ .пока для простоты использовал только одно поле: github: https://github.com/zlodiak/shippingCalculator1 проблема в том, что в финальной версии калькулятора полей будет много. поэтому мне хотелось бы чтобы каждое представление наследовало от какого-нибудь общего родительского 'класса' методы: notValidMarkAdd(), validMarkAdd() иначе их придётся дублировать в каждом представлении как бы это реализовать?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy