Форум 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)
-   -   центруем пустой клип, в который будем загружать странички (http://www.flasher.ru/forum/showthread.php?t=121850)

Dr_Bra 24.02.2009 21:31

центруем пустой клип, в который будем загружать странички
 
Привет, уважаемые Гуру!
У меня вновь возник вопрос, надеюсь на Вашу помощь.
Делаю сайт, в котором будет резиновый фон, меню и информационные странички должны располагаться посередине оси х, а по y там где расположим на сцене ручками. Использую вот такой код.
Код AS1/AS2:

//cсцена
var fon_w:Number = fon._width;
var fon_h:Number = fon._height;
var fon_so = fon._width/fon._height;
Stage.addListener(this);
Stage.align = "TL";
Stage.scaleMode = "noScale";
this.onResize = function() {
        var stage_so:Number = Stage.width/Stage.height;
        if (stage_so>fon_so) {
                fon._xscale = fon._yscale=100*Stage.width/fon_w;
        } else {
                fon._xscale = fon._yscale=100*Stage.height/fon_h;
        }
};
 
//информационное поле
Stage.addListener(images_cont)
images_cont.onResize=function() {
    this._x = (Stage.width - this._width)/2;
}
 
//кнопки
Stage.addListener(btm1)
btm1.onResize=function() {
    this._x = (Stage.width - this._width)/2-142;
}
Stage.addListener(btm2)
btm2.onResize=function() {
    this._x = (Stage.width - this._width)/2;
}
Stage.addListener(btm3)
btm3.onResize=function() {
    this._x = (Stage.width - this._width)/2+139;
}
 
//сразу грузится главная страница
_root.images_cont.loadMovie("main.swf");

Все идеально, кроме пустого мувиклипа images_cont, в который грузятся странички... Подскажите как можно images_cont от центровать по оси х?

Добавлено через 49 минут
в чем может быть трабл ?

Kuruki 24.02.2009 22:21

Грузить страницы MovieClipLoader' ом. Ждать события onLoadInit, после которого станут известны размеры загружаемого swf и только тогда центровать ее.

Dr_Bra 24.02.2009 22:27

у меня сейчас в 10 кадре прописан код, как я понял нужно в 10м кадре написать
Код AS1/AS2:

//сразу грузится главная страница
_root.images_cont.loadMovie("main.swf");

а в 11м его центровать?

Kuruki 24.02.2009 22:37

Тестировать лень, но вряд ли плеер будет дожидаться загрузки в 10 кадре, так что не факт, что в 11 кадре swf будет уже загружен. Лучше воспользоваться MovieClipLoader'ом

Dr_Bra 24.02.2009 22:41

Цитата:

Сообщение от Kuruki (Сообщение 800867)
Тестировать лень, но вряд ли плеер будет дожидаться загрузки в 10 кадре, так что не факт, что в 11 кадре swf будет уже загружен. Лучше воспользоваться MovieClipLoader'ом

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

Добавлено через 1 минуту
у меня в самом начале в коде стоят эти строки, разве они не то обозначают
не мувиклип лодер?
Код AS1/AS2:

//код который отвечает за поведение кнопочек
var mcl:MovieClipLoader = new MovieClipLoader();
var box:MovieClip = this.images_cont;
 
var lastPressed:MovieClip = null;
function push_the_button(){
        trace(this._name)
        lastPressed.enabled = true;
        lastPressed.gotoAndPlay("_up");
        lastPressed = this;
        lastPressed.enabled = false;
        mcl.loadClip(this.param + '.swf', box);
 
}
btm1.onPress = push_the_button;
btm1.param = 'flowers';
btm2.onPress = push_the_button;
btm2.param = 'main';
btm3.onPress = push_the_button;
btm3.param = 'main';


Kuruki 24.02.2009 22:51

Ну да, он самый. Только ты им не пользуешься...
Здесь найдешь инфу о нем на русском с примерами

Dr_Bra 24.02.2009 22:53

[quote=Kuruki;800872]Ну да, он самый. Только ты им не пользуешься...
Здесь найдешь инфу о нем на русском с примерами[/QU
СПАСИБО тебе :drinks:

Добавлено через 10 минут
да это не быстро тут разобраться, а так на взгляд не поможешь ? за хелп все равно спасибо

Добавлено через 18 минут
эх, а счастье так близко ) ребят, подскажите плз бездарю )

Добавлено через 30 минут
а как же им воспользоваться в моем случае подскажите, люди добрые !!!

Kuruki 25.02.2009 00:16

Код AS1/AS2:

var box:MovieClip = this.images_cont;

Вот это не понимаю зачем делаешь. Сразу в images_cont грузить нельзя?

Быть контейнером для загружаемого swf и одновременно слушателем состояния загрузки swf и ресайза сцены, images_cont не сможет. Потому что после загрузки в него содержимого, свойства и методы, назначенные ему тобой "удаляются". Поэтому в качестве слушателе создаешь новый объект и на него вешаешь функции.
Код AS1/AS2:

var mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcl.addListener(listener);
Stage.addListener(listener)
 
listener.onLoadInit = function(){
    // Размеры загружаемого swf теперь известны,центрируемся
    this.onResize();
}
listener.onResize=function() {
    images_cont._x = (Stage.width - images_cont._width)/2;
}

Код AS1/AS2:

//сразу грузится главная страница
mcl.loadClip('main.swf', images_cont);
 
//а можно и
btm2.onPress();
// тем самым "блокируя" кнопку


Dr_Bra 25.02.2009 09:15

у меня сейчас вот такой код, который без проблем центрует кнопки, но никак не может разобраться с информационным полем, поскольку на сцены пустой мувиклип в который загружаются странички
Код AS1/AS2:

//информационное поле
Stage.addListener(images_cont)
images_cont.onResize=function() {
    this._x = (Stage.width - this._width)/2;
}
 
//кнопки
Stage.addListener(btm1)
btm1.onResize=function() {
    this._x = (Stage.width - this._width)/2-142;
}

попробовал поменять код на тот, который предложил Kuruki, но ничего не получилось ((( что еще можно сделать?

Kuruki 25.02.2009 17:06

покажи как ты вставил мой код. Не понимаю как может не получиться


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

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