Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   задать координаты загруженному swf клипу (http://www.flasher.ru/forum/showthread.php?t=140860)

kvitka007 09.06.2010 16:53

задать координаты загруженному swf клипу
 
если я использовала
loadMovieNum("egqe.swf", 1);
при подгрузке нового клипа (страницы сайта) в основной клип
подскажите пожалуйста как изменить его координаты и расположение в 12 сверху слое
буду очень благодарна!!!

lexa2000lexa 09.06.2010 17:29

вам нужно в хелпе прочесть про классм MovieClipLoader и его обработчики onLoadComplete и onLoadInit.

djken 09.06.2010 17:57

Используйте для подгрузки внешнего файла MovieClipLoader, вместо loadMovieNum.
Файл подгружайте в какой нибудь пустой мувик createEmptyMovieClip, в его параметре сразу и указываете в какой слой создать пустой мувик.
Координаты меняются с помощью свойства _x и _y.
Код AS1/AS2:

this.createEmptyMovieClip("mc", 12);
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadInit = function(target:MovieClip):Void {
    target._x=30;
    target._y=70;
}
mcLoader.addListener(listener);
mcLoader.loadClip("egge.swf", mc);


kvitka007 09.06.2010 18:03

у меня загрузилось в нужный слой и координаты
но действия в мувике не выполняются (переходы по временной шкале этого мувика)
ПОМОГИТЕ ПОЖАЛУЙСТА!

Добавлено через 3 минуты
может надо менять что то в хтмл коде?
я уже не знаю что и делать

djken 09.06.2010 18:13

HTML тут не при чем.
Может у Вас в подгружаемом egge.swf в 1-м кадре прописано stop() ?
Если да, то попробуйте убрать

Или выложите исходник. Я сейчас посмотрю.

kvitka007 09.06.2010 18:37

вот сделала для примера,тут такая же ошибка
http://***********/18093759 - fla файл основного клипа, куда загружаю
http://***********/18093801 - fla файл дополнительного загружаемого
вот также:
http://***********/18093816 swf основной

http://***********/18093834 swf дополнительный

суть в том что в дополнительном ролике я хотела переход между фотографиями, отдельно он работает, а когда загржаешь в основной, то просто первая фотография, а дальше никак не переключиться
подскажите, буду признательна

djken 09.06.2010 19:17

Я кстати тоже фанат Майкла Джексона ))))))))) еще с далекого детства =)

Ваша ошибка заключается в том, что Вы используете в кнопке _root. Т.е. Вы ссылаетесь на корневой уровень. Сам файл egge.swf нормально работает. Но когда он подгружен в другой мувик, то этот _root уже обращается не к корневому уровню egge.swf, а к корню мувика, который подгружает его =) Грубо говоря - _root - это всегда самый верхний уровень.

В общем просто на кнопке СМОТРЕТЬ СЛЕДУЮЩУЮ ФОТКУ вместо
Код AS1/AS2:

on (release) {
 
                //Movieclip GotoAndPlay Behavior
                _root.gotoAndPlay("nextf");
                //End Behavior
 
        }

должно быть
Код AS1/AS2:

on (release) {
 
                //Movieclip GotoAndPlay Behavior
                gotoAndPlay("nextf");
                //End Behavior
 
        }

И соответственно на кнопке СМОТРЕТЬ ПРЕДЫДУЩЕЕ вместо
Код AS1/AS2:

on (release) {
 
                //Movieclip GotoAndPlay Behavior
                _root.gotoAndPlay("firstf");
                //End Behavior
 
        }

должно быть
Код AS1/AS2:

on (release) {
 
                //Movieclip GotoAndPlay Behavior
                gotoAndPlay("firstf");
                //End Behavior
 
        }


kvitka007 09.06.2010 19:29

аааааааааааааааааааа!!!!!!!!!!!!!!!!!! работает!!!!!!!!!!!!!!! аааа!!! СПАСИБО ВАМ ОГРОМНОЕ!!!!вы мне очень помогли!!!! я два дня у всех подряд спрашивала!!! уаааа!!!!! ееее!!!ВЫ МОЛОДЕЦ! УДАЧИ ВАМ ВО ВСЕХ НАЧИНАНИЯХ И НЕ ТОЛЬКО НАЧИНАНИЯХ!! ВО ВСЕМ!! Спасибо ещё раз!
(еее! майкл джексон!)

Добавлено через 8 минут
а loader плохо использовать вместо этого mc?)

djken 09.06.2010 19:51

имеешь ввиду имя мувика "loader" вместо "mc" ? Можно:
Код AS1/AS2:

this.createEmptyMovieClip("loader", 12);
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadInit = function(target:MovieClip):Void {
    target._x=30;
    target._y=70;
}
mcLoader.addListener(listener);
mcLoader.loadClip("egge.swf", loader);


kvitka007 09.06.2010 20:21

не
обычный компонент лоадер, и там без всякого кода загржаешь swf?

djken 10.06.2010 13:16

Да - можно. А потом в ComponentInspector этого Лоадера в contentPath пишем egge.swf. В scaleContent ставим false - это чтобы подгруженный мувик не поменял свои размеры.

Но зачем Вам какой то компонент лоадер?.. С помощью MovieClipLoader все это можно сделать - тем более я Вам уже все объяснил и показал на примере ))
Еще добавляете нового слушателя событий listener.onLoadProgress и с помощью него отображаете процент загрузки.
В listener.onLoadStart - мы создаем динамическое текстовое поле, в котором будем отображать процент загрузки.
С помощью listener.onLoadComplete отслеживаете когда загрузка закончится, чтобы, например, удалить этот прелоадер.

Код AS1/AS2:

this.createEmptyMovieClip("mc", 12);
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadInit = function(target:MovieClip):Void {
    target._x=30;
    target._y=70;
}
listener.onLoadStart = function() {
        createTextField("my_txt", getNextHighestDepth(), Stage.width/2-50, Stage.height/2-15, 100, 30);
        my_txt.type="dynamic";
        my_txt.text="загружено 0%";
        }
listener.onLoadComplete = function() {
        removeMovieClip(my_txt);
}
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
    var percent=Math.floor(bytesLoaded/bytesTotal*100);
        my_txt.text="загружено "+percent+"%";
}
mcLoader.addListener(listener);
mcLoader.loadClip("egge.swf", mc);


iNils 10.06.2010 13:27

Код:

var listener:Object = new Object();
Это лишние. Вешать надо на this

djken 10.06.2010 14:21

Цитата:

Сообщение от iNils (Сообщение 914451)
Это лишние. Вешать надо на this

Согласен.
Насчет this - а где тут на него повесишь?? Насколько помню из практики, в листинерах this не пашет - обычно лазейку делаю через target... :confused:

iNils 10.06.2010 14:50

Я про
Код AS1/AS2:

this.onLoadInit = function(target:MovieClip):Void {
    target._x=30;
    target._y=70;
}


dimarik 10.06.2010 14:55

Как вариант
Код AS1/AS2:

mcLoader.addListener(mcLoader);


djken 10.06.2010 15:14

Цитата:

Сообщение от iNils (Сообщение 914468)
Код AS1/AS2:

this.onLoadInit = function(target:MovieClip):Void {
    target._x=30;
    target._y=70;
}


Теперь понял :)

Цитата:

Сообщение от dimarik (Сообщение 914470)
Код AS1/AS2:

mcLoader.addListener(mcLoader);


А это по-моему не верно...

dimarik 10.06.2010 15:56

Компилятор поругается немного на то, что таких свойств у MCL нет - это не динамический класс. Но уговорить его можно
Код AS1/AS2:

Object(mcLoader).onLoadInit = function...



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

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