Модераторы: SoWa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение Movie Clip в отдельный swf файл, Сохранение Movie Clip в отдельный swf 
V
    Опции темы
C4Grey
  Дата 23.5.2007, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Привет, Homo Programaticus! Проблема, суть которой отображает название темы когда-то заинтересовала меня еще в начале изучения Action Script. И вот скачал Flash 9....Не подскажите - есть возможность сделать такую вещь под AS3? И еще одна просьба, немного к теме не относящаяся...Надо php скрипт для интеграуции сгенереного swf файла на серв. Обычно обхужусь следующим:
Flash:

var url_req:URLRequest = new URLRequest("http://127.0.0.1/img_create.php");
    url_req.data = png_image_data;
    url_req.method = URLRequestMethod.POST;
    var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
    url_req.requestHeaders.push(header);
    navigateToURL(url_req, "png");
---------------------------------------------------------------------------------------------------------------------------------------
img_create.php:

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

$image_data = $GLOBALS["HTTP_RAW_POST_DATA"] ;
$filename_to_save = "my_avatar.png";

if(isset($image_data)){
    $png_file = fopen($filename_to_save, "wb") or die("File not opened!");
    if($png_file){
          set_file_buffer($png_file, 20);
          fwrite($png_file, $image_data);
          fclose($png_file);
    }
}
    
    echo("<br><img src=".$filename_to_save."?".time().">");
?>

---------------------------------------------------------------------------------------------------------------------------------------
Это припомощи одного товарища было написано для сохранения png - картинки на сервере. В php не очень разбираюсь, поэтому и задаю такой вопрос... :(
PM MAIL   Вверх
AlDev
Дата 24.5.2007, 06:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



C4Grey, от мувика можно получить ByteArray - тут была подобная тема.
А по коду ты получаешь изображение...
Маленько не понял сути вопроса ) Опиши плиз задачу целиком
PM MAIL WWW ICQ YIM MSN   Вверх
C4Grey
  Дата 24.5.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Спасибо за заинтересованность AlDev!
В приведенном коде я действительно получал изображение png формата...Кроме того я тоже использовал ByteArray -

var png_image_data:ByteArray = PNGEncoder.encode(data_bmp);

где data_bmp - BitmapData, a PNGEncoder - .as скрипт, скачаный с
http://www.kaourantin.net/2005/10/png-encoder-in-as3.html

Но данный код сохранит одиночную картинку...Меня же интерисует сохранение всего MoviClip. Если с с изпользованием  ByteArray такое возможно - иду читать мануалы...Если же нет - прошу сообщить, если можно...

Если надо - навожу пример: Есть swfка, в которой одна кнопка и один MovieClip(пусть будет mc) (кнопка не обязательна, можно поставить обработчик на MovieClip). Надо создать функцию, которая будет создавать swf файл с mc. Сохранять файл будет php скрипт (смотрите изначальный вопрос). 
PM MAIL   Вверх
AlDev
Дата 24.5.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



PM MAIL WWW ICQ YIM MSN   Вверх
C4Grey
  Дата 24.5.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Спасибо!Почти разобрался...Вот только на форуме человек писал насчет возрвращения null ldr.contebtом.Вот и я с той же проблемой столкнулся smile. Да и флеш интересную ошибочку выдает:

TypeError: Error #2007: Parameter bytes must be non-null.
    at flash.display::Loader/flash.display:Loader::_loadBytes()
    at flash.display::Loader/loadBytes()
    at 2png_enc_CS3_fla::MainTimeline/sendImage()

Там какие-то исходники кто-то передавал - ссылка на них вроде есть, но она не работает...
p.s.
Код я нагло скопировал, только название swfки изменил

Это сообщение отредактировал(а) C4Grey - 24.5.2007, 19:40
PM MAIL   Вверх
C4Grey
  Дата 24.5.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Я тут немного модифицировал код, разобрался, поексперементировал...В результате получил прогу которая загружает мувик по ссылке причем через BINARY, после чего при помощи stage.addChild отображает клип...Вот только моим скромным запросам это не сильно отвечает...
Мне надо было сохранить мувик в ОТДЕЛЬНЫЙ SWF ФАЙЛ...А получил я загрузку мувиков :(
Кстати по указаной ссылке я уже ходил - я этот форум полностю по теме АS3 перерыл...короче помогите кто может!

Это сообщение отредактировал(а) C4Grey - 24.5.2007, 20:54
PM MAIL   Вверх
AlDev
Дата 25.5.2007, 03:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



C4Grey, а этот самый ByteArray если как swf сохранить? Это на грани фантастики конечно... 
Но если сформировать ByteArray, отдать серверу, а на сервере сделать swf используя его... 
можно по идее билдить swf-ку на сервере (на adobe labs лежит серверный компонент)
PM MAIL WWW ICQ YIM MSN   Вверх
C4Grey
Дата 25.5.2007, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Спасибо AlDev! Все - иду на аддоб...Если с сервером не разберусь буду писать еще...
PM MAIL   Вверх
C4Grey
  Дата 25.5.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Я долго лазил по адоб лабс...И, к сожелению ничего так и не нашел...Если есть ссылка, поделитесь пожалуйста...И, если можно 2 вопроса по ByteArray:

1.как в него мувик загнать по - нормальному? а то у меня при проверке длину выдает всегда одну и ту же....я сильно подозреваю что записывается он коряво :(
2.Как с ByteArray мувик на сцену вывести?

Это сообщение отредактировал(а) C4Grey - 25.5.2007, 17:58
PM MAIL   Вверх
AlDev
Дата 28.5.2007, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 10
Всего: 50



C4Greyhttp://labs.adobe.com/wiki/index.php/Flex_..._Apache_and_IIS

Кроме описаного на flasher.ru другого способа, к сожалению, не знаю
PM MAIL WWW ICQ YIM MSN   Вверх
C4Grey
Дата 28.5.2007, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



AlDev, спасибо...иду изучать сервер.
PM MAIL   Вверх
C4Grey
  Дата 30.5.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Тут по ходу изучения возникла большая проблема...Я пытался загнать мувик в ByteArray двумя способами:

1.Взято с flesher: 
Код

var url:URLRequest = new URLRequest("movie.swf");
var ld:Loader = new Loader();
var ul:URLLoader = new URLLoader();
ul.dataFormat = URLLoaderDataFormat.BINARY;
ul.load(url);
ld.loadBytes(ul.data);

2. С предыдущей темы:
Код

var BA:ByteArray = new ByteArray();
BA.writeObject(mc);


Как я не пытался - в первом URLLoader (trace (ul.bytesLoaded);) дает 0, а во втором ByteArray - 1...
Вроде все реализовано по мануалах от макромедиа...и все равно не пашет...щас сижу, пытаюсь что-то сделать методом тыка...Если знаете в чем ошибка - дайте хоть код правильный пожалуйста...

Это сообщение отредактировал(а) C4Grey - 31.5.2007, 01:42
PM MAIL   Вверх
C4Grey
  Дата 31.5.2007, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 23.5.2007

Репутация: 1
Всего: 1



Все! Вопрос решен!Как оказалось ничего сложного не было...просто над было использовать writeBytes вместо writeObject smile Привожу код программы, если тема хоть - кого - то кроме AlDeva интересует...

1.AS3:

Код

import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.utils.ByteArray;

var ByteLoader:URLLoader;
var ByteConverter:Loader;
var ByteConverter2:Loader;
var FileRequest:URLRequest;
var ba:ByteArray = new ByteArray;

function convert(event:Event)
{
//function BytesExample (event:Event) { 
ByteLoader = new URLLoader();
ByteLoader.dataFormat = URLLoaderDataFormat.BINARY;
ByteLoader.addEventListener (Event.COMPLETE, onBytesLoaded);
FileRequest = new URLRequest ("mov.swf");
ByteLoader.load (FileRequest);
//}

function onBytesLoaded (evt:Event) 
{
ByteConverter = new Loader();
ByteConverter.contentLoaderInfo.addEventListener (Event.COMPLETE, onConvertFinished);
ByteConverter.loadBytes (ByteLoader.data);
ba.writeBytes(ByteLoader.data);
//urla

    var url_req:URLRequest = new URLRequest("http://127.0.0.1/img_create.php");
    url_req.data = ba;
    url_req.method = URLRequestMethod.POST;
    var header:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
    url_req.requestHeaders.push(header);
    navigateToURL(url_req, "png");

}

function onConvertFinished (evt:Event) 
{
var mc = ByteConverter.content;
trace (ba);
mc.x = 0;
mc.y = 0;
mc.alpha = .75;
addChild (mc);
}
}
bt.addEventListener(MouseEvent.CLICK, convert);


2.PHP:

Код

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

$image_data = $GLOBALS["HTTP_RAW_POST_DATA"] ;
$filename_to_save = "avatar.swf";

if(isset($image_data)){
    $png_file = fopen($filename_to_save, "wb") or die("File not opened!");
    if($png_file){
          set_file_buffer($png_file, 20);
          fwrite($png_file, $image_data);
          fclose($png_file);
    }
}
    
    echo("<br><img src=".$filename_to_save."?".time().">");
?>


AlDev - большое спасибо!
PM MAIL   Вверх
PROCESSOR
Дата 5.7.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



Эти скрипты сохраняются любой MovieClip  в SWF ?

А если я хочу его скомпрессировать или хотябы текст в полях - это нереально наверно ?
PM MAIL   Вверх
AntonioBanderaz
Дата 5.7.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Velichko Anton
**


Профиль
Группа: Участник
Сообщений: 851
Регистрация: 28.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 18



Цитата(PROCESSOR @  5.7.2007,  12:22 Найти цитируемый пост)
А если я хочу его скомпрессировать или хотябы текст в полях - это нереально наверно 

 В каких полях?

По поводу сжатия ASCrypt


--------------------
ГЫ... 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0850 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.