0
<< предыдущая заметкаследующая заметка >>
14 августа 2010
АМСТЕРДАМ: часть очередная

Оставшись в Амстердаме, приехал в гости к Андрею Шитову, он переехал в Амстердам недавно и обустраивает квартиру: из мебели у него пока только пальма, купленная в ИКЕЕ. Андрей гуру perl с мировым именем, а я простой лох, быдлокодер php. Но все равно за те пару дней дней, что я у него гостил, он мне много рассказал интересного про технологии и javascript, поэтому ждите обновлений в движке (собственно, уже начал — аж второй блог пока закрыл на серьезный ремонт), заодно доведу до ума авторизацию. Главное дело сделано: всех разлогинил и убрал накопившиеся ошибки чужих логинов. Все остальные трудности — временные. Ну а пока еще немного об Амстердаме.

Загадочная скульптура в центре города — памятник мальчику. Под ним табличка:

Я конечно ни голландского, ни английского не знаю, но по-моему «hunter» — это охотник, а «cigarette» — папиросы. Поэтому я уверен, что это памятник уличному мальчику, стреляющему у прохожих покурить. Встретите такого — не давайте!

Кстати о языке и переводах — мне кажется, я уже начал понимать голландский и перевожу некоторые вывески как родные:


Просто красивая фотка: строящийся дом с пронумерованными этажами. Ну, чтоб не сбиться строителям...

Уникальная особенность Амстердама - открытые туалеты на улицах:

Такие "кабинки" здесь повсюду: зашел, пописал и вышел. Удивляет здесь многое. Во-первых, только для мужчин. Во-вторых, сток от такой кабинки идет прямо в ближайший канал (часто - ручейком по земле). Ну и, наконец, как-то в моем представлении журчать у всех на виду посреди улицы... в общем, мое эстетическое чувство запретило мне пользоваться этими туалетами. А местные - вовсю.


PS: Приехал к Йожу в Мюльхайм (это северо-запад Германии, от Амстердама почти рядом). Обратный билет в Москву (свой я сдал) оказалось дешевле брать из Дюссельдорфа, да и вообще

давно не виделись. Если Андрей мне рассказал про javascript, то у Йожа я нынче порасспрашиваю про flash.

UPD: Пообщался с Йожом - к сожалению, оказалось, что Йож пишет на АС3 Flash-10, а мне нужен максимально старый флэш. Никто из вас не работает на flash версии 5 (да, такой старой)? Прошу помочь: скомпилировать программку в несколько строк — не пугайтесь, абсолютно без графики и исходник практически есть:

подробности
Задача: сделать крохотный флэшик, который бы умел по командам из JS (установленная переменная action='read' или action='save') сохранить на диске в хранилище макромедии переменную (name=data) или прочитать ее, и все это - старыми методами getURL и SetVariable. Проблема в том, что этот алгоритм надо скомпилировать под самую старую версию Flash-5 (если, конечно, там есть работа с файловым хранилищем) — для совместимости с максимально старыми версиями браузеров. Поскольку getURL имеет ограничения на длину 500 символов, переменная передается порциями по запросу JS, который устанавливает номер в ту же переменную data. В моем представлении (поправьте, если что не так) программа для флэша должна выглядеть в общих чертах примерно так:

var data = null // данные на запись, либо номер запрашиваемой части в 500 символов
var name = null // имя переменной
var action = null // тип запроса save или read, JS устанавливает в последнюю очередь

import flash.net.SharedObject; // включить работу с файловым хранилищем
private var mySo:SharedObject;
mySo = SharedObject.getLocal('flashcookie', '/');

getURL('javascript:kukigo();') // один раз при старте передать в JS сигнал, что флэш готов к работе

_root.onEnterFrame = function() { // какой-то вечный цикл, который бы по минимуму грузил процессор, ну полсекунды что ли?
if(action!==null) { // если JS прислал нам какую-то команду

if(action=='save') { // JS прислал команду записи
mySo.data[name] = data // записать в хранилище
}

if(action=='read') { // JS просит прочесть переменную
var txt:String = mySo.data[name] // взять из хранилища
txt = txt.(ВЫРЕЗАТЬ только кусок длиной 500 символов, начиная с символа data*500 — не знаю, как это записать)
txt = txt.split('"').join('\\"') // заэкранировать кавычки, где есть
getURL('javascript:kukiout("'+txt+'");') // и передать в JS методом getURL
}
action = null
}

Управляющую обвязку на JS для теста (там совсем пара строк, но надо подумать, как организовать ожидание доставки всех частей переменной) напишу чуть позже, если кто-то откликнется помочь с компиляцией swf. И да, я в курсе, что удобнее использовать метод ExternalInterface - такой файлик swf Йож уже мне сделал год назад. Но сейчас хочется достичь совместимости с самыми старыми флэшами (например, в мобильниках).

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

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок

Комментарии к этой заметке скрываются - они будут видны только вам и мне.

Оставить комментарий