Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Последняя ошибка в приложении. Error #1009 (http://www.flasher.ru/forum/showthread.php?t=159897)

argoniummm 06.07.2011 17:24

Последняя ошибка в приложении. Error #1009
 
Код AS3:

package 
{
        import flash.events.MouseEvent;
        import flash.display.MovieClip;
        import flash.display.DisplayObject;
 
        public class App extends MovieClip
        {
                var using2:Boolean = false;
                var using3:Boolean = false;
 
                var b1:int;
                var b2:int;
                var b3:int;
 
                var v:int = 0;
                var les:int = 0;
                var sbor:int = 0;
 
                var v1:int = 0;
                var v2:int = 0;
                var v3:int = 0;
 
                var les1:int = 0;
                var les2:int = 0;
                var les3:int = 0;
 
                var d1:int = 0;
                var d2:int = 0;
                var d3:int = 0;
 
                public function App()
                {
                        act2.addEventListener(MouseEvent.CLICK,activating2etaj);
                        act3.addEventListener(MouseEvent.CLICK,activating3etaj);
                        add_itog.addEventListener(MouseEvent.CLICK,resultat);
                }
 
                public function activating2etaj(e:MouseEvent):void
                {
                        act2.enabled = false;
                        act3.mouseEnabled = true;
                        act3.enabled = true;
                        using2 = true;
                        diametr_2.enabled = true;
                        dl2etaja.enabled = true;
                        sh2etaja.enabled = true;
                        dlperegorodok2.enabled = true;
                        visotaetaja2.enabled = true;
                }
 
                public function activating3etaj(e:MouseEvent):void
                {
                        act3.enabled = false;
                        using3 = true;
                        diametr_3.enabled = true;
                        dl3etaja.enabled = true;
                        sh3etaja.enabled = true;
                        dlperegorodok3.enabled = true;
                        visotaetaja3.enabled = true;
                }
 
                public function resultat(e:MouseEvent):void
                {
                        if (diametr_1.selectedItem.label == "20-22")
                        {
                                d1 = 21;
                        }
                        if (diametr_1.selectedItem.label == "22-24")
                        {
                                d1 = 23;
                        }
                        if (diametr_1.selectedItem.label == "24-28")
                        {
                                d1 = 26;
                        }
                        if (diametr_1.selectedItem.label == "28-32")
                        {
                                d1 = 30;
                        }
                        if (diametr_1.selectedItem.label == "32-36")
                        {
                                d1 = 34;
                        }
                        if (diametr_1.selectedItem.label == "36-44")
                        {
                                d1 = 40;
                        }
 
                        if (using2 = true)
                        {
                                if (diametr_2.selectedItem.label == "20-22")
                                {
                                        d2 = 21;
                                }
                                if (diametr_2.selectedItem.label == "22-24")
                                {
                                        d2 = 23;
                                }
                                if (diametr_2.selectedItem.label == "24-28")
                                {
                                        d2 = 26;
                                }
                                if (diametr_2.selectedItem.label == "28-32")
                                {
                                        d2 = 30;
                                }
                                if (diametr_2.selectedItem.label == "32-36")
                                {
                                        d2 = 34;
                                }
                                if (diametr_2.selectedItem.label == "36-44")
                                {
                                        d2 = 40;
                                }
                        }
 
                        if (using3 = true)
                        {
                                if (diametr_3.selectedItem.label == "20-22")
                                {
                                        d3 = 21;
                                }
                                if (diametr_3.selectedItem.label == "22-24")
                                {
                                        d3 = 23;
                                }
                                if (diametr_3.selectedItem.label == "24-28")
                                {
                                        d3 = 26;
                                }
                                if (diametr_3.selectedItem.label == "28-32")
                                {
                                        d3 = 30;
                                }
                                if (diametr_3.selectedItem.label == "32-36")
                                {
                                        d3 = 34;
                                }
                                if (diametr_3.selectedItem.label == "36-44")
                                {
                                        d3 = 40;
                                }
                        }
 
                        v1 = 2 * int(visotaetaja1) *(int(dl1etaja.text) + int(sh1etaja.text)) + int(visotaetaja1.text) * int(dlperegorodok1.text) * (d1 / 100);
                        if (using2 = true)
                        {
                                v2 = 2 * int(visotaetaja2) *(int(dl2etaja.text) + int(sh2etaja.text)) + int(visotaetaja2.text) * int(dlperegorodok2.text) * (d2 / 100);
                        }
                        if (using2 = true)
                        {
                                v3 = 2 * int(visotaetaja3) *(int(dl3etaja.text) + int(sh3etaja.text)) + int(visotaetaja3.text) * int(dlperegorodok3.text) * (d3 / 100);
                        }
 
                        v = v1 + v2 + v3;
 
                        les1=int(diametr_1.selectedItem.data) * v1;
                        les2=int(diametr_2.selectedItem.data) * v2;
                        les3=int(diametr_3.selectedItem.data) * v3;
 
                        les = les1 + les2+ les3;
 
                        sbor = les /2;
 
                        cost_lesa.text = String(les);;
                        v_all.text = String(v);;
                        cost_sborki.text = String(sbor);;
                }
        }
 
}

Вот текст ошибки: TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at App/resultat()
При нажатии на кнопку выполняется функция resultat. По тексту ошибки флеш считает, что она нулевая. Кто может помочь найти ошибку?

bav 06.07.2011 17:26

Debug поможет. Покажет хотя бы в какой строчке ошибка.

argoniummm 06.07.2011 17:28

А как использовать во флеше дебаг?

MXPain 06.07.2011 17:29

скажу сразу using2 = true
зачем вы присваиваете значение то в условии? using2 == true - вот так нужно

Добавлено через 46 секунд
поставить дебаг плеер для начала

Добавлено через 1 минуту
вот так var les1:int = 0; писать не обязательно можно var les1:int, v2:int;

argoniummm 06.07.2011 17:32

ой. Тупанул =) Спасибо за помощь. Ошибка исчезла.

MXPain 06.07.2011 17:34

зачем нужны переменные using2 и using3 если ничего не меняется в условии?

argoniummm 06.07.2011 17:37

Нет, не помогло. Вот последний код:
Код AS3:

package 
{
        import flash.events.MouseEvent;
        import flash.display.MovieClip;
        import flash.display.DisplayObject;
 
        public class App extends MovieClip
        {
                var using2:Boolean = false;
                var using3:Boolean = false;
 
                var b1:int;
                var b2:int;
                var b3:int;
 
                var v:int = 0;
                var les:int = 0;
                var sbor:int = 0;
 
                var v1:int = 0;
                var v2:int = 0;
                var v3:int = 0;
 
                var les1:int = 0;
                var les2:int = 0;
                var les3:int = 0;
 
                var d1:int = 0;
                var d2:int = 0;
                var d3:int = 0;
 
                public function App()
                {
                        act2.addEventListener(MouseEvent.CLICK,activating2etaj);
                        act3.addEventListener(MouseEvent.CLICK,activating3etaj);
                        add_itog.addEventListener(MouseEvent.CLICK,resultat);
                }
 
                public function activating2etaj(e:MouseEvent):void
                {
                        act2.enabled = false;
                        act3.mouseEnabled = true;
                        act3.enabled = true;
                        using2 = true;
                        diametr_2.enabled = true;
                        dl2etaja.enabled = true;
                        sh2etaja.enabled = true;
                        dlperegorodok2.enabled = true;
                        visotaetaja2.enabled = true;
                }
 
                public function activating3etaj(e:MouseEvent):void
                {
                        act3.enabled = false;
                        using3 = true;
                        diametr_3.enabled = true;
                        dl3etaja.enabled = true;
                        sh3etaja.enabled = true;
                        dlperegorodok3.enabled = true;
                        visotaetaja3.enabled = true;
                }
 
                public function resultat(e:MouseEvent):void
                {
                        if (diametr_1.selectedItem.label == "20-22")
                        {
                                d1 = 21;
                        }
                        if (diametr_1.selectedItem.label == "22-24")
                        {
                                d1 = 23;
                        }
                        if (diametr_1.selectedItem.label == "24-28")
                        {
                                d1 = 26;
                        }
                        if (diametr_1.selectedItem.label == "28-32")
                        {
                                d1 = 30;
                        }
                        if (diametr_1.selectedItem.label == "32-36")
                        {
                                d1 = 34;
                        }
                        if (diametr_1.selectedItem.label == "36-44")
                        {
                                d1 = 40;
                        }
 
                        if (using2 == true)
                        {
                                if (diametr_2.selectedItem.label == "20-22")
                                {
                                        d2 = 21;
                                }
                                if (diametr_2.selectedItem.label == "22-24")
                                {
                                        d2 = 23;
                                }
                                if (diametr_2.selectedItem.label == "24-28")
                                {
                                        d2 = 26;
                                }
                                if (diametr_2.selectedItem.label == "28-32")
                                {
                                        d2 = 30;
                                }
                                if (diametr_2.selectedItem.label == "32-36")
                                {
                                        d2 = 34;
                                }
                                if (diametr_2.selectedItem.label == "36-44")
                                {
                                        d2 = 40;
                                }
                        }
 
                        if (using3 == true)
                        {
                                if (diametr_3.selectedItem.label == "20-22")
                                {
                                        d3 = 21;
                                }
                                if (diametr_3.selectedItem.label == "22-24")
                                {
                                        d3 = 23;
                                }
                                if (diametr_3.selectedItem.label == "24-28")
                                {
                                        d3 = 26;
                                }
                                if (diametr_3.selectedItem.label == "28-32")
                                {
                                        d3 = 30;
                                }
                                if (diametr_3.selectedItem.label == "32-36")
                                {
                                        d3 = 34;
                                }
                                if (diametr_3.selectedItem.label == "36-44")
                                {
                                        d3 = 40;
                                }
                        }
 
                        v1 = 2 * int(visotaetaja1) *(int(dl1etaja.text) + int(sh1etaja.text)) + int(visotaetaja1.text) * int(dlperegorodok1.text) * (d1 / 100);
                        if (using2 == true)
                        {
                                v2 = 2 * int(visotaetaja2) *(int(dl2etaja.text) + int(sh2etaja.text)) + int(visotaetaja2.text) * int(dlperegorodok2.text) * (d2 / 100);
                        }
                        if (using2 == true)
                        {
                                v3 = 2 * int(visotaetaja3) *(int(dl3etaja.text) + int(sh3etaja.text)) + int(visotaetaja3.text) * int(dlperegorodok3.text) * (d3 / 100);
                        }
 
                        v = v1 + v2 + v3;
 
                        les1=int(diametr_1.selectedItem.data) * v1;
                        les2=int(diametr_2.selectedItem.data) * v2;
                        les3=int(diametr_3.selectedItem.data) * v3;
 
                        les = les1 + les2+ les3;
 
                        sbor = les /2;
 
                        cost_lesa.text = String(les);;
                        v_all.text = String(v);;
                        cost_sborki.text = String(sbor);;
                }
        }
 
}


MXPain 06.07.2011 17:47

int(visotaetaja1) ну видимо это текстовое поле?

Добавлено через 42 секунды
v2 = 2 * int(visotaetaja2) *(int(dl2etaja.text)

Добавлено через 1 минуту
чтобы не делать таких дурацких ошибок используйте дебаг режим

argoniummm 06.07.2011 17:55

Исправил эти ошибки, но всёравно пишет что ссылается на null
вот последняя версия функции:
Код AS3:

        public function resultat(e:MouseEvent):void
                {
                        if (diametr_1.selectedItem.label == "20-22")
                        {
                                d1 = 21;
                        }
                        if (diametr_1.selectedItem.label == "22-24")
                        {
                                d1 = 23;
                        }
                        if (diametr_1.selectedItem.label == "24-28")
                        {
                                d1 = 26;
                        }
                        if (diametr_1.selectedItem.label == "28-32")
                        {
                                d1 = 30;
                        }
                        if (diametr_1.selectedItem.label == "32-36")
                        {
                                d1 = 34;
                        }
                        if (diametr_1.selectedItem.label == "36-44")
                        {
                                d1 = 40;
                        }
 
                        if (using2 == true)
                        {
                                if (diametr_2.selectedItem.label == "20-22")
                                {
                                        d2 = 21;
                                }
                                if (diametr_2.selectedItem.label == "22-24")
                                {
                                        d2 = 23;
                                }
                                if (diametr_2.selectedItem.label == "24-28")
                                {
                                        d2 = 26;
                                }
                                if (diametr_2.selectedItem.label == "28-32")
                                {
                                        d2 = 30;
                                }
                                if (diametr_2.selectedItem.label == "32-36")
                                {
                                        d2 = 34;
                                }
                                if (diametr_2.selectedItem.label == "36-44")
                                {
                                        d2 = 40;
                                }
                        }
 
                        if (using3 == true)
                        {
                                if (diametr_3.selectedItem.label == "20-22")
                                {
                                        d3 = 21;
                                }
                                if (diametr_3.selectedItem.label == "22-24")
                                {
                                        d3 = 23;
                                }
                                if (diametr_3.selectedItem.label == "24-28")
                                {
                                        d3 = 26;
                                }
                                if (diametr_3.selectedItem.label == "28-32")
                                {
                                        d3 = 30;
                                }
                                if (diametr_3.selectedItem.label == "32-36")
                                {
                                        d3 = 34;
                                }
                                if (diametr_3.selectedItem.label == "36-44")
                                {
                                        d3 = 40;
                                }
                        }
 
                        v1 = (2 * int(visotaetaja1.text) *(int(dl1etaja.text) + int(sh1etaja.text)) + int(visotaetaja1.text) * int(dlperegorodok1.text)) * (d1 / 100);
                        if (using2 == true)
                        {
                                v2 = (2 * int(visotaetaja2.text) *(int(dl2etaja.text) + int(sh2etaja.text)) + int(visotaetaja2.text) * int(dlperegorodok2.text)) * (d2 / 100);
                        }
                        if (using2 == true)
                        {
                                v3 = (2 * int(visotaetaja3.text) *(int(dl3etaja.text) + int(sh3etaja.text)) + int(visotaetaja3.text) * int(dlperegorodok3.text)) * (d3 / 100);
                        }
 
                        v = v1 + v2 + v3;
 
                        les1 = int(diametr_1.selectedItem.data) * v1;
                        les2 = int(diametr_2.selectedItem.data) * v2;
                        les3 = int(diametr_3.selectedItem.data) * v3;
 
                        les = les1 + les2 + les3;
 
                        sbor = les / 2;
 
                        cost_lesa.text = String(les);;
                        v_all.text = String(v);;
                        cost_sborki.text = String(sbor);;
                }


MXPain 06.07.2011 18:02

а что это за приведение типов?


надо вот так
parseInt(visotaetaja3.text)
(sbor).toString();

Добавлено через 1 минуту
проверяйте дебаггером, в этом и заключается работа программиста


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

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