![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2012
Сообщений: 57
|
После перехода со второго кадра на третий выдаёт TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at MethodInfo-338() И не хочет со 2-го на 1-й возвращаться, хотя между остальными перекликается. С другими кадрами таких проблем нет. Подскажите, в чем проблема? public function main2() { var var1:Boolean = false; vpered_btn.addEventListener(MouseEvent.CLICK, go_next); nazad_btn.addEventListener(MouseEvent.CLICK, go_prev); vpered_btn.buttonMode = true; nazad_btn.buttonMode = true; function go_next (e:MouseEvent):void { nextFrame(); } function go_prev (e:MouseEvent):void { prevFrame(); } addEventListener(Event.ENTER_FRAME, hi2); function hi2 (e:Event):void { // Здесь код только для 2-го кадра if (currentFrame == 2) { var bounds:Object = {left:-275, right:825}; var currentX:Number = qwe.qw_mc.x; var lastX:Number = qwe.qw_mc.x; var vx:Number = 0; var isDragging:Boolean = false; var offset:Number; qwe.qw_mc.buttonMode = true; var timeline:TimelineLite; addEventListener(Event.ENTER_FRAME, loop); qwe.qw_mc.addEventListener(MouseEvent.MOUSE_DOWN, onDown); addEventListener(MouseEvent.MOUSE_UP, onUp); function loop (e:Event):void { if (isDragging) { lastX = currentX; currentX = mouseX; vx = currentX - lastX; } } function onDown (e:MouseEvent):void { isDragging = true; offset = qwe.qw_mc.mouseX; addEventListener(MouseEvent.MOUSE_MOVE, onMove); } function onMove(e:MouseEvent):void { qwe.qw_mc.x = qwe.mouseX - offset; if (qwe.qw_mc.x <= bounds.left) qwe.qw_mc.x = bounds.left; else if (qwe.qw_mc.x >= bounds.right) qwe.qw_mc.x = bounds.right; e.updateAfterEvent(); } function onUp(e:MouseEvent):void { isDragging = false; removeEventListener(MouseEvent.MOUSE_MOVE, onMove); var position:Number = qwe.qw_mc.x if(position <= 0){ qwe.textfield_txt.text = "Текст 3" var myTween3:TweenLite = new TweenLite(qwe.qw_mc, 2, {x:-275}); }else if(position <= 550 && position >0){ qwe.textfield_txt.text = "Текст 2" var myTween4:TweenLite = new TweenLite(qwe.qw_mc, 2, {x:275}); }else if(position <= 1100 && position >550){ qwe.textfield_txt.text = "Текст 1" var myTween5:TweenLite = new TweenLite(qwe.qw_mc, 2, {x:825}); } } } // Здесь код только для 3-го кадра if (currentFrame == 3) { btn1.addEventListener(MouseEvent.CLICK, e1); btn2.addEventListener(MouseEvent.CLICK, e2); btn3.addEventListener(MouseEvent.CLICK, e3); btn4.addEventListener(MouseEvent.CLICK, e4); btn5.addEventListener(MouseEvent.CLICK, e5); btn6.addEventListener(MouseEvent.CLICK, e6); btn1.buttonMode = true; btn2.buttonMode = true; btn3.buttonMode = true; btn4.buttonMode = true; btn5.buttonMode = true; btn6.buttonMode = true; function e1 (e:MouseEvent):void { eskiz.gotoAndStop(1); } function e2 (e:MouseEvent):void { eskiz.gotoAndStop(2); } function e3 (e:MouseEvent):void { eskiz.gotoAndStop(3); } function e4 (e:MouseEvent):void { eskiz.gotoAndStop(4); } function e5 (e:MouseEvent):void { eskiz.gotoAndStop(5); } function e6 (e:MouseEvent):void { eskiz.gotoAndStop(6); } } Последний раз редактировалось Yulia_V; 15.05.2013 в 16:10. |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 430
|
Вы, на всякий случай, прикрепите к сообщению исходник, может быстрее ответ найдется.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь. |
|
|||||
|
Кадры зло. Очевидно что на код на первом кадре ссылается на объект на втором(или третьем) кадре которого еще нет. Попытайтесь переделать ваш проект так что что бы например те объект которые не нужны были скрыты (visible = false), либо разберитесь как правильно нужно использовать кадры.
|
|
|||||
|
Регистрация: Nov 2010
Сообщений: 430
|
Наведите, пожалуйста, в коде порядок.
У вас все функции располагаются прямо в конструкторе, возможно это и допустимо, но я такого не видел, может опыта мало ![]() Вам код нужно привести примерно к такому виду: /* конструктор */ public function main2() { действия в конструкторе класса } /* это описание чего делает функция firstFunction */ function firstFunction ():void { действия, которые выполняет firstFunction } /* это описание чего делает функция secondFunction */ function secondFunction ():void { действия, которые выполняет secondFunction } /* это описание чего делает функция thirdFunction */ function thirdFunction ():void { действия, которые выполняет thirdFunction } Наведите порядок и тогда, возможно, ошибка уйдет, если нет — найти её будет полегче.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|