Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Какой принцип рисования во Flex? (http://www.flasher.ru/forum/showthread.php?t=104970)

vento 05.12.2007 16:16

Какой принцип рисования во Flex?
 
Добрый день! Перехожу на Flex 3 с Flash 8 (AS2) - сильно не пинайте новичка. Ищу решение следующей проблемы: нужно перенести часть кода Flash (динамическое рисование) на Flex. Во флеше рисование (moveTo, lineTo) выполнялось на имеющемся/создаваемом мувике. Сам скрипт писался мной во фрейм основного таймлайна. Хочу понять общие принципы рисования во Flex.

Вот имеющийся код на флеше:
Код:

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());

...

mc.clear();

mc.lineStyle(1, 0xFFAAAA, 100);
mc.moveTo(10, 10);
mc.lineTo(50, 50);

- это рисует мне простую линию.

Во FLEX пока имею вот что (собственно, только что созданный проект):

Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
       
</mx:Application>

Как то же самое (нарисовать линию) сделать во flex? Нужен пример или ссылка.
Куда в mxml пихать код? (догадываюсь, что нужно юзать mx:Script, но рабочий вариант так мне и не удалось получить).

Спасибо.

Sneg 05.12.2007 17:08

У всех классов наследованных от Shape - есть graphics, в нем и нужно рисовать.

vento 05.12.2007 17:24

Если я правильно понял, нужно делать так:
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        <mx:Script>
                <![CDATA[
                        import flash.display.Shape;

                        var sp:Shape = new Shape();
                        sp.graphics.lineStyle(1, 0xFFAAAA, 100);
                        sp.graphics.moveTo(10, 10);
                        sp.graphics.lineTo(50, 50);
                ]]>
        </mx:Script>
</mx:Application>

Но так не работает:
1120: Access of undefined property sp. ...
1120: Access of undefined property sp. ...
1120: Access of undefined property sp. ...

В чем моя ошибка?

FlexOkeks 05.12.2007 17:39

Чтобы увидеть рисунок, мало создать new Shape() его нужно еще добавить addChild(). Только в Application можно добавлять чайлды которые наследуются от UIComponent, попробуйте так:
Код:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="absolute" creationComplete="myDraw()">
        <mx:Script>
                <![CDATA[
                        import mx.containers.Box;
                        private function myDraw():void {
                            var sp:Box = new Box();
                            sp.graphics.lineStyle(1, 0xFFAAAA, 100);
                            sp.graphics.moveTo(10, 10);
                            sp.graphics.lineTo(50, 50);
                            addChild(sp);
                      }
                       
                ]]>
        </mx:Script>
</mx:Application>


vento 05.12.2007 18:12

Да! Cпасибо. Сработало. Про "import flash...." как полагаю можно забыть? они вообще используются во Flex?

FlexOkeks 05.12.2007 18:29

Цитата:

Сообщение от vento
Да! Cпасибо. Сработало. Про "import flash...." как полагаю можно забыть? они вообще используются во Flex?

Конечно используется. Просто флекс это компоненты, и вместо root там по сути Application, но можно компилить и as проэкт, без компонентов, и без mxml тогда там будет чистый аs3 т.е. import flash... но компоненты туда уже не добавить.

vento 05.12.2007 18:45

Спасибо.

VovkaMorkovka 06.12.2007 14:18

Проще всего создать свой компонент и там рисовать то, что тебе надо


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

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