Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Перейти из swf, на определенный кадр другого swf (http://www.flasher.ru/forum/showthread.php?t=152727)

bars_ue 22.03.2011 14:37

Перейти из swf, на определенный кадр другого swf
 
Вопрос такой: есть два файла index.sfw и centr.sfw
При клике на кнопку (button) внутри index.swf подгружается centr.sfw
Реализованно это так:

Код AS3:

button.addEventListener(MouseEvent.CLICK, page1content);
function page1content(myevent:MouseEvent):void {
var myURL:URLRequest=new URLRequest("centr.swf");
myLoader.load(myURL);
addChild(myLoader);

Вопрос: как сделать так, чтоб подгружался определнный кадр centr.swf? Или еще лучше, метка кадра?

in4core 22.03.2011 15:00

Код нужно офромлять тегами <as3> </as3> при создании темы есть такой тег. так же и при написании

.
Цитата:

Вопрос: как сделать так, чтоб подгружался определнный кадр centr.swf? Или еще лучше, метка кадра?
Ответ - никак. Кадр подгрузить нельзя, можно перейти на него после полной загрузки файла.

Код AS3:

button.addEventListener(MouseEvent.CLICK, page1content);
function page1content(myevent:MouseEvent):void {
var myURL:URLRequest=new URLRequest("centr.swf");
myLoader.load(myURL);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , frame)
addChild(myLoader);
}
function frame(e:Event) {
 
 (e.currentTarget.content as MovieClip).gotoAndStop('metka')


bars_ue 22.03.2011 15:14

in4core, спасибо все заработало, отлично!

Вопрос еще такой: возможно ли упростить этот код:

Код AS3:

button.addEventListener(MouseEvent.CLICK, page1content);
function page1content(myevent:MouseEvent):void {
var myURL:URLRequest=new URLRequest("centr.swf");
myLoader.load(myURL);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , frame)
addChild(myLoader);
}
function frame(e:Event) {
 
 (e.currentTarget.content as MovieClip).gotoAndStop('metka')

Делов том, что у меня много кнопок (порядка 20 на странице, а страниц около 50). Итого получается 1000 кнопок. Для каждой соответственно нужно прописывать уникальный номер определения функции page1...1000content
Что очень затрудняет работу. Есть ли код, без уникальных номеров функции?

bars_ue 22.03.2011 15:21

Спасибо, все отлично заработало! то что надо)

Вопрос еще такой: если ли код, который позволяет так же подгружать внешний swf, но без этого геморроя в виде определения функции page1..100content. Дело в том, что у меня около 100 кнопок, и для каждой писать свой уникальный номер - брррр.

in4core 22.03.2011 17:48

Да можно. Можно создать одну функцию и передавать туда параметр URL . Можете сделать например так

Код AS3:

function page1content(myevent:MouseEvent):void {
var myURL:URLRequest=new URLRequest(myevent.currentTarget.name);
myLoader.load(myURL);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , frame)
addChild(myLoader);
}

А при определении кнопки делать myButton.name = 'someUrl.swf' Как вариант ))) Можно хмл подключить. Да что угодно. вариантов тьма.

bars_ue 22.03.2011 18:50

Отлично, спасибо!

Blizzart 21.02.2012 15:44

Я попробовал по разному, но кнопку сделать не получилось (
Код AS3:

var loadtitle:Loader = new Loader()
var reqtitle = new URLRequest("title.swf");
time=setTimeout(function loadtit(){
/*loadtitle.contentLoaderInfo.addEventListener(Event.COMPLETE , frame)*/
loadtitle.load(reqtitle);
addChildAt(loadtitle, 0);
                                                    },500);
 
lost.addEventListener(MouseEvent.CLICK, frame, false, 0, true );
function frame(e:MouseEvent) {
 (loadtitle.content as MovieClip).gotoAndStop(701);
 }

#1009: Не удается вызвать свойство или метод со ссылкой на объект "null"

всё понял! и исправил

47_GrAnd_74 24.07.2014 16:40

Чтобы не плодить темы, спрошу тут.
У меня подгружается swf мультик в основной проект, как только он проиграется нужно загрузить второй, после второго - третий. Подскажите как это лучше реализовать или хотя бы как определить что проигрался последний фрейм в мультике?

Nooob 24.07.2014 18:38

Цитата:

Сообщение от in4core (Сообщение 982799)
Ответ - никак. Кадр подгрузить нельзя, можно перейти на него после полной загрузки файла.

Не совсем так, первый кадр доступен после события Event.INIT, остальные по порядку будут доступны в процессе загрузки ProgressEvent.PROGRESS (смотреть сколько уже доступно через Loader#.content.framesLoaded).
Все кадры доступны после события Event.COMPLETE.
Это особенно актуально для флеш мультиков, когда можно уже показывать загруженные кадры по порядку не дождавшись полной загрузки всего ролика.

dimarik 24.07.2014 22:27

47_GrAnd_74, здесь уже нечего стесняться, топ достаточно старый. Создайте новую тему.
Nooob, поздравляю! Вы ответили на некроответ некропоста. Интересно, а in4core сейчас знает о том, чего не знал три года назад?

Nooob 25.07.2014 13:32

Цитата:

Сообщение от dimarik (Сообщение 1169566)
Nooob, поздравляю! Вы ответили на некроответ некропоста. Интересно, а in4core сейчас знает о том, чего не знал три года назад?

Хаха, не посмотрел :)


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

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