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

Dezar 04.09.2009 17:35

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

Код AS3:

 
public function init(zoom:Number):void{
                        this.addEventListener(Event.SELECT,onSelect);
                        this.addEventListener(Event.OPEN,onSelect);
                        this.addEventListener(MouseEvent.CLICK,onSelect);
                    this.workSpaceRectangle = new Rectangle(316,265,962,322);
                                        fg.graphics.lineStyle(0,0x44ff55);//рисование сетки
                        for (var i:int=0;i<=64;i++){
                                fg.graphics.moveTo(0,i*zoom);
                                fg.graphics.lineTo(fg.width,i*zoom);
                        }
                        for (i=0;i<=192;i++){
                                fg.graphics.moveTo(i*zoom,0);
                                fg.graphics.lineTo(i*zoom,fg.height);
                        }
                        fg.alpha = 30;
                }


первый вызов происходит и все рисует как надо(рисуется сетка).
при повторном вызове этои же функции выдает такую ошибку

Код AS1/AS2:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at micro.screens::RSMH_mono/init()[D:\AirPort\src\micro\screens\RSMH_mono.mxml:24]
        at AirPort/zoom()[D:\AirPort\src\AirPort.mxml:323]
        at AirPort/onKeyUp()[D:\AirPort\src\AirPort.mxml:257]


в чем дело???
кто скажет

Добавлено через 58 секунд
24 строка это
Код AS3:

fg.graphics.lineStyle(0,0x44ff55);//рисование сетки

остальные строки это нажатие на кнопку и вызов функции.там все ок

Obi 04.09.2009 17:36

очевидно fg у вас null. Больше вроде ничего nullo'м быть не должно.
И да, нафига повторно вешать слушателей?

Dezar 04.09.2009 17:37

а как он null если я уже отрисовал в нем?

Obi 04.09.2009 17:40

Цитата:

Сообщение от Dezar (Сообщение 848317)
а как он null если я уже отрисовал в нем?

Когда мне лень разбираться в куске кода, где выдает эту ошибку, я через определенный промежуток пишу трейс, например:

Код AS3:

public function init(zoom:Number):void{
trace(1);
                        this.addEventListener(Event.SELECT,onSelect);
                        this.addEventListener(Event.OPEN,onSelect);
                        this.addEventListener(MouseEvent.CLICK,onSelect);
trace(2);
                    this.workSpaceRectangle = new Rectangle(316,265,962,322);
                                        fg.graphics.lineStyle(0,0x44ff55);//рисование сетки
trace(3);
                        for (var i:int=0;i<=64;i++){
                                fg.graphics.moveTo(0,i*zoom);
                                fg.graphics.lineTo(fg.width,i*zoom);
                        }
trace(4);
                        for (i=0;i<=192;i++){
                                fg.graphics.moveTo(i*zoom,0);
                                fg.graphics.lineTo(i*zoom,fg.height);
                        }
trace(5);
                        fg.alpha = 30;
                }

Тогда сразу видно где останавливается программа.

К тому-же, никому кроме вас не известно что происходит после первого запуска метода. Может какой-то сторонний код обnull'яет объект

Dezar 04.09.2009 17:43

вставил такие же трейсы))))

выдало такое

Код AS1/AS2:

1
TypeError: Error #1009: Cannot access a property or method of a null object reference.
        at micro.screens::RSMH_mono/init()[D:\AirPort\src\micro\screens\RSMH_mono.mxml:25]
        at AirPort/zoom()[D:\AirPort\src\AirPort.mxml:323]
        at AirPort/onKeyUp()[D:\AirPort\src\AirPort.mxml:257]
2

дело в fg.
но.как он может быть null?
а если и может.то что делать?)))
и почему тогда первый раз функция работает?

Kuruki 04.09.2009 17:49

Может вы весь код покажете наконец?

Dezar 04.09.2009 17:50

Цитата:

покажете наконец?
вы просили?

Kuruki 04.09.2009 17:51

Цитата:

К тому-же, никому кроме вас не известно что происходит после первого запуска метода. Может какой-то сторонний код обnull'яет объект
И по-моему очевидно, что в функции init fg не обнуляется

elfon 04.09.2009 20:09

Код в студию.

Psycho Tiger 04.09.2009 22:57

Оффтоп, но
Код AS3:

fg.alpha = 30;

это омг.


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

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