Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Скопировать Shape используя ByteArray (http://www.flasher.ru/forum/showthread.php?t=114426)

Alex Lexcuk 29.07.2008 00:54

Скопировать Shape используя ByteArray
 
Почти работает...
Код:

registerClassAlias("трансформ", Transform);
registerClassAlias("шейп", Shape);
var out_shape:Shape =  new Shape();
//var tranc:Transform = clone(out_shape.transform) as Transform;       
with (out_shape.graphics) {lineStyle(2, 0xaaaaff); beginFill( 0x11ff11, 1 );
moveTo(10,0);curveTo(-5,20,10,25);curveTo(25,20,10,0);endFill();}


var mov_2:Shape = clone(out_shape) as Shape;       

//addChild(mov_2);
function clone(source:Object):* {
                    var copier:ByteArray = new ByteArray();
                    copier.writeObject(source);
                    copier.position = 0;
                    return(copier.readObject());
                }

Выдает ошибку

ArgumentError: Error #1063: Argument count mismatch on flash.geom::Transform$iinit(). Expected 1, got 0.
at flash.utils::ByteArray/readObject()
at Untitled_fla::MainTimeline/clone()
at Untitled_fla::MainTimeline/Untitled_fla::frame1()

Чего то явно нехватает...
Как скопировать Shape используя ByteArray?

ramshteks 29.07.2008 01:00

ну мн кажется... ты чего то не передаешь...
Код:

Expected 1, got 0.
ии если я не ошибаюсь в
Код:

return(copier.readObject(сюда));

BlooDHounD 29.07.2008 01:09

Alex Lexcuk, никак. это не может работать. а объекты в которых есть обязательные атрибуты копировать через ByteArray не могут. пример тому Transform. а если почитать хелп то там чёрным по белому написано, что в ByteArray нельзя записать DisplayObeject и его наследников.

ramshteks, ошибаетесь. Вам бы читать научиться:
ArgumentError: Error #1063: Argument count mismatch on flash.geom::Transform$iinit(). Expected 1, got 0.

ramshteks 29.07.2008 01:15

извиняюсь, не туда посмотрел:
Код:

flash.utils::ByteArray/readObject()
это сбило с толку
а читать я умею

wvxvw 29.07.2008 03:23

Ну, что приходит в голову - если все равно графика программная - записать координаты в какой-нибудь специально обученый объект и его уже сериализировать. Я бы делал что-то похожее на класс Animator. Примерно таким образом: конструктор: создает родительский узел, вызовы moveTo/lineTo и т.п. добавляют дочерние узлы + есть парсер, который этот ХМЛ в состоянии потом прочитать и воспроизвести.

vooparker 30.07.2008 02:25

2wvxvw: есть SVG )

wvxvw 30.07.2008 12:11

А что есть и готовый парсер? Я не в курсе =) Если есть, может на него и ссылки есть? :shuffle:

vooparker 31.07.2008 01:40

2wvxvw: даже ходить далеко не надо ) http://www.flasher.ru/forum/showthread.php?t=109223

wvxvw 31.07.2008 02:20

Ой... да... %) но, с другой стороны, он не дописаный... а дописывать не хочется... я бы вообще по-другому делал...


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

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