Страница 4 из 5

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 11:52
agni
psix55 писал(а):

Код: Выделить всё

gotoAndStop (2);//где 2 номер кадра!
или или что-нибудь другое!
подскажите синтаксис, если необходимо "передвинуть" root

текстовое поле "pole" лежит в мувиклипе, этот мувиклип лежит во втором кадре
если приложение добавлено - хочу передвинуть основную монтажную линейку (root) в третий кадр

следующий код работает:
 

Код: Выделить всё

package {    import flash.display.*;     public class isAppUser extends MovieClip    {        public function isAppUser():void        {            var params:Object = LoaderInfo(root.loaderInfo).parameters;            var is_app_user = (params['is_app_user']) ? parseInt(params['is_app_user']) : 0;            if (is_app_user == 1)            {                pole.text = 'Спасибо, что добавили приложение';             }            else            {                pole.text = 'Пожалуйста, добавьте приложение на свою страницу';            }        }    }}
если в самом мувиклипе с текстовым полем "pole" сделать несколько кадров, то следующий код тоже работает:
 

Код: Выделить всё

package {    import flash.display.*;     public class isAppUser extends MovieClip    {        public function isAppUser():void        {            var params:Object = LoaderInfo(root.loaderInfo).parameters;            var is_app_user = (params['is_app_user']) ? parseInt(params['is_app_user']) : 0;            if (is_app_user == 1)            {                this.gotoAndStop(3);            }            else            {                pole.text = 'Пожалуйста, добавьте приложение на свою страницу';            }        }    }}
не получается из этого мувиклипа обратиться к основной монтажной линейке, то есть следующий код не работает:
 

Код: Выделить всё

package {    import flash.display.*;     public class isAppUser extends MovieClip    {        public function isAppUser():void        {            var params:Object = LoaderInfo(root.loaderInfo).parameters;            var is_app_user = (params['is_app_user']) ? parseInt(params['is_app_user']) : 0;            if (is_app_user == 1)            {                parent.gotoAndStop(3); // также не работает: root.gotoAndStop(3);            }            else            {                pole.text = 'Пожалуйста, добавьте приложение на свою страницу';            }        }    }}
как обратится к руту, чтобы сдвинуть его в другой кадр?

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 12:28
paduchin
А какие ошибки то выдаёт ?

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 12:42
agni
на
root.gotoAndStop(3);
пишет
1061: Call to a possibly undefined method gotoAndStop through a reference with static type flash.display:DisplayObject.
вызов неопределенного метода

предполагаю, что для AS3 надо по-другому вызывать, но как - пока ответ не нашел

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 12:46
agni
-------------------------------------- не то

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 14:44
paduchin
Попробуй импортировать свой мувиклип в класc
Должно помочь

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 15:47
agni
у меня поведение мувиклипа определяется соответствующим классом
в какой класс импортировать мувиклип?

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 18:20
paduchin
Как в какой ?
В этот, в котором у тебя и возникают ошибки
А лучше пиши в кадре, и тогда ничего импортировать и не надо будет

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 18:59
bodnar
paduchin писал(а):А лучше пиши в кадре, и тогда ничего импортировать и не надо будет
Это далеко не лучше, да и преимущество от такого метода вряд ли можно назвать преимуществом. Импорт занимает несколько строк кода, но избавившись от них вы теряете абсолютно все чем вас награждает ООП.

По существу. Если хочешь перейти на другой кадр основной линейки, то применяешь gotoAndStop() к главному классу (имя которого вписывал при создании fla файла). Ругается же потому что методом gotoAndStop() обладают только мувиклипы и все кто от него наследуются.

А если еще более по существу, то я в последнее время делаю так: arrayOfFrame это массив который содержит мувилипы-контейнеры (считай что кадры). Мне нужен первый, я добавляю на сцену arrayOfFrame[1], и прицепляю все что нужно отобразить к нему. Нужен второй удаляю первый(а вместе с ним и все что к нему прикреплено) и добавляю второй. А если вдруг у меня должно быть меню, которое есть на каждом кадре все просто, добавляю вне контейнеров. Наверняка способ не безупречен и скоро найдутся в нем изъяны...

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 20:15
paduchin
Мне просто удобнее писать в кадрах :)
Привык. Пробовал писать в классах, но показалось неудобным

Re: Чтобы приложение нужно было добавить на страницу

Добавлено: 06 июл 2010, 20:36
agni
bodnar писал(а):По существу. Если хочешь перейти на другой кадр основной линейки, то применяешь gotoAndStop() к главному классу (имя которого вписывал при создании fla файла). Ругается же потому что методом gotoAndStop() обладают только мувиклипы и все кто от него наследуются.
я думал мувиклип root создаётся "по умолчанию", если кадры монтажного стола созданы вручную - как мувиклип создать заново, если он уже создан?
Главный класс не прописывал , классы указываю для мувиклипов, которые размещаю на сцене, прописываю каждый класс в отдельном файле. Совместить оба способа не получалось.
bodnar писал(а):А если еще более по существу, то я в последнее время делаю так: arrayOfFrame это массив который содержит мувилипы-контейнеры (считай что кадры). Мне нужен первый, я добавляю на сцену arrayOfFrame[1], и прицепляю все что нужно отобразить к нему. Нужен второй удаляю первый(а вместе с ним и все что к нему прикреплено) и добавляю второй. А если вдруг у меня должно быть меню, которое есть на каждом кадре все просто, добавляю вне контейнеров. Наверняка способ не безупречен и скоро найдутся в нем изъяны...
поясните, пожалуйста, кодом
arrayOfFrame - его надо создавать или он уже есть, осталось только к нему обратиться?