Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.01.2013, 15:06
Аватар для kuzya_vl
Интересующийся
Отправить личное сообщение для kuzya_vl Посмотреть профиль Найти все сообщения от kuzya_vl
 
Регистрация: 27.06.2011
Сообщений: 14

Отображение SWF с помощью File API
Как отобразить flash-ролик динамически с помощью FileAPI (FileReader).
Как отобразить JPEG нашел,
var reader = new FileReader();
reader.onload = (function(theFile) {
	return function(e) {
		var div = document.getElementById('image');
		div.innerHTML = ['<img class="thumb" src="', e.target.result,'" title="', theFile.name, '"/>'].join('');
	}
})(f);
reader.readAsDataURL(f);

а как быть с swf не соображу!
Помогите.
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2013, 08:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Дык также, только вместо img - object (или embed):
<object type="application/x-shockwave-flash" data="flash.swf" width="750" height="400">
	<param name="movie" value="flash.swf" />
</object>
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2013, 11:34
Аватар для kuzya_vl
Интересующийся
Отправить личное сообщение для kuzya_vl Посмотреть профиль Найти все сообщения от kuzya_vl
 
Регистрация: 27.06.2011
Сообщений: 14

Извените, не прокатит.
data='flash.swf' не получится!
Мне надо как-то так:
div.innerHTML = '<object type="application/x-shockwave-flash" data="' + e.target.result + '" width="750" height="400"><param name="movie" value="' + e.target.result + '" />';
Ответить с цитированием
  #4 (permalink)  
Старый 08.01.2013, 12:59
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от danik.js
div.innerHTML = '<object type="application/x-shockwave-flash" data="' + e.target.result + '" width="750" height="400"><param name="movie" value="' + e.target.result + '" />';
ну и в чём вопрос? -именно так и есть.
Сообщение от danik.js
Дык также, только вместо img - object (или embed):
<object type="application/x-shockwave-flash" data="flash.swf" width="750" height="400">
<param name="movie" value="flash.swf" />
</object>
после загрузки нельзя поменять параметры флешу так.
Ответить с цитированием
  #5 (permalink)  
Старый 08.01.2013, 13:57
Аватар для kuzya_vl
Интересующийся
Отправить личное сообщение для kuzya_vl Посмотреть профиль Найти все сообщения от kuzya_vl
 
Регистрация: 27.06.2011
Сообщений: 14

Полный код страницы:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>File API Test</title>
    <style>
        .thumb {
            height: 75px;
            border: 1px solid #000;
            margin: 10px 5px 0 0;
        }
    </style>
    <script>
        function changeImage(el)
        {
            var f = el.files[0];
            if (f.type.match('image.*') != null)
                showPicture(f);
            else if (f.type.match('flash') != null)
                showFlash(f);
            else
                return;
        }
        function showFlash(f)
        {
            var reader = new FileReader();
            reader.onload = (function(theFile) {
                return function(e) {
                    var div = document.getElementById('image');
                    div.innerHTML = '<object class="thumb" type="application/x-shockwave-flash" data="' +
                            (e.target.result) +'"><param name="movie" value="'+ (e.target.result) +'" />';
                }
            })(f);
            reader.readAsDataURL(f);
        }
        function showPicture(f)
        {
            var reader = new FileReader();
            reader.onload = (function(theFile) {
                return function(e) {
                    var div = document.getElementById('image');
                    div.innerHTML = ['<img class="thumb" src="', e.target.result,'" title="', theFile.name, '"/>'].join('');
                }
            })(f);
            reader.readAsDataURL(f);
        }
    </script>
</head>

<body>
<input type="file" id="load" name="load"/> <br />
<div id="image"></div>

<script>
    if (window.File && window.FileReader && window.FileList && window.Blob) {
        document.getElementById('load').onchange = function() { changeImage(document.getElementById('load')); }
    }
    else {
        alert('The File APIs are not fully supported in this browser.');
    }
</script>
</body>
</html>

Я так полагаю, что в строке:
div.innerHTML = '<object class="thumb" type="application/x-shockwave-flash" data="' + (e.target.result) +'"><param name="movie" value="'+ (e.target.result) +'" />';
как-то правильно надо задать параметр data и value.
А вот как задать?
Ответить с цитированием
  #6 (permalink)  
Старый 08.01.2013, 14:38
Аватар для kuzya_vl
Интересующийся
Отправить личное сообщение для kuzya_vl Посмотреть профиль Найти все сообщения от kuzya_vl
 
Регистрация: 27.06.2011
Сообщений: 14

Нашел очень простое решение !!!
div.innerHTML = '<object class="thumb" type="application/x-shockwave-flash" [B]src="'+theFile.name+'[/B]"><param name="movie" value="'+[B]theFile.name[/B]+'" />';
Ответить с цитированием
  #7 (permalink)  
Старый 08.01.2013, 22:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Нет у object атрибута src.
Есть data. Но этот атрибут не понимают ишаки 7-8. Поэтому для них нужен param[name="movie"], хотя его также понимают все браузеры кроме Firefox (только что тестил в IE7-9, Opera, Safari, Firefox, Chrome)
И закрой тег object, во избежание возможных проблем.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать файл через API FILE в виде dataurL и принять на сервере. Как? platedz AJAX и COMET 22 04.06.2013 13:29
Отображение изображения загруженного с помощью ajax overdrive Общие вопросы Javascript 2 06.11.2012 02:46
html5 File API Invis1ble Общие вопросы Javascript 14 20.02.2012 16:52
MVC vs API. Ваше мнение. B~Vladi Общие вопросы Javascript 58 19.10.2010 16:29
Отображение длинного URL с помощью JS velo Общие вопросы Javascript 2 28.10.2009 10:07