Просмотр полной версии : центруем пустой клип, в который будем загружать странички
Привет, уважаемые Гуру!
У меня вновь возник вопрос, надеюсь на Вашу помощь.
Делаю сайт, в котором будет резиновый фон, меню и информационные странички должны располагаться посередине оси х, а по y там где расположим на сцене ручками. Использую вот такой код.
//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 минут
в чем может быть трабл ?
Грузить страницы MovieClipLoader' ом. Ждать события onLoadInit, после которого станут известны размеры загружаемого swf и только тогда центровать ее.
у меня сейчас в 10 кадре прописан код, как я понял нужно в 10м кадре написать
//сразу грузится главная страница
_root.images_cont.loadMovie("main.swf");
а в 11м его центровать?
Тестировать лень, но вряд ли плеер будет дожидаться загрузки в 10 кадре, так что не факт, что в 11 кадре swf будет уже загружен. Лучше воспользоваться MovieClipLoader'ом
Тестировать лень, но вряд ли плеер будет дожидаться загрузки в 10 кадре, так что не факт, что в 11 кадре swf будет уже загружен. Лучше воспользоваться MovieClipLoader'ом
подкинь мысль плз, как им воспользоваться
небольшой скриптик, что бы я разобрался, если не сложно, я пока ещё чайник.
Добавлено через 1 минуту
у меня в самом начале в коде стоят эти строки, разве они не то обозначают
не мувиклип лодер?
//код который отвечает за поведение кнопочек
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';
Ну да, он самый. Только ты им не пользуешься...
Здесь (http://flasher.ru/forum/showthread.php?t=93300) найдешь инфу о нем на русском с примерами
[QUOTE=Kuruki;800872]Ну да, он самый. Только ты им не пользуешься...
Здесь (http://flasher.ru/forum/showthread.php?t=93300) найдешь инфу о нем на русском с примерами[/QU
СПАСИБО тебе :drinks:
Добавлено через 10 минут
да это не быстро тут разобраться, а так на взгляд не поможешь ? за хелп все равно спасибо
Добавлено через 18 минут
эх, а счастье так близко ) ребят, подскажите плз бездарю )
Добавлено через 30 минут
а как же им воспользоваться в моем случае подскажите, люди добрые !!!
var box:MovieClip = this.images_cont;
Вот это не понимаю зачем делаешь. Сразу в images_cont грузить нельзя?
Быть контейнером для загружаемого swf и одновременно слушателем состояния загрузки swf и ресайза сцены, images_cont не сможет. Потому что после загрузки в него содержимого, свойства и методы, назначенные ему тобой "удаляются". Поэтому в качестве слушателе создаешь новый объект и на него вешаешь функции.
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;
}
//сразу грузится главная страница
mcl.loadClip('main.swf', images_cont);
//а можно и
btm2.onPress();
// тем самым "блокируя" кнопку
у меня сейчас вот такой код, который без проблем центрует кнопки, но никак не может разобраться с информационным полем, поскольку на сцены пустой мувиклип в который загружаются странички
//информационное поле
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, но ничего не получилось ((( что еще можно сделать?
покажи как ты вставил мой код. Не понимаю как может не получиться
//код который отвечает за кнопки
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';
//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;
}
};
//назначаем новый объект и центруем информационное поле (здесь у нас проблемы)
var mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcl.addListener(listener);
Stage.addListener(listener)
listener.onLoadInit = function(){
this.onResize();
}
listener.onResize=function() {
images_cont._x = (Stage.width - images_cont._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");
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);
mcl.loadClip(this.param+'.swf',images_cont);
}
btm1.onPress = push_the_button;
btm1.param = 'flowers';
btm2.onPress = push_the_button;
btm2.param = 'main';
btm3.onPress = push_the_button;
btm3.param = 'main';
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;
}
};
//var mcl:MovieClipLoader = new MovieClipLoader();
// 2 раза создавать лоадер не нужно, но не в этом проблема
var listener:Object = new Object();
mcl.addListener(listener);
Stage.addListener(listener);
listener.onLoadInit = function() {
this.onResize();
};
listener.onResize = function() {
images_cont._x = (Stage.width-images_cont._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");
// По ходу ты даже не пытался врубиться о чем я тебе говорил...
mcl.loadClip('main.swf',images_cont);
пытался, но видимо не достаточно. мне тяжело дается вся тема программинга, я же без образования, ликвидирую безграмотность с помощью книг и этого форума, се1йчас настольная книга Колина Мука по AS 3, спасибо тебе, Kuruki, домой приду проверю новый код, просто на работе у меня CS4 не поддерживается, а я забыл его пересохранить...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.