Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Переход к слою (http://www.flasher.ru/forum/showthread.php?t=189150)

Ksenya23 10.12.2012 04:53

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

spirit2 10.12.2012 07:26

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

Ksenya23 10.12.2012 15:48

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

spirit2 10.12.2012 17:13

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

Ksenya23 10.12.2012 17:22

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

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

spirit2 10.12.2012 18:16

Убираете весь код с таймлайна.
В свойствах документа указывает класс 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 кадре
                        }
 
                        //делаем что-нибудь еще
                }
 
        }
}

Может поможет.

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

Ksenya23 10.12.2012 19:12

Счас попробую! Спасибо!!

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

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

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


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

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