Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.05.2013, 15:07
Yulia_V вне форума Посмотреть профиль Отправить личное сообщение для Yulia_V Найти все сообщения от Yulia_V
  № 1  
Ответить с цитированием
Yulia_V

Регистрация: Sep 2012
Сообщений: 57
По умолчанию Проблема переключения между кадрами.

После перехода со второго кадра на третий выдаёт TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at MethodInfo-338()
И не хочет со 2-го на 1-й возвращаться, хотя между остальными перекликается.
С другими кадрами таких проблем нет.
Подскажите, в чем проблема?
Код AS3:
		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);
	}
	}
Вот исходники:
Вложения
Тип файла: 7z для конференции.7z (4.82 Мб, 214 просмотров)


Последний раз редактировалось Yulia_V; 15.05.2013 в 16:10.
Старый 15.05.2013, 15:24
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 2  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Вы, на всякий случай, прикрепите к сообщению исходник, может быстрее ответ найдется.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Старый 15.05.2013, 18:38
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 3  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 567
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Кадры зло. Очевидно что на код на первом кадре ссылается на объект на втором(или третьем) кадре которого еще нет. Попытайтесь переделать ваш проект так что что бы например те объект которые не нужны были скрыты (visible = false), либо разберитесь как правильно нужно использовать кадры.

Старый 16.05.2013, 10:49
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 4  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Наведите, пожалуйста, в коде порядок.
У вас все функции располагаются прямо в конструкторе, возможно это и допустимо, но я такого не видел, может опыта мало

Вам код нужно привести примерно к такому виду:
Код AS3:
/* конструктор */
public function main2() 
{
      действия в конструкторе класса
}
 
/* это описание чего делает функция firstFunction */
function firstFunction ():void
{
     действия, которые выполняет firstFunction
}
 
/* это описание чего делает функция secondFunction */
function secondFunction ():void
{
     действия, которые выполняет secondFunction
}
 
/* это описание чего делает функция thirdFunction */
function thirdFunction ():void
{
     действия, которые выполняет thirdFunction
}
У вас же выглядит код примерно так (разобраться что к чему сложновато):
Код AS3:
		public function main2() {
function firstFunction ():void
{
                какие-то действия
	function secondFunction ():void{
     какие-то действия
function thirdFunction ():void{
какие-тодействия
}
 
		}
	}
Наведите порядок и тогда, возможно, ошибка уйдет, если нет — найти её будет полегче.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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