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

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

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

Регистрация: Dec 2012
Сообщений: 28
По умолчанию Переход к слою

Здравствуйте. Передо мной стоит задача запрограммировать мультик с помощью actionscript 3.0. По задумке, созданы несколько слоев, в один кадр - сцен, в которые будут добавляться символы для обработки действий над ними. Как новичок, для начала закончила обработку 1-ой сцены, без использования внешнего класса actionscript. А для перехода к следующему кадру, использовала gotoAndPlay(). В результате осуществлялся переход, но предыдущие действия игнорировались. Подскажите пожалуйста, как это осуществляется, какой подход применить или лучше сделать, на этом этапе курсовой работы
вложен скриншот
Миниатюры
Нажмите на изображение для увеличения
Название: ошибка.png
Просмотров: 138
Размер:	240.6 Кб
ID:	28803  

Старый 10.12.2012, 07:26
spirit2 вне форума Посмотреть профиль Отправить личное сообщение для spirit2 Найти все сообщения от spirit2
  № 2  
Ответить с цитированием
spirit2

Регистрация: Dec 2009
Сообщений: 125
Сцена - она одна. А слои - это лишь представление уровней наложения объектов в Adobe Flash.
Где у вас gotoAndPlay() прописан?

Старый 10.12.2012, 15:48
Ksenya23 вне форума Посмотреть профиль Отправить личное сообщение для Ksenya23 Найти все сообщения от Ksenya23
  № 3  
Ответить с цитированием
Ksenya23

Регистрация: Dec 2012
Сообщений: 28
По идее в конце всего кода, был. Неверно? Как обычно поступают? если я хочу создать эффект смены сцен сценария?

Старый 10.12.2012, 17:13
spirit2 вне форума Посмотреть профиль Отправить личное сообщение для spirit2 Найти все сообщения от spirit2
  № 4  
Ответить с цитированием
spirit2

Регистрация: Dec 2009
Сообщений: 125
Я не понимаю, что вы подразумеваете под "эффект смены сцен сценария" =)
По коду на картинке вы создаете экземпляр клипа из библиотеки, добавляете на сцену, и двигаете вниз по энтерфрейму.
Напишите, что вы хотите получить, что делаете и в каком моменте не получается.

Старый 10.12.2012, 17:22
Ksenya23 вне форума Посмотреть профиль Отправить личное сообщение для Ksenya23 Найти все сообщения от Ksenya23
  № 5  
Ответить с цитированием
Ksenya23

Регистрация: Dec 2012
Сообщений: 28
Мне нужно, чтобы этот кусочек кода выполнился; затем удалились объекты со сцены, без игнорирования кода, и к новым добавленным объектам прописать другие строчки кода..такое возможно?)

Добавлено через 26 минут
помогите кто-нибудь новичку..встал на грабли(( курсовая горит!

Старый 10.12.2012, 18:16
spirit2 вне форума Посмотреть профиль Отправить личное сообщение для spirit2 Найти все сообщения от spirit2
  № 6  
Ответить с цитированием
spirit2

Регистрация: Dec 2009
Сообщений: 125
Убираете весь код с таймлайна.
В свойствах документа указывает класс Main.
Создаете *.as файл с именем Main, там же где ваш *.fla

Код AS3:
package {
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite {
		private var _myClip:*;
 
		public function Main():void {
			if (stage) {
				init();
			} else {
				addEventListener(Event.ADDED_TO_STAGE, init);
			}
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			_myClip = new MyClip();
			addChild(_myClip);
			_myClip.x = 40;
 
			addEventListener(Event.ENTER_FRAME, moveDowm);
		}
 
		private function moveDowm(e:Event):void {
			_myClip.y += 0.5;
 
			//проверяем когда нам надоест движение и удаляем
			if (_myClip.y > 300) {
				removeEventListener(Event.ENTER_FRAME, moveDowm);
				removeChild(_myClip);
				_myClip = null;
 
				//допустим показываем другой клип из библиотеки, который содержит анимацию  на 100 кадров
				somethingElse();
			}
		}
 
		private function somethingElse():void {
			_myClip = new MyAnotherClip();
			addChild(_myClip);
			_myClip.addEventListener(Event.ENTER_FRAME, theEnd);
		}
 
		private function theEnd(e:Event):void {
			if(_myClip.currentFrame == 100){
				_myClip.removeEventListener(Event.ENTER_FRAME, theEnd);
				_myClip.gotoAndStop(100); //останавливаем на 100 кадре
			}
 
			//делаем что-нибудь еще
		}
 
	}
}
Может поможет.

С кодом на кадрах я вам не помогу, ибо не в курсе нюансов.
Вроде обычно создают отдельный "слой" и в первом кадре пишут весь код.

Старый 10.12.2012, 19:12
Ksenya23 вне форума Посмотреть профиль Отправить личное сообщение для Ksenya23 Найти все сообщения от Ksenya23
  № 7  
Ответить с цитированием
Ksenya23

Регистрация: Dec 2012
Сообщений: 28
Счас попробую! Спасибо!!

Добавлено через 51 минуту
Я именно так и делала, по видеоуроку(код на кадрах)

Добавлено через 1 час 47 минут
Выдает ошибки о несуществующем свойстве:[IMG]C:\Users\Ксюша\Desktop\mult\ошибка2[/IMG]

Добавлено через 2 часа 11 минут
Все работает, болльшое человеческое спасибо!

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

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

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


 


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


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