![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2006
Сообщений: 11
|
Подскажите плиз, как можно реализовать такой вот эффект перехода между картинками - http://www.volvocars.us/
Заранне спасибо! |
|
|||||
|
Регистрация: Apr 2006
Сообщений: 11
|
Цитата:
А можно конкретнее, как ее сделать? |
|
|||||
|
loading 50%
|
Цитата:
|
|
|||||
|
на сколько я понял она на транзакшенах?)
__________________
Best regards, Boris Petrov |
|
|||||
|
4AM Games
|
Не совсем то что там но в принципе без гемора
import flash.geom.Rectangle
import flash.geom.Point;
import mx.transitions.TransitionManager;
import mx.transitions.Blinds
import mx.transitions.easing.*;
function drawRect(size:Rectangle,color:Number):MovieClip {
var result:MovieClip = createEmptyMovieClip("mc_"+color+getTimer().toString+"_"+Math.random().toString,this.getNextHighestDepth());
result.beginFill(color);
result.moveTo(size.topLeft.x,size.topLeft.y);
result.lineTo(size.bottomRight.x,size.topLeft.y);
result.lineTo(size.bottomRight.x,size.bottomRight.y);
result.lineTo(size.topLeft.x,size.bottomRight.y);
result.lineTo(size.topLeft.x,size.topLeft.y);
result.endFill();
return result;
}
var bg:MovieClip = drawRect(new Rectangle(0,0,360,260),0xFF00FF);
var mask:MovieClip = drawRect(new Rectangle(0,0,360,260),0xFF6600);
var tm:TransitionManager = new TransitionManager(mask);
tm.startTransition({type:Blinds, direction:Transition.IN, duration:1, easing:Regular.easeOut, numStrips:20, dimension:1});
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
4AM Games
|
асинхронный вариант
import mx.transitions.Blinds;
import mx.transitions.Transition;
import mx.transitions.TransitionManager;
import mx.transitions.Tween;
class com.onorange.lib.transitions.AsyncBlinds extends Blinds
{
private var tweenPositions:Array = new Array();
private var actualFrameRate:Number = 25;
private var totalFramesInAnimation:Number;
private var currentFrame:Number=0;
private var needDispatchEvent:Boolean=false;
private var delay:Number;
public function AsyncBlinds (content:MovieClip, transParams:Object, manager:TransitionManager)
{
this.init(content,transParams,manager);
}
private function init(content,transParams,manager):Void
{
super.init(content,transParams,manager);
actualFrameRate = transParams.fps;
totalFramesInAnimation = actualFrameRate*this.duration-4;
delay = Math.floor(totalFramesInAnimation/this._numStrips);
}
private function _resetTween():Void
{
currentFrame = 0;
needDispatchEvent=false;
// do clean-up of possibly existing tween
this._twn.stop();
this._twn.removeListener (this);
this._twn.stop();
this._twn = new Tween (this,
null,
this.easing,
0,
1,
this.duration/2,
true);
// need to first stop the tween and THEN set the prop to avoid rendering glitches
this._twn.stop();
this._twn.prop = "progress";
this._twn.addListener (this);
}
private function _render (p:Number):Void
{
if(!needDispatchEvent)
{
this.tweenPositions.push(p);
}
var h:Number = 100/this._numStrips;
var mask:MovieClip = this._innerMask;
mask.clear();
var i:Number = this._numStrips;
mask.beginFill (0xFF0000);
for(var i:Number=0;i<=this._numStrips;i++)
{
if(currentFrame>=i)
{
var f:Number = (currentFrame+i<this.tweenPositions.length-1)?Math.floor(currentFrame+i):this.tweenPositions.length-1;
var s:Number = this.tweenPositions[f]*h;
this.drawBox (mask, -50, i*h - 50, 100, s);
}
}
mask.endFill();
currentFrame++;
};
function onMotionFinished (src:Object):Void {
if(needDispatchEvent)
{
if (this.direction) {
this.dispatchEvent ({type:"transitionOutDone", target:this});
} else {
this.dispatchEvent ({type:"transitionInDone", target:this});
}
delete this._twn;
}else{
needDispatchEvent = true;
this._twn.yoyo();
}
}
}
запускаем аналогично import flash.geom.Rectangle
import flash.geom.Point;
import mx.transitions.TransitionManager;
import mx.transitions.Blinds;
import mx.transitions.Transition;
import com.onorange.lib.transitions.AsyncBlinds;
import mx.transitions.easing.*;
function drawRect(size:Rectangle,color:Number):MovieClip {
var result:MovieClip = createEmptyMovieClip("mc_"+color+getTimer().toString+"_"+Math.random().toString,this.getNextHighestDepth());
result.beginFill(color);
result.moveTo(size.topLeft.x,size.topLeft.y);
result.lineTo(size.bottomRight.x,size.topLeft.y);
result.lineTo(size.bottomRight.x,size.bottomRight.y);
result.lineTo(size.topLeft.x,size.bottomRight.y);
result.lineTo(size.topLeft.x,size.topLeft.y);
result.endFill();
return result;
}
var tm2:TransitionManager = new TransitionManager(drawRect(new Rectangle(0,30,300,30),0xFF6600));
tm2.startTransition({type:AsyncBlinds, fps:50, direction:Transition.IN, duration:4, easing:Bounce.easeOut, numStrips:30, dimension:1});
щас думаю над вопросом авто определения.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Apr 2006
Сообщений: 11
|
Спасибо! То что нужно!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|