Просмотр полной версии : Передача картинки из AS в JS
Есть ли какой нибудь способ передать картинку из AS в JS?
Нужно перед загрузкой отобразить пользователю уменьшенную версию.
Без отправки картинки на сервер где она бы была уменьшена и получена JS-ом.
Флэш вроде умеет показывать картинки, даже уменьшенные. При чем тут JS?
Я знаю что флэш умеет показывать картинки. Дело в том что таких уменьшенных картинок будет много, нужно из в флэшэ уменьшить и отправить в JS, в JS было бы удобнее управлять картинками.
Мне интересно, можно ли вообще такое сделать?
ну, возможно, идея была в том, что картинку нужно показать на произвольном месте страницы, без флеша. Хотя никто не мешает показать ее там флешем :-)
Вообще ответ-нет, ничего сложнее текстовых данных по мосту отправить нельзя, насколько я в курсе.
Можно передать картинку в base64.
Можно передать картинку в base64.
только встроенные картинки не понимает 30% браузеров, в частности ИЕ 6-7, ИЕ8(понимает с существенными ограничениями), старый ФФ итд.
Напомните, пожалуйста, что такое встроенные картинки. И как вы получили цифру 30%?
ничего сложнее текстовых данных по мосту отправить нельзя, насколько я в курсе.
Этот мост называется ExternalInterface и он умеет чуть больше гитек, чем текстовые данные. Но в его примитивности вы правы, потому что cо strong typed в JavaScript совсем жвах. Там (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html#call()) и там (http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb2.html) все написано.
... arguments — Аргументы, передаваемые функции в контейнере. <...> Они могут принадлежать любому типу данных ActionScript. При обращении к функции JavaScript типы данных ActionScript автоматически преобразуются в типы данных JavaScript<...>.
Можно передать картинку в base64.
Я сейчас этим и занимаюсь, но столкнулся с проблемой, когда создаю экземпляр класса Base64Encoder код перестает работать как только достигает его инициализации, хотя компиляцию проходит успешно, не знаете в чем может быть причина такого поведения?
Компилятор mxmlc.
Напомните, пожалуйста, что такое встроенные картинки. И как вы получили цифру 30%?
Встроенными картинками называется тег img у которого src-не урл, а что-то вроде
data:image/png;base64,iVBORw0KGgoAAAAN..........
т.е. его base64(бинарик), прямо в css, например.
Есть замечательный ресурс, урл где-то в закладках валялся, который для каждой фичи показывает уровень ее поддержки в каждом браузере и в % соотношении, основываясь на текущей статистике по браузерам. Пару месяцев назад было 30%.
Этот мост называется ExternalInterface и он умеет чуть больше гитек, чем текстовые данные. Но в его примитивности вы правы, потому что cо strong typed в JavaScript совсем жвах. Там (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html#call()) и там (http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb2.html) все написано.
Да, именно так он и называется. А что касается всего остального-магия json учит, что все есть строка, а что не строка-то можно сделать строкой, благо в js вообще почти все-строка, типизации нет, итд :-)) условно говоря.
... не знаете в чем может быть причина такого поведения?
Поставьте дебаг-версию плеера, сразу узнаете.
т.е. его base64(бинарик)
Позвольте немного не согласиться. Base64 — это 64 символа текста в чистом ASCII виде. Но по сути, все цифровое можно свести к бинарикам, аха.
Позвольте немного не согласиться. Base64 — это 64 символа текста в чистом ASCII виде. Но по сути, все цифровое можно свести к бинарикам, аха.
base64(бинарик) тут следует читать как функцию, которая на входе получает бинарные данные, отдает текст(как вы верно заметили, 64 символа, которые в любой кодовой таблице имеют одинаковые коды, и не являются спец-символами, нуждающимися в экранировании итд).
Поставьте дебаг-версию плеера, сразу узнаете.
VerifyError: Error #1014: Не удалось найти класс mx.utils::Base64Encoder.
Кто нибудь сталкивался с этим?
Пакет mx.utils.* импортирован.
VerifyError: Error #1014: Не удалось найти класс mx.utils::Base64Encoder.
Кто нибудь сталкивался с этим?
Пакет mx.utils.* импортирован.
воспользуйтесь вот этим
http://www.flasher.ru/forum/blog.php?b=203
Он еще и крайне быстрый, ко всем плюшкам.
Или подключите framework.swc к проекту.
воспользуйтесь вот этим
http://www.flasher.ru/forum/blog.php?b=203
Он еще и крайне быстрый, ко всем плюшкам.
Воспользовался этой библиотекой и все получилось. Спасибо.
Или подключите framework.swc к проекту.
В том то и дело, что он подключен. На этом форуме, в одной старой теме один парень написал что во Flex можно импортировать mx пакеты, но нельзя ими воспользоваться в AS 3.0.
Кто нибудь знает почему это так?
В любом случае, задачу я решил, всем спасибо.
Это касается только визуальных компонентов.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.