Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.07.2009, 05:31
zloiolz вне форума Посмотреть профиль Отправить личное сообщение для zloiolz Найти все сообщения от zloiolz
  № 1  
Ответить с цитированием
zloiolz

Регистрация: Jul 2009
Сообщений: 14
Question Сохранение изображения из Flash

В общем суть вопроса в следующем.
Какой код прописать в html или Flash компонентах, что бы к примеру из Flash галереи можно было сохранять изображения?(правой кнопкой) или же добавить кнопку скачать?

Старый 25.07.2009, 21:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
добавьте кнопку скачать. из флеш галереи нельзя сохранять изображения.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 28.07.2009, 00:35
zloiolz вне форума Посмотреть профиль Отправить личное сообщение для zloiolz Найти все сообщения от zloiolz
  № 3  
Ответить с цитированием
zloiolz

Регистрация: Jul 2009
Сообщений: 14
А монжо поподробнее? Как связать кнопку с изображением? Какие команды ?

Старый 07.10.2009, 23:45
Vit_001 вне форума Посмотреть профиль Отправить личное сообщение для Vit_001 Найти все сообщения от Vit_001
  № 4  
Ответить с цитированием
Vit_001

Регистрация: Jul 2009
Сообщений: 3
Такой же вопрос мучает.
Думаю что проблему через PHP решать буду - других мыслей нет )))

Старый 08.10.2009, 01:36
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Можно и правой кнопкой. Для галерей, где картинки грузятся из внешних файлов. Правда, несколько сложновато и в принципе, это эмуляция. Но все-таки...

Вот рабочий пример:http://www.us-pro.ru/mooncar/context...ntexMenu2.html
Кликаем правой кнопкой мыши на картинке во флешке, выбираем соответствующий пункт меню, и сохраняем картинку к себе на комп.

В двух словах -
1) Флеш - назначается отдельное кастомизированное контекстное меню флеш-плеера на контейнер-мувик с загруженной картинкой. А вне области картинки работает общее меню.
2) Сервер - в качестве ссылки на картинку вызывается php-скрипт, который принимает URL картинки, генерит на ее основе копию, отдает JPG, форсируя при этом вызов диалогового меню через заголовки.

Флеш:
Код AS1/AS2:
var picURL:String = 'pic1.jpg';
//грузим картинку
var cont:MovieClip = this.createEmptyMovieClip('cont_mc', this.getNextHighestDepth()); //контейнер для картинки
this.onLoadInit = function(target:MovieClip) { 
	target.picURL = picURL; //запоминаем URL картинки внутри ее контейнера (пригодится для вызова через getURL в функции вызова сохранения)
	target.menu = menu_cm; //назначаем контейнеру с картинкой  индивид. контекстн. меню (см. в конце)
}
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this); //слушатель - сам _level0
loader.loadClip(picURL, cont);
 
//вызов скрипта сохранения картинки
function doSave(mc:Object):Void {
        //вызываем и передаем скрипту url файла. Тут  _self в target-параметре, чтобы браузер не дергался, а также в записи не используем параметр метода -  GET.
	getURL('forcesave.php?picurl=' + mc.picURL, '_self'); 
}
 
//"общее" контекстное меню флеш-плеера, эти действия нужны только для скрытия системных пунктов
var cmMain:ContextMenu = new ContextMenu();
cmMain.hideBuiltInItems();
this.menu = cmMain;
 
//определяем язык операционной системы на компе пользователя
var lang:String = System.capabilities.language ;
var textForItemMenu:String; //текст для пункта меню
switch (lang) {
	case 'ru':
		textForItemMenu	= 'Сохранить изображение как...';
	break ;
	case 'en':
		textForItemMenu	= 'Save image as...';
	break ;
}
 
//формируем меню для мувика
var menu_cm:ContextMenu = new ContextMenu();
menu_cm.hideBuiltInItems(); 
menu_cm.customItems.push(new ContextMenuItem(textForItemMenu, doSave));
Вызываемый скрип для отдачи картинки, PHP:
PHP код:
<?php
$picurl 
$_GET['picurl'];
$im=imagecreatefromjpeg($picurl);
header("Content-type: application/applefile"); //так ли сильно это нужно  - не уверен, с учетом присутствия нижней строчки
header("Content-Disposition: attachment; filename=$picurl"); //форсируем отображение браузером диалога save.
imagejpeg($im""100);
imagedestroy($im);
?>
Думаю что код можно приспособить в любую галерею, где есть загрузка внешних файлов картинок. Просто в вашей галерее, в методе onLoadInit нужно добавить будет код для присвоения индивидуального меню, как в примере. Если фоток много - делаете loadClip и создание контейнеров, например, в цикле.
Кстати, возможно было бы и проще реализовать скачивание с учетом форсирования диалогового окна? Не силен в PHP.
Естественно, можно расширить поддержку разных типов файлов изображений в скрипте PHP.

Можно в скрипте легко ввести авторизацию на скачивание, задав проверку сессионной переменной-идентификатора пользователя, например для скачивания полноразмерных фоток:
PHP код:
session_start();
if (
$_SESSION['userid']) {
  
$picurl $_GET['picurl'];
  
$im=imagecreatefromjpeg($picurl);
  
header("Content-type: application/applefile");
  
header("Content-Disposition: attachment; filename=$picurl");
  
imagejpeg($im""100);
  
imagedestroy($im);
} else {
  echo 
'Скачивание доступно только для авторизванных пользователей';

Вложения
Тип файла: rar contextMenu2.rar (28.5 Кб, 97 просмотров)


Последний раз редактировалось mooncar; 08.10.2009 в 20:31.
Старый 09.10.2009, 15:07
Vit_001 вне форума Посмотреть профиль Отправить личное сообщение для Vit_001 Найти все сообщения от Vit_001
  № 6  
Ответить с цитированием
Vit_001

Регистрация: Jul 2009
Сообщений: 3
mooncar, очень спасибо.
ps.
Век живи - век учись.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:20.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.