Флеш "Графити" как вКонтакте.ру

Тема в разделе "Флеш", создана пользователем lifediz, 21 июн 2008.

Статус темы:
Закрыта.
  1. lifediz

    lifediz Yii Framework developer

    Регистр.:
    7 июн 2008
    Сообщения:
    385
    Симпатии:
    507
    Кому надо забирайте...утащено мной(надеюсь написал в тот форум куда надо :nezn:)

    Перейти по ссылке
     

    Вложения:

    Life-BEC, bog.imp, Cepera-exp и 9 другим нравится это.
  2. GriZone

    GriZone Управляющий

    Administrator
    Регистр.:
    17 мар 2006
    Сообщения:
    431
    Симпатии:
    2.042
    кто нить обяснит как сохранять нарисованые изображения ?
     
  3. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Вытащить флэху порой плёвое дело. А вот получить соурс, а именно он необходим, бывает сложнее. Массивные флэшки почти не поддаются декодингу.
    Всё что я понял:

    сейф картинки (Drawing.as:(
    PHP:
    function saveClicked(param1)
            {
                var 
    jpgSource:BitmapData;
                var 
    transMatr:Matrix;
                var 
    encoder:JPEGAsyncEncoder;
                var 
    ImageData:*;
                var 
    header:URLRequestHeader;
                var 
    postAddr:*;
                var 
    jpgURLRequest:URLRequest;
                var 
    eventObject:* = param1;
                if (
    doNotSave)
                {
                    
    resDlg.ShowDialog(resultClick);
                    return;
                }
    // end if
                
    jpgSource = new BitmapData(700399false);
                
    transMatr = new Matrix();
                
    transMatr.translate(-8, -10.4);
                
    jpgSource.draw(drwSurfacetransMatrnullnull, new Rectangle(00700399));
                
    dlg.visible false;
                
    dlg.dialogType "save";
                if (
    lng == "en")
                {
                    
    dlg.dialogText "Encoding to JPEG format";
                }
                else
                {
                    
    dlg.dialogText "Сжатие JPEG изображения ";
                }
    // end else if
                
    dlg.progressBar.visible true;
                
    dlg.noButton.visible false;
                
    dlg.yesButton.134;
                
    dlg.yesButton.label "OK";
                
    dlg.yesButton.visible false;
                
    dlg.ShowDialog(null);
                if (
    isJPG)
                {
                    
    encoder = new JPEGAsyncEncoder(75);
                    
    encoder.PixelsPerIteration 512;
                    
    encoder.addEventListener(JPEGAsyncCompleteEvent.JPEGASYNC_COMPLETEencodeDone);
                    
    encoder.encode(jpgSource);
                }
                else
                {
                    
    ImageData PNGEnc.encode(jpgSource1);
                    
    dlg.Close();
                    if (
    lng == "en")
                    {
                        
    dlg.dialogText "Saving image";
                    }
                    else
                    {
                        
    dlg.dialogText "Сохранение изображения ";
                    }
    // end else if
                    
    header = new URLRequestHeader("Content-type""image/jpeg");
                    
    postAddr LoaderInfo(root.loaderInfo).parameters.action;
                    
    jpgURLRequest = new URLRequest(postAddr);
                    
    jpgURLRequest.method URLRequestMethod.POST;
                    
    jpgURLRequest.requestHeaders.push(header);
                    
    jpgURLRequest.data ImageData;
                    
    dlg.ShowDialog(null);
                    try
                    {
                        
    responseCode = -1;
                        
    loader.load(jpgURLRequest);
                    }
    // end try
                    
    catch (error:)
                    {
                    }
    // end else if
                
    }// end catch
                
    return;
            }
    // end function
    Видно что файл куда передаётся задаётся чарез flashvars
    Вбиваем:
    PHP:
    action=http:/**/jpg_encoder_download.php
    Примерное содержание jpg_encoder_download.php
    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 "img.jpg";
    if(isset(
    $image_data)){
     
    $png_file fopen($filename_to_save"wb") or die("File not opened!");
     if(
    $png_file){
        
    set_file_buffer($png_file20);
        
    fwrite($png_file$image_data);
        
    fclose($png_file);
     }
    }
    ?>
     
    Картинка сохраняется, но окно о сейфе не хочет проходить. В чём дело я заметить не могу. Кто видит?
     
    sew960i, tarantas, adobe_f и ещё 1-му нравится это.
  4. adobe_f

    adobe_f Создатель

    Регистр.:
    1 июл 2008
    Сообщения:
    18
    Симпатии:
    5
    Ну наконецто хоть кто-то хоть где-то показал как в жпег сохранять.:thenks:

    а насчет окошка сейва, может я ошибаюсь, но вот создания его там нет. и по скрипту оно вообще должно на рабочей области лежать и лишь видимость меняться. :nezn:
     
  5. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    По идеи хрень
    PHP:
     dlg.ShowDialog(null);
    Должна сррывать окно. При чём нет никаких условий и она идёт сразу после передачи массива с картинкой. Из чего можно предположить что флэш не завершает передачу, возможно скрипт должен что-то вернуть. :nezn:
     
  6. yMHuK

    yMHuK Создатель

    Регистр.:
    26 июл 2008
    Сообщения:
    37
    Симпатии:
    2
    Довольно хорошая задумка все-таки, ВКонтакте поставил.
    А вот не подскажет никто ссылкочку на сайтик с онлайн многопользовательской рисовалкой? (т.е. рисует несколько человек сразу (сетевая)) что-то типа чата, но с рисунком))
     
  7. lifediz

    lifediz Yii Framework developer

    Регистр.:
    7 июн 2008
    Сообщения:
    385
    Симпатии:
    507
    ну вроде Nassi Network Assistant ну это программа-чат,по ней могут все кто в чате рисовать одновременно.
     
  8. crazyspoOky

    crazyspoOky Писатель

    Регистр.:
    30 июл 2008
    Сообщения:
    7
    Симпатии:
    0
    // а сохранение картинки куда прописывать? в страницу или надо исходник flash раскрывать?
    понял, открыл source. И как его к сайту теперь прикрутить? )
     
  9. to6a

    to6a Писатель

    Регистр.:
    7 авг 2008
    Сообщения:
    9
    Симпатии:
    1
    да вот если можно небольшой мануал это было бы неплохо)
     
  10. aaanet

    aaanet Создатель

    Регистр.:
    26 июл 2008
    Сообщения:
    10
    Симпатии:
    0
    инетесная штука и в самом деле...я так и не понял, можно как-то из флеша в джпег сохранять?
     
Статус темы:
Закрыта.