Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   расположение элементов. (http://www.flasher.ru/forum/showthread.php?t=126045)

droch_fhoula 08.06.2009 20:50

расположение элементов.
 
есть swf, с параметрами
Код AS3:

var myStage:Stage = this.stage;
myStage.scaleMode = StageScaleMode.SHOW_ALL;
myStage.align = StageAlign.TOP_LEFT;

на сцене есть два обьекта которые должны при любом растягивании оставаться по бокам.
проблема в том, что мувик слева прилегает к левому краю и справа мувик прилегает к краю сцены.
но мне нужно чтоб он прилегал к правому краю браузера а не сцены, потому что после конца сцены образуется дыра.
NO_SCALE мне не подходит т. к. при меньшем разрешении экрана половину сайта не видно:(

AlexDesinger 08.06.2009 21:41

Все дело в том, что вам нужно событие resize класса Stage, которое наступает только при StageScaleMode.NO_SCALE, т.е когда изменяется размер swf файла.
http://help.adobe.com/ru_RU/AS3LCR/F...0.0/index.html
Цитата:

NO_SCALE мне не подходит т. к. при меньшем разрешении экрана половину сайта не видно
Тк для того и используют resize чтобы уместить важные элементы в сцене при любом растягивании swf ролика, а если у вас есть элементы, которые должны не только занимать определенное место но и уменьшаться в размерах, используйте scale для них.

droch_fhoula 08.06.2009 22:48

простите за глупый вопрос...как задать элементу scale?

alatar 08.06.2009 22:55

http://help.adobe.com/ru_RU/AS3LCR/F...0.0/index.html
свойства scaleX, scaleY

droch_fhoula 08.06.2009 23:07

когда я задаю свойства scaleX, scaleY ничего не меняется :(

вот код.
Код AS3:

var myStage:Stage = this.stage;
myStage.scaleMode = StageScaleMode.NO_SCALE;
myStage.align = StageAlign.TOP_LEFT;
function initialDisplay(event:Event):void {
 
        var swfWidth:int = myStage.stageWidth;
        var swfHeight:int = myStage.stageHeight;
 
        var vampYPos:Number = swfHeight - vamp.height;
        var logoXPos:Number = swfWidth - logo.width;
 
        vamp.y = vampYPos;
        logo.x = logoXPos;       
}
addEventListener(Event.ENTER_FRAME, initialDisplay);
 
stop();
import fl.transitions.Tween;
import fl.transitions.easing.*;
 
function resizeDisplay(event:Event):void {
        vamp.scaleX = 1;
        vamp.scaleY = 1;
 
        var swfWidth:int = myStage.stageWidth;
        var swfHeight:int = myStage.stageHeight;
 
        var vampYPos:Number = swfHeight - vamp.height;
 
        var logoXPos:Number = swfWidth - logo.width;
 
        var tweenvampY:Tween = new Tween(vamp, "y", Elastic.easeOut, vamp.y, vampYPos, 1.2, true);
        var tweenlogoX:Tween = new Tween(logo, "x", Elastic.easeOut, logo.x, logoXPos, 1.2, true);
}
 
myStage.addEventListener(Event.RESIZE, resizeDisplay);


simplenoize 09.06.2009 00:43

это оставляй
Код AS3:

var myStage:Stage = this.stage;
myStage.scaleMode = StageScaleMode.SHOW_ALL;
myStage.align = StageAlign.TOP_LEFT;

на Resize ставишь что-то вроде этого
Код AS3:

var right_mc:MovieClip; // клип, который должен быть справа
var SW:Number = stage.stageWidth; //ширина экрана
right_mc.x = SW -  right_mc.width;

Как то так , я думаю.

droch_fhoula 09.06.2009 01:02

все равно получается что клип болтается только в пределах сцены:(
и остается кусок экрана

simplenoize 09.06.2009 01:07

А у тебя клип растягивается на 100% ( в html коде) ?......, сделай фон другой у swf и посмотри где у тебя кончается клип.

droch_fhoula 09.06.2009 01:32

да там 100% прописано
вот исходник под cs3
тут

simplenoize 09.06.2009 01:54

скорее всего у Вас что-то с кодом в html,.
уберите это и в флэшке все нормально работает:
Код AS3:

myStage.scaleMode = StageScaleMode.SHOW_ALL;



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

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