Форум 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=132028)

vermut 02.11.2009 18:57

Динамически подгружаемый объект
 
Есть функция постоянно подгружающая объекты, в даном случае квадраты, исходя из заданных значений width, height.
Код AS3:

public function setDraw (width:Number, height:Number):Object{
 graphics.drawRect(500,200,width,height);
 return graphics
 }

Вопрос вот какой: Как модифицировать функцию, чтобы при передачи в нее значений (ширины и высоты) добавлался новый объект, а старый в свою очере удалялся?

scarbo 02.11.2009 19:24

откуда удалялся?из родительского контейнера?из массива?и почему возвращается Object, когда это один из потомков DisplayObject, например Shape

switcher! 02.11.2009 19:28

Graphics.clear()

vermut 03.11.2009 18:11

Извиняюсь за не корректно заданный вопрос...
Вобщем, есть функция.
Код AS3:

private function submitlocate( evt:Event ):void {                    
                    rectView.addlocate( inputWidth.text, inputHeight.text );
                    }

передающая введенные в TextInput значения функцию addlocate
Код AS3:

public function addlocate( inputWidth:String, inputHeight:String ):void {
        setDraw(Number(inputWidth), Number(inputHeight));
    }

далее полученные знечения задействуются функцией setDraw
Код AS3:

private function setDraw (DrawWidth:Number, DrawHeight:Number):void {
    graphics.clear();
    graphics.lineStyle(1, 0x000000);
    graphics.beginFill(0xFF0000);
    graphics.drawRect(500,200,DrawWidth,DrawHeight);
    graphics.endFill();
 }

в результате которой добавляется новый квадрат с шириной и высотой равной введенным значениям.

Вопрос : Как модифицировать функцию, чтобы при передачи в нее новых значений (ширины и высоты) на месте предыдущего квадрата добавлался новый, а предыдущий соответственно исчезал ???

Wolsh 03.11.2009 18:47

А он разве не исчезает? clear() должна его стирать.
*аргументы с больших букв не называем.

vermut 04.11.2009 02:06

Исчезает, только если graphics.clear(); находится в конце функции.
Только вот исчезает полностью, без возможности последующего добавления
т.е при введении значений в TextInput объект не появляется.

Felicast 04.11.2009 12:24

если graphics.clear(); находится в конце функции, естественно все, что вы нарисовали исчезнет. я не понимаю, чего вы добиваетесь?
по-моему код
Код AS3:

private function setDraw (DrawWidth:Number, DrawHeight:Number):void {
    graphics.clear();
    graphics.lineStyle(1, 0x000000);
    graphics.beginFill(0xFF0000);
    graphics.drawRect(500,200,DrawWidth,DrawHeight);
    graphics.endFill();
 }

должен работать как надо


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

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