Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.05.2006, 22:03
MishaD вне форума Посмотреть профиль Отправить личное сообщение для MishaD Найти все сообщения от MishaD
  № 1  
Ответить с цитированием
MishaD

Регистрация: Apr 2006
Сообщений: 11
По умолчанию создание эффекта "жалюзи"

Подскажите плиз, как можно реализовать такой вот эффект перехода между картинками - http://www.volvocars.us/

Заранне спасибо!

Старый 25.05.2006, 23:07
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 2  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
маска такая - можно руками или программно её сделать
__________________
Хороший отдых - половина работы.

Старый 25.05.2006, 23:09
MishaD вне форума Посмотреть профиль Отправить личное сообщение для MishaD Найти все сообщения от MishaD
  № 3  
Ответить с цитированием
MishaD

Регистрация: Apr 2006
Сообщений: 11
Цитата:
Сообщение от artcraft
маска такая - можно руками или программно её сделать
Да я пробую, но что-то никак не получается А можно конкретнее, как ее сделать?

Старый 26.05.2006, 00:24
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 4  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
Цитата:
Сообщение от MishaD
Да я пробую, но что-то никак не получается А можно конкретнее, как ее сделать?
Это не возможно - работы на секунд 30.

Старый 26.05.2006, 11:04
MIX-er вне форума Посмотреть профиль Отправить личное сообщение для MIX-er Найти все сообщения от MIX-er
  № 5  
Ответить с цитированием
MIX-er
 
Аватар для MIX-er

Регистрация: Jun 2005
Сообщений: 612
Отправить сообщение для MIX-er с помощью ICQ Отправить сообщение для MIX-er с помощью Yahoo
на сколько я понял она на транзакшенах?)
__________________
Best regards, Boris Petrov

Старый 26.05.2006, 11:50
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 6  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Не совсем то что там но в принципе без гемора
Код:
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 и я стану писателем ^_^

Старый 26.05.2006, 17:32
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 7  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
асинхронный вариант
Код:
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();
		}
	}
}
Вставляем в classpath
запускаем аналогично
Код:
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});
не забыть про параметр fps, куда нужно вписать текущий fps .
щас думаю над вопросом авто определения.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 26.05.2006, 17:43
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 8  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
Nirth - браво - исчерпывающий ответ :~)
__________________
Хороший отдых - половина работы.

Старый 26.05.2006, 18:02
MishaD вне форума Посмотреть профиль Отправить личное сообщение для MishaD Найти все сообщения от MishaD
  № 9  
Ответить с цитированием
MishaD

Регистрация: Apr 2006
Сообщений: 11
Спасибо! То что нужно!

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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