|
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
Ошибка 1009
Как ее можно обойти? Вроде все исправил но это осталось...
Последний раз редактировалось iNils; 10.06.2013 в 02:06. |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Не дёргать методы и поля обьекта, который null. Научиться отлаживать, в дебаггере скорее всего конкретную строку бы увидели и вопрос бы не встал. Без кода короче ничего больше не скажешь, но тут эта ошибка обычно от того, что stage у DisplayObject null, пока этот обьект на сцену не добавили.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
package { import flash.events.MouseEvent; import com.greensock.*; import com.greensock.easing.*; import flash.events.Event; import flash.display.MovieClip; import flash.geom.Rectangle; import flash.media.Sound; import flash.display.Sprite; import flash.media.SoundTransform; public class MC_M extends MovieClip { private var vol:Number; private var drag_start:Boolean = false; private var percent:Number = seek1.seekk.width; private var currentPosition:Number = 0; private var playingStatus:Boolean = true; private var rev:Boolean = false; private var forw:Boolean = false; private var astep:Number = 3; private var player_volume:Number = 100; public function MC_M() { vol = 10; slider_mc.mc.x = 100; reviewB.addEventListener(MouseEvent.MOUSE_DOWN,reviewDOWN); reviewB.addEventListener(MouseEvent.MOUSE_UP,reviewUP); forward.addEventListener(MouseEvent.MOUSE_DOWN,forwardDOWN); forward.addEventListener(MouseEvent.MOUSE_UP,forwardUP); stopB.addEventListener(MouseEvent.CLICK,stopBB); pauseB.addEventListener(MouseEvent.CLICK, pauseBB); playB.addEventListener(MouseEvent.CLICK,playBB); seek1.scrub.addEventListener(MouseEvent.MOUSE_DOWN,onPressS); seek1.scrub.addEventListener(MouseEvent.MOUSE_UP,onReleaseS); seek1.scrub.addEventListener(MouseEvent.RELEASE_OUTSIDE,onReleaseS); slider_mc.mc.addEventListener(MouseEvent.MOUSE_DOWN, dragSlider); slider_mc.mc.stage.addEventListener(MouseEvent.MOUSE_UP, stopSlider); ifdrag(); this.soundTransform = new SoundTransform(3.3); stop(); } private function reviewDOWN(e:MouseEvent):void { rev = true; reviewB.addEventListener(Event.ENTER_FRAME,reviewEnterFrame); } private function reviewEnterFrame(e:MouseEvent):void { if (rev) { currentPosition = this.currentFrame; if (playingStatus) { this.gotoAndPlay(currentPosition - astep); } else { this.gotoAndStop(currentPosition - astep); } } } private function reviewUP(e:MouseEvent):void { rev = false; } private function forwardDOWN(e:MouseEvent):void { forw = true; forward.addEventListener(Event.ENTER_FRAME,forwardEnterFrame); } private function forwardEnterFrame(e:MouseEvent):void { if (forw) { currentPosition = this.currentFrame; if (playingStatus) { this.gotoAndPlay(currentPosition + astep); } else { this.gotoAndStop(currentPosition + astep); } } } private function forwardUP(e:MouseEvent):void { forw = false; } private function stopBB(e:MouseEvent):void { playingStatus = false; this.stop(); currentPosition = 1; this.gotoAndStop(currentPosition); } private function pauseBB(e:MouseEvent):void { playingStatus = false; currentPosition = this.currentFrame; this.stop(); } private function playBB(e:MouseEvent):void { playingStatus = true; this.gotoAndPlay(currentPosition); } private function ifdrag():void { if (! drag_start) { seek1.scrub.addEventListener(Event.ENTER_FRAME,SC); function SC(e:Event):void { seek1.scrub.x = seek1.seekk.x + (this.currentFrame/this.totalFrames)*percent; } } } private function onPressS(e:MouseEvent):void { this.stop(); drag_start = true; seek1.scrub.startDrag(false,new Rectangle(0,0,500,0)); seek1.scrub.removeEventListener(Event.ENTER_FRAME,SC); } function SC(e:Event):void { seek1.scrub.x = seek1.seekk.x + (this.currentFrame/this.totalFrames)*percent; } private function onReleaseS(e:MouseEvent):void { drag_start = true; this.stop(); currentPosition = Math.floor((seek1.scrub.x/percent)*this.totalFrames); if (playingStatus) { this.gotoAndPlay(currentPosition); playingStatus = true; } else { this.gotoAndStop(currentPosition); playingStatus = false; } seek1.scrub.stopDrag(); seek1.scrub.addEventListener(Event.ENTER_FRAME,SC); } private function dragSlider(event:MouseEvent):void { slider_mc.mc.startDrag(false,new Rectangle(0,0,100,0)); slider_mc.mc.removeEventListener(MouseEvent.CLICK, dragSlider); slider_mc.mc.addEventListener(Event.ENTER_FRAME, changeVolume); } private function stopSlider(event:MouseEvent):void { slider_mc.mc.stopDrag(); slider_mc.mc.removeEventListener(MouseEvent.MOUSE_UP, stopSlider); } private function changeVolume(event:Event):void { vol = Math.round(slider_mc.mc.x) / 30; this.soundTransform = new SoundTransform(vol); } } } Добавлено через 2 минуты Как можно найти какой именно обьект null? |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
В дебаге запустить. И пошагово пройти этот конструктор (если упадёт не заходя, то seek1.seekk.width узнать не смогло, т.е. seek1 null или seek1.seekk). Если MC_M - не Document class, то явно slider_mc.mc.stage - это null, про что написал.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Регистрация: Apr 2013
Сообщений: 44
|
Да правильно вы сказали это из за seekk который лежит в seek1. А как можно обратиться из класса к нему ?? я только начал в классах просто в кадре писал все получалось...
|
|
|||||
Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
|
У вас ошибка в строке private var percent:Number = seek1.seekk.width; Обращаться к seek1.seekk нужно в конструкторе. seek1.seekk не существует до того момента, пока не создан главный класс.
|
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
mAK08, в AS не принято использовать символ _ в качестве разделителя в названии переменных и функциях, нужно использовать camelCase. Используют только в наименовании констант, так как они пишутся в верхнем регистре.
Также, _ используется перед определением приватных переменных. Таким образом, запись Должна выглядеть так |
|
|||||
Ёлочка хочет сказать что запись
нужно переписать на + а здесь что является конструктором (возможно нужно дождаться ADDED_TO_STAGE ) , а так в целом намного лучше чем раньше в кадрах)) Добавлено через 4 минуты и еще одно private function ifdrag():void { if (! drag_start) { seek1.scrub.addEventListener(Event.ENTER_FRAME,SC); function SC(e:Event):void { seek1.scrub.x = seek1.seekk.x + (this.currentFrame/this.totalFrames)*percent; } } }
__________________
return this... |
|
|||||
Компилятор все равно перенесет этот код в конструктор. Так что проблема тут не в этом.
|
|
|||||
Регистрация: Jun 2013
Адрес: Воронеж
Сообщений: 101
|
Цитата:
|
Часовой пояс GMT +4, время: 15:10. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|