Форум 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=211812)

callme 23.11.2015 13:13

Попробуйте так

Код AS3:

package 
{
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.desktop.NativeApplication;
    import flash.events.MouseEvent;
    import flash.display.SimpleButton;
    import flash.events.Event;
    import flash.display.Sprite;
    import A_Tank;
    public class Main extends MovieClip
    {
        private var Start_Game:A_Tank;
        public function Main()
        {
            Start_Game = new A_Tank ()  ;
 
            // изменения
            Start_Game.callback = mimimi;
            // изменения
 
            addChild(Start_Game);
        }
 
        // изменения
        public function mimimi()
        {
            gotoAndStop("map");
        }
        // изменения
    }
}

Код AS3:

package 
{
    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.desktop.NativeApplication;
    import flash.events.MouseEvent;
    import flash.display.SimpleButton;
    import flash.events.Event;
 
    public class A_Tank extends MovieClip
    {
        // изменения
        public var callback:Function;
        // изменения
 
        private var Play_game:play_game;
        private var Exit_game:exit_game;
        internal var tank:Tank;
        private var Butt_right:butt_right;
 
        public function A_Tank()
        {
 
 
            Play_game = new play_game  ;
            Play_game.addEventListener(MouseEvent.CLICK,Start);
            Play_game.x = 240;
            Play_game.y = 350;
            addChild(Play_game);
            Exit_game = new exit_game  ;
            Exit_game.addEventListener(MouseEvent.CLICK,Exiting);
            Exit_game.x = 240;
            Exit_game.y = 470;
            addChild(Exit_game);
 
        }
 
        public function Start(event:MouseEvent)
        {
            // изменения
            callback();
            // изменения
 
            Butt_right = new butt_right  ;
            Butt_right.x = 160;
            Butt_right.y = 730;
            addChild(Butt_right);
            removeChild(Play_game);
            removeChild(Exit_game);
            tank = new Tank  ;
            tank.x = 70;
            tank.y = 75;
            addChild(tank);
        }
        public function Exiting(event:MouseEvent)
        {
            NativeApplication.nativeApplication.exit();
        }
    }
}


Bletraut 23.11.2015 19:14

Цитата:

Сообщение от zackscript (Сообщение 1189191)
Странно конечно, но если бы Класс A_Tank был бы главным классом без Мain вообще(не создавая объект A_Tank) , то сценарий робит корректно.
Конечно я мог бы вешать событие на кнопку в Main а если таких кнопок много , как то не охотно заполонять класс.
Bletraut то же не работает:

А если в А_Танк в функции Start дописать то что выведет?
Код AS3:

trace(root);
trace(this.root);
trace(parent);
trace(parent.root);
trace(stage.root);

можно попробовать заменить код на
Код AS3:

if(root != null) ((root as Main) as MovieClip).gotoAndStop("map");

либо на
Код AS3:

(parent as MovieClip).gotoAndStop("map");


zackscript 25.11.2015 17:10

Ясно , пойду искать альтернативу !

callme 25.11.2015 17:17

чем мой код не подошел?

Bletraut 25.11.2015 17:31

Цитата:

Ясно , пойду искать альтернативу !
Альтернативы нет, нужно код правильно писать.

Цитата:

чем мой код не подошел?
Тем, что в нём разбираться надо.

zackscript 25.11.2015 17:59

Колми, тем что код не рабочий.
Блетрот код Колми понятный для меня .

callme 25.11.2015 18:05

Если выложите исходники (.fla и .as) на форум, посмотрю почему не работает.

zackscript 25.11.2015 18:28

Вложений: 1
Вот пожалуйста держите .

callme 25.11.2015 18:45

Поменял в Main.as
Код AS3:

stage.addChild(Start_Game);

на
Код AS3:

addChild(Start_Game);

и у меня работает

zackscript 25.11.2015 19:14

огромнейшее спасибо Вам Коллми.
Вопрос решён.


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

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