![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Суть такова. Прикупил планшет на Win7, но семерка не очень то и заточена под тач. В частности нормальной FB2 читалки, хотя бы не заточенной но увернно работающей, под тач нету впринципе. Флеш в связке с цинком неплохая платформа для написания своей такой читалки, а формат FB2 тот же самый XML. Однако есть свои сложности. Вот кусок XML
<?xml version="1.0" encoding="Windows-1251"?> <FictionBook> <description> <title-info> <genre></genre> <author> <first-name>Piter</first-name> <middle-name></middle-name> <last-name>Uots</last-name> </author> <book-title>Ложная слепота</book-title> </title-info> </description> Вот еще созрел вопрос. В том же FB2 есть возможность хранить изображение в бинарном виде, прямо в смом теле документа. Вот пример <binary content-type="image/jpeg" id="tolstoy_port.png"> /9j/4AAQSkZJRgABAgEAYABgAAD/7Qz8UGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAYAAA AAEAAgBgAAAAAQACOEJJTQQNAAAAAAAEAAAAeDhCSU0D8wAAAAAACAAAAAAAAAAAOEJJTQQK AAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAG AAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAG AAAAAAABOEJJTQP4AAAAAABwAAD (Это очень большой бинарник обложки- сокращено) 2Q==</binary> Последний раз редактировалось Mulin; 26.08.2011 в 16:51. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Возможность она имеется всегда, но хотелось бы все же по теме
![]() |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
по теме: а зачем вам ас2?
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Ну раз уж вы тут все так хотите поофтопить, то ладно. Уговорили
![]() AS2 знаю более менее, AS3 не знаю чуть менее чем полностью. Времени изучать нет вообще. Кодю на AS2 в перерывах работы. Но дело в том, что если и изучать для этого дела новый язык, то все же лучше для данной цели подойдет Си. Но как я написал времени у меня нету, да и хотелось бы реализации на AS2. Разделом же вроде не ошибся? А теперь по теме. Вот совсем унылый пример XML Выделить второй нод имя которому <value2> непроблема Но иногда XML может иметь вид То есть начинается с <value2> и заканчиватеся <value4>. Но мне все равно нужно получать значение <value2> Воспользовавшись старым кодом Я получу значение <value3>. Что разумеется. В другом случае вообще может не быть никаких значений во всех валуях, или даже вовсе не быть самих валуев. Например так Или так Но зато всегда известно имя <value n>. Вот я и хочу узнать можно ли каким либо образом обратиться к узлу по его имени а не по индексу? И прошу не предлагайте мне AS3, это не тот раздел. Здесь обсуждают AS2. Да я старый зануда ![]() Последний раз редактировалось Mulin; 26.08.2011 в 22:31. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Обходите всех чилдов и смотрите по имени нода ( я в своё время завел такой метод в XML)
Могу ошибаться, ибо ас2 уже совсем подзабыл. Просто как преобразовать в ас2 бинарник в jpg я не представляю. В ас3 это делается влёгкую.
__________________
Отряд Котовскага |
|
|||||
|
ну, собственно, о чем и речь была
те задачи, которые перед вами стоят легко решаются с помощью AS3 не вижу смысла выдумывать неизвестно что для устаревшего языка, тем более сомневаюсь, что это вообще возможно |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Цитата:
. Но вроде таблица преобразований есть на вики. Но я уже придумал как вытянуть изображение, разумеется после его преобразования в бинарник. Нужно потом этот бинарник сохранить цинком в любом месте с расширением соответствующим изображению (расширение в атрибутах узла указано), и потом его подгрузить во флешку. Понимаю, вариант ректальнейший, но as3 еще сложнее Но вы почти уговорили |
|
|||||
|
вот еще.
по поводу обращения по имени - я когда то давно писал класс один для этого дела. если разберетесь как им пользоваться, то на здоровье: class XML2Array { static public var COMPLETE:Number = 0; static public var ERROR:Number = 1; private var onComplete:Function; private var onError:Function; private var xml:XML; private var sorting:Boolean; public function XML2Array($sorting:Boolean) { sorting = $sorting; } public function load(str:String) { var t:XML2Array = this; xml = new XML(); xml.ignoreWhite = true; xml.onLoad = function(ok:Boolean):Void { if (ok) { if (this.status) { t.onError('Неправильный формат данных (' + this.status + ')'); }else { t.onComplete(t.parseXML(this)); } }else { t.onError('Файл не найден'); } } xml.load(str); } public function convert(str:String) { xml = new XML(str); xml.ignoreWhite = true; if (xml.status) { onError('Неправильный формат данных (' + xml.status + ')'); }else { onComplete(parseXML(xml)); } } public function addEventListener(p_event:Number, p_function:Function):Void { switch (p_event) { case XML2Array.COMPLETE: this.onComplete = p_function; break; case XML2Array.ERROR: this.onError = p_function; break; default: break; } } private function parseXML(p_xml:XML):Array { var arr:Array = []; // parse attributes for (var p:String in p_xml.attributes) { arr[p] = p_xml.attributes[p]; } // parse nodeValue var nv:String = p_xml.childNodes[0].nodeValue; if (nv != undefined && nv != null){ arr.value = nv; } // parse childs var nameArr:Array = []; for (var i:Number = 0; i < p_xml.childNodes.length; i++ ) { nameArr.push(p_xml.childNodes[i].nodeName); } for (var i:Number = 0; i < p_xml.childNodes.length; i++ ) { if (p_xml.childNodes[i].nodeName != null) { if (isUnique(nameArr, p_xml.childNodes[i].nodeName)){ arr[p_xml.childNodes[i].nodeName] = parseXML(p_xml.childNodes[i]); }else { if (arr[p_xml.childNodes[i].nodeName] == undefined) { arr[p_xml.childNodes[i].nodeName] = []; } var idArr:Array = parseXML(p_xml.childNodes[i]); // сортировка по id if (!sorting) { /*if (isNaN(idArr.id)){*/ arr[p_xml.childNodes[i].nodeName].push(idArr); }else{ arr[p_xml.childNodes[i].nodeName][Number(idArr.id)] = idArr; } } } } return arr; } private function isUnique(p_arr:Array, p_str:Object):Boolean { var c:Number = 0; for (var i:Number = 0; i < p_arr.length; i++ ) { if (p_arr[i].toString() == p_str.toString()) { c++; if (c > 1) { return false; }; } } return (c == 1); } } |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
А вы вообще уверены что цинк делает приложения под Win7?
Ой что-то туплю. Показалось что имеется в виду Win Phone 7. По идее Haali reader должен пойти там.
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 26.08.2011 в 23:28. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|