Форум программистов, компьютерный форум, киберфорум
ActionScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20

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

11.08.2013, 17:11. Показов 4070. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2013, 17:11
Ответы с готовыми решениями:

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

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

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

3
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
11.08.2013, 18:14
Ошибка говорит о том, что какой-то объект, к которому пытаемся обратиться, нет, т.е. он null. Или поставь точку останова внутри обработчика, или элементарно пропиши трэйсы с указанием заинтересованных объектов - все сразу станет ясно.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 20
12.08.2013, 08:57  [ТС]
Спасибо, все разрешилось))
Вместо
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
Модератор
 Аватар для TanaTiX
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
12.08.2013, 15:29
Delta36652, лучше это делать в отдельном методе при инициализации экземпляра класса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.08.2013, 15:29
Помогаю со студенческими работами здесь

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"
Здравствуйте! Столкнулся с такой ошибкой: Вот код: moiveclip.addEventListener(Event.ENTER_FRAME, fl_FadeSymbolIn_5); ...

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

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

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

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at _fla::MainTimel
Народ, помогите, пожалуйста, что не так... stop(); var clickCounter:int = 0; var allClicks:uint=17; ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru