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

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

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

Регистрация: Apr 2014
Сообщений: 5
По умолчанию как загрузить следующий уровень в Flash

Здравствуйте, меня интересует вопрос каким способом можно загрузить второй уровень в игре это второй кадр во Flash с помощью Action Script 3.0 заранее спасибо Вот мой код:
Код AS3:
fscommand("fullscreen", "true");
import flash.events.Event;
import flash.events.KeyboardEvent;
 
var skorost = 0.1;
var uskorenie = 0.11;
 
var cars:Array = [car1,car2];
 
stage.addEventListener(Event.ENTER_FRAME, a);
stage.addEventListener(KeyboardEvent.KEY_UP, f_up);
 
function f_up(e:KeyboardEvent)
{
	if (e.keyCode ==40)
	{
		car3.y +=  10;
	}
	if (e.keyCode ==38)
	{
		car3.y -=  10;
	}
}
function a(E:Event)
{
	skorost +=  uskorenie;
	if (skorost>4)
	{
		skorost = 4;
	}
 
	var i:int = cars.length;
	while (i--)
	{
		var car:MovieClip = cars[i];
		car.x -=  skorost;
		if (car.x <= 0)
		{
			car.x = 960;
		}
		if (car.hitTestObject(car3))
		{
			removeChild(car);
			cars.splice(i, 1);
		}
	}
 
	car3.x +=  skorost;
	if (car3.x > 960)
	{
		car3.x = 0;
	}
}


Последний раз редактировалось Segeja; 04.04.2014 в 09:45.
Старый 04.04.2014, 17:01
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 2  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Если Вам нужно перейти на второй кадр, то в коде первого, Вам нужно инициировать вызов окончания уровня и в этом методе написать - gotoAndPlay(2);

Старый 05.04.2014, 08:31
Segeja вне форума Посмотреть профиль Отправить личное сообщение для Segeja Найти все сообщения от Segeja
  № 3  
Ответить с цитированием
Segeja

Регистрация: Apr 2014
Сообщений: 5
Akopalipsis подскажите пожалуйста, а как инициировать вызов окончания уровня
приведите пример кода пожалуйста, заранее спасибо

Добавлено через 3 часа 38 минут
Akopalipsis оказалось что у меня клавиши клавиатуры не работают не могу перемещать машинку car3 вверх и вниз по игрек, я сделал меню попадаю на кадр с GAME вот его код это уровень 1 всё работает, кроме одного клавиатуры подскажите пожалуйста как изменить код игры заранее спасибо
Код AS3:
stop();
Menu3_btn.addEventListener(MouseEvent.CLICK,OnClickMenu3);
 
function OnClickMenu3(e:MouseEvent):void
{
	gotoAndPlay("MENU");
}
stop();
Level2_btn.addEventListener(MouseEvent.CLICK,OnClickLevel2);
 
function OnClickLevel2(e:MouseEvent):void
{
	gotoAndPlay("LEVEL");
}
stop();
import flash.events.Event;
import flash.events.KeyboardEvent;
 
var skorost = 0.1;
var uskorenie = 0.11;
 
var cars:Array = [car1,car2];
 
stage.addEventListener(Event.ENTER_FRAME, a);
stage.addEventListener(KeyboardEvent.KEY_UP, f_up);
 
function f_up(e:KeyboardEvent)
{
	if (e.keyCode == 39)
	{
		car3.y +=  20;
	}
	if (e.keyCode == 37)
	{
		car3.y -=  20;
	}
}
function a(E:Event)
{
	skorost +=  uskorenie;
	if (skorost>4)
	{
		skorost = 4;
	}
 
	var i:int = cars.length;
	while (i--)
	{
		var car:MovieClip = cars[i];
		car.x -=  skorost;
		if (car.x <= 0)
		{
			car.x = 960;
		}
		if (car.hitTestObject(car3))
		{
			removeChild(car);
			cars.splice(i, 1);
		}
	}
 
	car3.x +=  skorost;
	if (car3.x > 960)
	{
		car3.x = 0;
	}
}
Добавлено через 6 часов 14 минут
Akopalipsis вот такой баг появляется при нажатии на кнопку меню, которая возвращает в главное меню, подскажите пожалуйста как избавится от этого бага, заранее спасибо
Код:
TypeError: Error #2007: Параметр hitTestObject не должен быть равен нулю.
	at flash.display::DisplayObject/_hitTest()
	at flash.display::DisplayObject/hitTestObject()
	at Game_0012_fla::MainTimeline/a()
Добавлено через 12 часов 42 минуты
Я написал вот такой код чтобы проверит клавиатуру вставил в первый кадр с меню
Код AS3:
trace(e);
отслеживает клавиатуру, а вот в кадре с первым уровнем не запускается
Код AS3:
trace(e);
вообще, подскажите пожалуйста что нужно во Flash сделать, заранее спасибо Вот код:
Код AS3:
import flash.events.KeyboardEvent;
 
stop();
stage.addEventListener(KeyboardEvent.KEY_DOWN, f_down);
 
function f_down (e:KeyboardEvent) {
	trace(e);
}


Последний раз редактировалось Segeja; 05.04.2014 в 19:33.
Старый 05.04.2014, 21:39
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Это не баг, а ошибка, допущенная Вами. И подсказать я тоже не могу, так-как в кадрах не понимаю...
Могу только сказать, что у методов-функций есть зона видимости. Определяется она фигурными скобками {}.
У Вас в обработчике событий, который называется f_down, есть один обязательный параметр e ( event ) с типом KeyboardEvent. И вот обратиться к этому параметру е, можно только в зоне видимости метода, то есть только между скобками.
Код AS3:
function f_down (e:KeyboardEvent) {
	trace(e);
}
В этом коде Вы обращаетесь правильно, но если сделать как ниже, то работать не будет.
Код AS3:
function f_down (e:KeyboardEvent) {
 
}
trace(e);
Может Вы так написали, а может у Вас в кадре с уровнем нет слушателя событий... я не знаю.
Покажите весь код из кадра с уровнем.

Старый 06.04.2014, 08:31
Segeja вне форума Посмотреть профиль Отправить личное сообщение для Segeja Найти все сообщения от Segeja
  № 5  
Ответить с цитированием
Segeja

Регистрация: Apr 2014
Сообщений: 5
Akopalipsis вот весь код из кадра с уровнем
Код AS3:
stop();
Menu3_btn.addEventListener(MouseEvent.CLICK,OnClickMenu3);
 
function OnClickMenu3(e:MouseEvent):void
{
	gotoAndPlay("MENU");
}
stop();
Level2_btn.addEventListener(MouseEvent.CLICK,OnClickLevel2);
 
function OnClickLevel2(e:MouseEvent):void
{
	gotoAndPlay("LEVEL");
}
stop();
import flash.events.Event;
import flash.events.KeyboardEvent;
 
var skorost = 0.1;
var uskorenie = 0.11;
 
var cars:Array = [car1,car2];
 
stage.addEventListener(Event.ENTER_FRAME, a);
stage.addEventListener(KeyboardEvent.KEY_DOWN, f_down);
 
function f_down (e:KeyboardEvent) {
	if (e.keyCode == 39)
	{
		car3.y +=  20;
	}
	if (e.keyCode == 37)
	{
		car3.y -=  20;
	}
}
function a(E:Event)
{
	skorost +=  uskorenie;
	if (skorost>4)
	{
		skorost = 4;
	}
 
	var i:int = cars.length;
	while (i--)
	{
		var car:MovieClip = cars[i];
		car.x -=  skorost;
		if (car.x <= 0)
		{
			car.x = 960;
		}
		if (car.hitTestObject(car3))
		{
			removeChild(car);
			cars.splice(i, 1);
		}
	}
 
	car3.x +=  skorost;
	if (car3.x > 960)
	{
		car3.x = 0;
	}
}
Добавлено через 18 минут
это ссылка на уровень два
Код AS3:
gotoAndPlay("LEVEL");


Последний раз редактировалось Segeja; 06.04.2014 в 08:51.
Старый 06.04.2014, 20:38
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 6  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Если я правильно понял, то этот код первого уровня и нажав на кнопку фокус смещается на второй кадр, который так же является и следующим уровнем. И в этот момент вылезает ошибка... Так?
Тогда покажите весь код следующего уровня. Потому что в ошибке говорится про какой-то метод _hitTest(),
которого я не вижу.

Старый 06.04.2014, 21:34
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 7  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Потому что в ошибке говорится про какой-то метод _hitTest(),
которого я не вижу.
------
Цитата:
TypeError: Error #2007: Параметр hitTestObject не должен быть равен нулю.
at flash.display::DisplayObject/_hitTest()
at flash.display::DisplayObject/hitTestObject()
at Game_0012_fla::MainTimeline/a()
__________________
There is no thing in this world that is not simple.

Старый 06.04.2014, 22:48
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 8  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
То есть, вот этот подчеркнутый _hitTest() программный метод?

Старый 07.04.2014, 08:08
Segeja вне форума Посмотреть профиль Отправить личное сообщение для Segeja Найти все сообщения от Segeja
  № 9  
Ответить с цитированием
Segeja

Регистрация: Apr 2014
Сообщений: 5
Akopalipsis не _hitTest() а в коде у меня есть hitTestObject() ошибка случается когда с первого уровня уходишь на второй или уходишь в главное меню c первого уровня, вот код второго уровня:
Код AS3:
stop();
Menu4_btn.addEventListener(MouseEvent.CLICK,OnClickMenu4);
 
function OnClickMenu4(e:MouseEvent):void
{
	gotoAndPlay("MENU");
}
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.display.*;
 
var skorostz = 0.1;
var uskoreniez = 0.11;
 
var vazs:Array = [vaz1,vaz2];
 
stage.addEventListener(Event.ENTER_FRAME, b);
stage.addEventListener(KeyboardEvent.KEY_DOWN, f_up);
 
function f_up (e:KeyboardEvent) {
	if (e.keyCode == 39)
	{
		vaz3.y +=  20;
	}
	if (e.keyCode == 37)
	{
		vaz3.y -=  20;
	}
}
function b(E:Event)
{
	skorostz +=  uskoreniez;
	if (skorostz>4)
	{
		skorostz = 4;
	}
 
 
	var i:int = vazs.length;
	while (i--)
	{
		var vaz:MovieClip = vazs[i];
		vaz.x -=  skorostz;
		if (vaz.x <= 0)
		{
			vaz.x = 960;
		}
		if (vaz.hitTestObject(vaz3))
		{
			removeChild(vaz);
			vazs.splice(i, 1);
		}
	}
 
	vaz3.x +=  skorostz;
	if (vaz3.x > 960)
	{
		vaz3.x = 0;
	}
}
Добавлено через 14 минут
вот я думаю что из-за этого у меня и ошибка появляется
Код AS3:
if (vaz.hitTestObject(vaz3))


Последний раз редактировалось Segeja; 07.04.2014 в 08:27.
Старый 10.04.2014, 00:55
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 10  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Тут дело в том, что в кадрах я не понимаю и могу предложить Вам лишь потрейсить код.
Посмотрите чему равны значения объектов, которые взаимосвязанные с методом hitTestObject.

Добавлено через 58 часов 12 минут
Вашу тему закрыли, по этому напишу здесь - выложите на форум Ваш проект, я посмотрю, может смогу помочь. Только заливать не куда-то, а на форум прикрепить к сообщению. Если графики слишком много
и залить не получится, то удалите её и замените на квадратики.

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

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

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


 


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


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