Тема: АнтиФлеш
Показать сообщение отдельно
Старый 02.12.2007, 22:03
LinuxVideo вне форума Посмотреть профиль Найти все сообщения от LinuxVideo
  № 12  
Ответить с цитированием
LinuxVideo
Banned

Регистрация: Oct 2007
Сообщений: 269
Я прошел обратный путь. Сначала я лепил редактор на JS+VML, в результате он работал только в ИЕ. Правда, я его так и не сделал, ибо описанные свойства работали не совсем как надо, что-то глючило, что-то тормозило. А потом я вообще сменил платформу и запускать свой шедевр я не мог. Что делать? Обратимся к прямому наследнику VML - SVG, которая и статус стандарта имеет (а не "черновика"), и с флешем сравнивается. Опера и Фокс понимают СВГ нативно. Оно открытое. И даже в чем-то удобнее флеша, на сервере можно творить различные непотребства и скармливать клиенту. Внутри чистый XML. Только тут есть загвоздка: Фокс рендерит quadratic bezier как cubic bezier, в Опере я так и не добился тонких однопиксельных линий БЕЗ антиалиасинга, половина примеров скриптов работает в Опере, другая в ИЕ, причем некоторые демки ведут себя по разному в обоих браузерах, а в результате да здравствует пресловутая проверка браузера и выходит "слуга 3 господ". Помните, как делали странички под НН4? Вот и здесь так. Куча хаков и костылей. Но ведь есть Канвас! Да, только поддерживается он в Сафари, Опере и Фоксе. Всеми любимый ИЕ в пролете. Да, есть транслятор Canvas -> VML, только сложные вещи не порисуешь, векторная отрисовка быстро начнет тормозить, ибо все лежит в векторе, в то время, как Канвас растровый. Да и нельзя нарисовать на Канвасе квадратик, а потом повесить на него onclick, тут самому надо придумывать системы перехвата кликов. Впрочем, во флеше тоже надо, в одном проекте перехватываются все клики одной функцией, а дальше идет разбор "куда кликнули". Вот нужно проверить "кликнули ли в полигон", который состоит из кучи кривых - как сделать с канвасом? Во флеше мне нехватает кубик-безье, а интерполяция квадратик-ом получается несколько кривой. Но флеш в результате все равно лучше, он по крайней мере глючит на всех платформах одинаково.

Нет в жизни счастья. Зато теперь я знаю OpenGL и стараюсь генерить графику на сервере.