Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как сохранить динамически нарисованные линии (http://www.flasher.ru/forum/showthread.php?t=79679)

rockafella 13.05.2006 13:08

как сохранить динамически нарисованные линии
 
как сохранить динамически нарисованные линии во flash.
Фишка такая, я рисую много линий (фрагмент кода)

Код:

...draw_.onMouseMove = function () {
        if (detect == 1) {
        this.createEmptyMovieClip("line"+count, count);
        var line = this["line"+count];

        line.lineStyle(5, this.myColor, 100);
        line.dashTo(startX, startY, this._xmouse, this._ymouse, 4, 6);
                updateAfterEvent();
        }
}

При отпускании кнопки мыши я заношу данные в массив:

Код:

draw_.onMouseUp = function () {
        with(this["line"+ count]){
        var lineArray:Array = new Array();
        trace(this["line"+ count]);
lineArray[0] = startX;
lineArray[1] = startY;
lineArray[2] = this._xmouse;
lineArray[3] = this._ymouse;
        lineArray[4] = this.myColor;
        }
        detect = 0;
};

Вопрос как сохранить эти данные внутри мувика, чтобы когда головка плеера вернется на кадр в котором линии были нарисованы, линии оставались бы на месте. А так они обнуляются и кадр пустой.

etc 13.05.2006 14:02

Ты уже их сохранил в массив. Вот пройдись по нему и нарисуй снова.

rockafella 13.05.2006 14:55

Я так и хотел, но не получилось, поэтому и спросил.
Сейчас еще раз попробую.

rockafella 13.05.2006 16:33

строка
Код:

draw_.onMouseUp = function () {
        with(this["line"+ count]){
            trace(this["line"+ count])
          //...
                trace(lineArray[0])

}
}

в trace показывает
Код:

_level0.map.draw_.line1
 345

а когда обращаешся
Код:

lineXML.createTextNode(_root.map.draw_["line" + r].lineArray[0]);
trace(_root.map.draw_["line" + r]);
trace(_root.map.draw_["line" + r].lineArray[0]);

первый trace возвращает - _level0.map.draw_.line1;
а второй возвращает - undefined
Почему?

Homo Sapiens 13.05.2006 17:41

Ну, вероятно, потому что ты ничего не загоняеш в переменную lineArray[0]...

rockafella 13.05.2006 18:05

Homo Sapiens

там же написано во втором листинге, что
trace(lineArray[0])
возвращает 345

etc 13.05.2006 18:16

А с чего ты взял, что var lineArray будет создано именно в заданном мувике и при этом не будет удалено после выполнения?

Madasan 13.05.2006 18:29

Чтобы массив остался в мувике, из которого вызывается функция, надо вместо
Код:

var lineArray:Array = new Array();
написать
Код:

this.lineArray= new Array();
тогда внутри функции обращение к массиву будет this.lineArray, а вне функции:
_root.map.draw.lineArray

rockafella 13.05.2006 18:46

2 ETC

Я поэтому и спросил, как сохранить созданный мувиклип вместе с массивом, чтобы он не удалялся после события.

Nirth 13.05.2006 18:52

пересесенно в раздел для новеньких и ленивых


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

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