PDA

Просмотр полной версии : fullScreen + align


4teras
19.07.2007, 16:22
Такая проблемка. Хочу сделать что бы мувик подгружался в fullScreen - movie, и выравнивался по центру.

var image_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();

mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x=Math.round((Stage.width-target_mc._width)/2);
};

image_mcl.addListener(mclListener);
image_mcl.loadClip("mitsubishi.swf", image);

Stage.displayState = "fullScreen";
Stage.scaleMode = "noScale";
оно fullScreen нормально делает, а вот по горизонтали вообще не выравнивает. В чем тут может быть ошибка?

Infectedcell
19.07.2007, 16:45
image - это у тебя контейнер, куда ты грузишь картинку или что то еще...

попробуй выравнивать image - т.е. контейнер в который ты положил каринку или ролик =))))
но никак не сам подгружаемый ролик

mclListener.onLoadInit = function(target_mc:MovieClip) {
image._x=Math.round((Stage.width-image._width)/2);
};

4teras
19.07.2007, 16:50
image это прямоугольничек маленький. так по чем мне его выравнивать? я его поставил на (0,0) а когда проигрываю, так он у меня четь ли не по правому краю выровнян

насколько я понимаю image как контейнер нужет что бы брать координаты x,y вначале, а потом уже можно его менять image._x с помошью image._width (передается значения с погдружаемого мувика)

Infectedcell
19.07.2007, 17:04
когда ты в этот контейнер (image) подгрузишь свой ролик, твой контейнер поменяет размеры сам, по размерам ролика туда загруженного.
И только лишь после этого сработает твое событие

mclListener.onLoadInit = function(target_mc:MovieClip) {
image._x=Math.round((Stage.width-image._width)/2);
};

Просекаешь? ;)

Живой пример, не знаю убьют ли админы =$
не... упрощю по подобию.

Ты когда шарик береш - он маленький и пустой, а вот стоит тебе его надуть, - он становится большой и наполненный воздухом..


=ни фига себе=

Короче:

Пишем:

var rootMC = _root.createEmptyMovieClip(''holder'',1);
rootMC._x = Stage.width/2;
rootMC._y = Stage.height/2;
var mcl:MovieClipLoader = new MovieClipLoader();
var mclL:Object = new Object();
mclL.onloadInit = function() {
rootMC._x = Stage.width/2-root.MC._width/2;
rootMC._x = Stage.height/2-root.MC._height/2;
}
mcl.addListener(mclL);
mcl.loadClip('myPicture.swf',rootMC);
//Ну и давай его по жизни по центру на ресайз оставим, чтоб уж по-человечьи =)
function keepOnResize() {
rootMC._x = Stage.width/2-root.MC._width/2;
rootMC._x = Stage.height/2-root.MC._height/2;
}
keepOnResize();
obj = new Object();
obj.onResize=function() {
keepOnResize();
}
Stage.addListener(obj);

4teras
19.07.2007, 17:42
не работает.

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

Infectedcell
19.07.2007, 18:24
идею понял. но такое чувство что мувик живет своей жизню
такого не бывает, пробуй =)
я мог немного ошибится, так как Флеша под рукой нет...
//
попробуй на ресайз двигать не rootMC...
напиши так:

function keepOnResize() {
var mc:MovieClip = _root.holder
mc._x = Stage.width/2-mc._width/2;
mc._x = Stage.height/2-mc._height/2;
}


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

4teras
19.07.2007, 21:31
Я придумал такое решение:

Stage.scaleMode = "noScale";
Stage.showMenu = false;
Stage.align="TL"
fscommand ("fullscreen", true);

this.createEmptyMovieClip("image_mc", this.getNextHighestDepth());
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = (System.capabilities.screenResolutionX-600)/2; target_mc._y = (System.capabilities.screenResolutionY-450)/2;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("my.swf", image_mc);
stop();
600х450 - размеры мувика который грузится

iNils
20.07.2007, 02:13
4teras, есть кнопка http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif, поэтому не надо создавать несколько сообщений подряд, надо исправить последнее в теме.