Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Доработка принскрина из флешки (http://www.flasher.ru/forum/showthread.php?t=96965)

p.kiev.ua 10.06.2007 23:53

Доработка принскрина из флешки
 
Вопрос!

Есть штука типа принскрин флешки. и експорт в png

вот пример - http://www.p.kiev.ua/bw4/

а вот код:

Код:

import flash.display.*;
import flash.net.URLRequest;
import flash.net.URLVariables;
//
function sendImage(event:Event) {
        var data_bmp:BitmapData = new BitmapData(avatar_mc.width,avatar_mc.height);
        data_bmp.draw(avatar_mc);
        var png_image_data:ByteArray = PNGEncoder.encode(data_bmp);
        /*
        trace(png_image_data.length);
        var ld:Loader=new Loader();
        ld.loadBytes(png_image_data);
        ld.x = 120;
        ld.y = 120;
        addChild(ld);
        */
        //
        var url_req:URLRequest = new URLRequest("http://p.kiev.ua/bw2/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");
}
//
var child:Shape = new Shape();
avatar_mc.addChild(child);
//
avatar_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMousedown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseup);
clear_mc.addEventListener(MouseEvent.CLICK, clickHandler);
send_mc.addEventListener(MouseEvent.CLICK, sendImage);

function onMousedown(event:MouseEvent):void {
        var to_x = event.localX;
        var to_y = event.localY;
        var random_color = Math.floor(Math.random()*0xFFFFFF);
        child.graphics.lineStyle(2, random_color, 100, true, "normal", "none");
        child.graphics.moveTo(to_x,to_y);
        avatar_mc.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
function onMouseup(event:MouseEvent):void {
        avatar_mc.removeEventListener("enterFrame", enterFrameHandler);
}


function enterFrameHandler(event:Event):void {
        var m_x:Number = avatar_mc.mouseX;
        var m_y:Number = avatar_mc.mouseY;
        if ((m_x>0 && m_x<0) && (m_y>0 && m_y<0)) {
                child.graphics.lineTo(avatar_mc.mouseX, avatar_mc.mouseY);
        }
}
function clickHandler(event:MouseEvent):void {
        child.graphics.clear();
}


вопрос:

как сделать так чтобы принскринил не весь мувик а только левую часть?

Плиз помогите - очень важно!

MerlinTwi 11.06.2007 00:11

изображение с мувика снимается командой
data_bmp.draw(avatar_mc);

см. хелп
flash.display
Class BitmapData
Method draw
там есть параметр clipRect:Rectangle он отвечает за то, какую область принскринить

p.kiev.ua 11.06.2007 00:42

огромное спасибо!!!!!!!!

помоги плиз...
вот если я правильно понял вот пишу:
Код:

clipRect:Rectangle (width=300,height=300)
так?

etc 11.06.2007 03:26

p.kiew.ua, код в вашем посте чей? Если ваш, то почему вы такие глупые вопросы задаете? Если нет, то сначала разберитесь в этом коде, а не задавайте глупых вопросов.

p.kiev.ua 11.06.2007 12:21

ну простите ... вы тоже не с рождения стали флешером... я думал что в этом форуме можно спрашивать то что не понятно...

от куда такая агрессия к начинающим? Я же просто хочу чтобы мн е помогли...

screamge 11.06.2007 12:55

Код:

var data_bmp:BitmapData = new BitmapData(avatar_mc.width,avatar_mc.height);
Тут должны быть размеры того что вы принтскрините

etc 11.06.2007 13:27

Цитата:

Сообщение от p.kiev.ua
ну простите ... вы тоже не с рождения стали флешером... я думал что в этом форуме можно спрашивать то что не понятно...

от куда такая агрессия к начинающим? Я же просто хочу чтобы мн е помогли...

Потому что вы приволокли на форум бог знает откуда кусок кода (вот там, где он был взят, вся информация по нему и должна быть), вообще не понимая, как он работает. Теперь начинаете создавать пяток тем с попытками разобраться в этом коде. У вас ЕСТЬ готовый код, нужно взять и разобраться с ним самостоятельно, а не заставлять других это делать и выковыривать ссылки на хелп. Так яснее? Спрашивать «Я правильно написал?» тоже непонятно зачем, если написанное не работает, значит оно написано неправильно, следовательно нужно открыть справку, найти информацию по теме и со словариком перевести, если есть трудности в переводе. Самостоятельно. Заодно, помимо новых знаний в AS, ещё и английский подтянуть (без этого никуда вообще).


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

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