Форум 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)
-   -   parallax в резиновой влешке (http://www.flasher.ru/forum/showthread.php?t=124751)

Dr_Bra 07.05.2009 17:43

parallax в резиновой влешке
 
Всем привет!)
Нашел интересный эффект parallax, решил с ним поработать. Все было бы хорошо, вот только, когда флешка "резиновая", эффект parallax работает не правильно (при наведении курсора в самые крайние точки, фон сдвигается слишком сильно к центру, а должен останавливаться на границе активного окна нашей флешки). Такая проблема возникает, только когда открываешь во весь экран, если не "разворачивать", работает идеально.
Подскажите, как можно добиться идеального результата этого эффекта при любом размере окна?

залил исходник http://***************/7YO30E

Добавлено через 1 минуту
архив с исходником перезалил, http://***********/11997762

Dr_Bra 12.05.2009 11:04

наверное никому не охота скачивать исходники ))))))
ситуация такая:
есть флешка размером 1024х768, на временной шкале в первом кадре прописан код
Код AS1/AS2:

stop();
var my_this:String = this
import flash.display.*;
import flash.geom.*;
var fon:String = "fon_fill";
a = {};
a.onResize = function ()
{
    recalc();
};
recalc = function ()
{
  out_images_cont._x = Stage.width/2;
  out_images_cont._y = Stage.height/2;
  back_mc._y = Stage.height/2;
  /*back_mc._x = Stage.width/2;*/
  maska._xscale = Stage.width;
  //maska._yscale = Stage.height;
  maska._y = back_mc._y;
  maska._x = back_mc._x;
  maska1._xscale = Stage.width;
  //maska1._yscale = Stage.height;
  maska1._y = back_mc._y;
  maska1._x = back_mc._x;
  menud._x = 0;
  menud._y = Stage.height/2;
  podlojka._xscale = Stage.width;
  podlojka._y = Stage.height/2;
 
  // Создаём BitmapData из картинки в библиотеке
        var myBitmapData:BitmapData = BitmapData.loadBitmap(fon);
        with (fonFill_mc) {
                matrix = new Matrix();
                beginBitmapFill(myBitmapData, matrix, true, false);
                moveTo(0, 0);
                lineTo(0, Stage.height);
                lineTo(Stage.width, Stage.height);
                lineTo(Stage.width, 0);
                lineTo(0, 0);
                endFill();
        }
}
 
Stage.scaleMode = "noscale";
Stage.align = "TL";
Stage.addListener(a);
_root.recalc();
 
 
fonFill_mc.setMask(maska);
back_mc.setMask(maska1);
 
 
 
/*fscommand("allowscale", "false");*/
var mainVar = 0;

Добавлено через 1 минуту
так же в этой флешке есть мувиклип (фон), прям на нем прописан этот код
Код AS1/AS2:

onClipEvent (enterFrame) {
        if (_root.mainVar == 0) {
                homeX = (-_root._xmouse)+Stage.width;
        } else {
                homeX = (-_root.mainVar)+Stage.width;
        }
        thisX = _x;
        diffX = homeX-thisX;
        if (_root.mainVar == 0) {
                moveX = diffX/90;
        } else {
                moveX = diffX;
        }
        _x = thisX+moveX;
}



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

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