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

КорДум 22.11.2015 13:05

Код AS3:

(root as MovieClip).gotoAndStop()

Наверное. Фиг знает, не занимался никогда таким извращением.
Кроме того, я дал Вам правильное решение в данной ситуации даже со ссылками — не игнорируйте, а сделайте сразу как надо.

zackscript 22.11.2015 14:02

А я не игнорирую , я просто толком и не разобрался и не понял тему о "EventDispatcher" .
Я так понимаю, речь идет о пользовательских событиях ? или не так ?

Bletraut 22.11.2015 14:13

Можешь написать в А_Танк вместо
Код AS3:

gotoAndPlay("map")

это
Код AS3:

(root as Main).gotoAndPlay("map");

Твой код уже ничего не испортит.

zackscript 22.11.2015 18:06

Этот код не робит
Цитата:

(root as Main).gotoAndPlay("map");
Пуффф , что то я уже запутался с этим кодом , со дня как запостил проблему не могу разобраться .

Добавлено через 13 минут
Даже если бы метод gotoAndPlay() вызвал бы в конструкторе как в простом примере ниже
оно бы сгенерировала ошибку
Код AS3:

package 
{
        public class A
        {
                public function A()
                {
                        gotoAndPlay(5);
                }
        }
}

Код AS3:

package 
{
        public class B;
        {
                private var a:A;
                public function B()
                {
                        a = new A  ;
                        addChild(a;
                }
        }
}


Bletraut 22.11.2015 18:22

Ты ищешь метку map в мувике с танком, а она у тебя на временной шкале, поэтому ничего не работает.

Добавлено через 2 минуты
Код AS3:

package 
{
        public class B;
        {
                private var b:B;
                public function B()
                {
                        b = new B  ;
                        addChild(b);
                }
        }
}

Это вообще бред, объект не может создать сам себя в самом себе же.

Код AS3:

package 
{
        public class A
        {
                public function A()
                {
                        gotoAndPlay(5);
                }
        }
}

Конечно, будет ошибка, потому что у Object нет метода gotoAndPlay

Добавлено через 11 минут
Код AS3:

((root as Main) as MovieClip).gotoAndPlay("map");

А так работает?

zackscript 22.11.2015 19:51

Bletraut исправил

caseyryan 22.11.2015 20:59

Цитата:

Конечно, будет ошибка, потому что у Object нет метода gotoAndPlay
Object - динамический класс. Ему пофиг есть у него метод gotoAndPlay или нет. Ошибки не будет. Если под видом Object там мувиклип, то этот метод нормально вызовется.

ZackMercury 22.11.2015 21:23

caseyryan, при наследовании "динамичность" теряется.
Ошибка будет, если класс не наследует MovieClip, но в библиотеке связан с мувиклипом.
К тому же, даже в динамическом классе gotoAndPlay() вызовет ошибку из-за скобок, так как gotoAndPlay - null, термин не определён и не имеет свойств.

caseyryan 22.11.2015 22:12

ZackMercury, ты прав. Просто тут нужны поправки, где будет ошибка при вызове метода у Object, а где нет, чтобы у новичка не получалось каши в голове.
Про прямой вызов я что-то подзабыл. Да, со скобками дернуть метод нельзя

zackscript 23.11.2015 12:46

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

[SWF] Main.swf - 10532 байт после декомпрессии
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at A_Tank/Start()[C:\zaсhir\AIR & Flash applications\TankPhoton\A_Tank.as:37]


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

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