0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
1

Не удается вызвать свойство или метод со ссылкой на объект "null"

11.08.2013, 17:11. Показов 3729. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой AS3 код:
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package 
{
    import alternativa.engine3d.containers.BSPContainer;
    import alternativa.engine3d.containers.ConflictContainer;
    import alternativa.engine3d.containers.DistanceSortContainer;
    import alternativa.engine3d.controllers.SimpleObjectController;
    import alternativa.engine3d.core.Camera3D;
    import alternativa.engine3d.core.View;
    import alternativa.engine3d.loaders.MaterialLoader;
    import alternativa.engine3d.loaders.Parser3DS;
    import alternativa.engine3d.loaders.ParserCollada;
    import alternativa.engine3d.materials.FillMaterial;
    import alternativa.engine3d.materials.TextureMaterial;
    import alternativa.engine3d.objects.Mesh;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLLoaderDataFormat;
    
    /**
     * ...
     * @author andrew
     */
    public class Main extends Sprite 
    {
        private var camera:Camera3D;
        private var container:BSPContainer;
        private var controller:SimpleObjectController;
        private var parser:ParserCollada = new ParserCollada();
        private var parser2:ParserCollada = new ParserCollada();
        private var materialLoader:MaterialLoader = new MaterialLoader();
        private var materialLoader2:MaterialLoader = new MaterialLoader();
        private var mesh:Mesh;
        private var mesh2:Mesh;
        private var rot = 0.02;
        public function Main():void 
        {
            camera = new Camera3D();
            camera.view = new View(640, 480);
            camera.z = -400;
            addChild(camera.view);
            container = new BSPContainer();
            container.addChild(camera);
            controller = new SimpleObjectController(stage, camera, 200);
            addEventListener(Event.ENTER_FRAME, onEnter);
            
            var loader:URLLoader = new URLLoader();
            loader.addEventListener(Event.COMPLETE, onComplete);
            loader.load(new URLRequest("../lib/viking.DAE"));
            
            var loader2:URLLoader = new URLLoader();
            loader2.addEventListener(Event.COMPLETE, onCompleteGrom);
            loader2.load(new URLRequest("../lib/grom.DAE"));
            
        }
        private function onComplete(event:Event):void {
            parser.parse(XML(event.target.data));
            trace(parser.objects);
            mesh = parser.objects[0] as Mesh;
            mesh.rotationX = 1.571;
            container.addChild(mesh);
            materialLoader.load(parser.textureMaterials);
            
            
        }
        private function onCompleteGrom(event:Event):void {
            parser2.parse(XML(event.target.data));
            mesh2 = Mesh(parser2.objects[0]);
            mesh2.rotationX = 1.571;
            mesh2.x = mesh.x;
            mesh2.y = mesh.y - 125;
            mesh2.z = mesh.z - 100;
            container.addChild(mesh2);
            materialLoader2.load(parser2.textureMaterials);
        }
        
        private function onEnter(e:Event):void {
            rot += 0.02;
            mesh2.rotationY = mesh.rotationY+rot;
            mesh2.x = mesh.x - (Math.sin(mesh.rotationY)*50);//обязательно Math.sin(mesh.rotationY), а НЕ Math.sin(mesh2.rotationY), а то башня будет не правильно вращаться
            mesh2.y = mesh.y - 125;
            mesh2.z = mesh.z - (Math.cos(mesh.rotationY)*50);
            controller.update();
            camera.render();
            
            
        }
        
        
    }
    
}
Когда запускаю выдает следующую ошибку:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Main/onEnter()[C:\as3\New Project2\src\Main.as:81]
Ошибка не критичная, нажимаю продолжить и все работает как надо, но все равно хотелось бы узнать, как ее устранить.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2013, 17:11
Ответы с готовыми решениями:

Ошибка со stage "Не удается вызвать свойство или метод со ссылкой на объект "null"
as файл package { import flash.display.*; import flash.events.*; public class...

Не удается вызвать свойство или метод со ссылкой на объект "null"
Где ошибка? as файл package eventsX{ import flash.display.*; import flash.net.*; import...

Не удается вызвать свойство или метод со ссылкой на объект "null"
Есть у меня вот это - table_lvlMenu.addEventListener(MouseEvent.CLICK, clPlay); При клике я...

Не удается вызвать свойство или метод со ссылкой на объект "null"
Есть 2 кадра, на которых 2 картинки, которые я преобразовал в кнопки Хочу переключаться с одного...

3
Модератор
2889 / 1747 / 178
Регистрация: 19.02.2011
Сообщений: 6,438
11.08.2013, 18:14 2
Ошибка говорит о том, что какой-то объект, к которому пытаемся обратиться, нет, т.е. он null. Или поставь точку останова внутри обработчика, или элементарно пропиши трэйсы с указанием заинтересованных объектов - все сразу станет ясно.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
12.08.2013, 08:57  [ТС] 3
Спасибо, все разрешилось))
Вместо
ActionScript 3
1
2
 private var mesh:Mesh;
        private var mesh2:Mesh;
Надо было сразу инициализировать
ActionScript 3
1
2
private var mesh:Mesh = new Mesh();
        private var mesh2:Mesh = new Mesh();
0
Модератор
2889 / 1747 / 178
Регистрация: 19.02.2011
Сообщений: 6,438
12.08.2013, 15:29 4
Delta36652, лучше это делать в отдельном методе при инициализации экземпляра класса.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2013, 15:29
Помогаю со студенческими работами здесь

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"
Помогите пожалуйста, что нужно сделать, чтобы убрать эту ошибку?

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"
Здравствуйте! Столкнулся с такой ошибкой: Вот код:...

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"
Имеется пакет сделанный на Adobe Flash Builder (AFB), создан 1 класс и подключен к главному проекту...

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
Здравствуйте, все сделала по уроку, но у меня выдает ошибку "null". Подскажите где ошибка


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru