Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-12-2005, 14:18   #1 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
alle bilder aus eine ordner laden (dynamisch) / transistion

hallo
hab von einer seite eine sehr schöne transition:
Code:
var rate = 5;
var focallength = 250;
var maxheight = 100;
var origin = new flash.geom.Point(150, 300);
var images = ["hil", "mtn", "ice"];

var blurfilter = new flash.filters.BlurFilter(0,0,1);
var shadowfilter = new flash.filters.DropShadowFilter(0,45,0x0, .20, 0,0, 1, 1, false,false,false);

var raisedepth = 0;
var imagesindex = 0;
var basepoint = new flash.geom.Point(0,0);
var transbmp = new flash.display.BitmapData(300,300);
var transclips;

click_mc.swapDepths(2);

loadTransBitmap( images[imagesindex] );
var clips = createGrid(this, 1, transbmp, 10, 10);


function onMouseDown(){
	loadTransBitmap( getNextImage() );
	startTransition(clips, transbmp, speed, delay);
}

function getNextImage(){
	imagesindex++;
	imagesindex %= images.length;
	return images[imagesindex];
}

function loadTransBitmap(id){
	var tempbmp = flash.display.BitmapData.loadBitmap(id);
	transbmp.copyPixels(tempbmp, tempbmp.rectangle, basepoint);
	tempbmp.dispose();
}

function createGrid(target, targdepth, sourcebmp, cols, rows){
	target.createEmptyMovieClip("transition_mc", targdepth);
	target.transition_mc.createEmptyMovieClip("reveal_mc", 0);
	var grid = target.transition_mc.createEmptyMovieClip("grid_mc", 1);
	var col, row;
	var refRect = new flash.geom.Rectangle(0,0,0,0);
	var clips = new Array();
	clips.reveal = target.transition_mc.reveal_mc;
	clips.reveal.bitmap = sourcebmp.clone();
	clips.reveal.attachBitmap(clips.reveal.bitmap, 1);
	var mc;
	var depth = 0;
	
	for (col = 0; col < cols; col++){
		refRect.top = 0;
		refRect.left = refRect.right;
		
		for (row = 0; row < rows; row++){
			refRect.right = Math.round(sourcebmp.width * (col+1)/cols);
			refRect.bottom = Math.round(sourcebmp.height * (row+1)/rows);
			
			mc = grid.createEmptyMovieClip("grid"+row+"_"+col, depth);
			mc.depth = depth;
			mc.rect = refRect.clone();
			mc._x = mc.rect.left;
			mc._y = mc.rect.top;
			mc.x = mc.rect.left;
			mc.y = mc.rect.top;
			mc.elevation = 0;
			
			mc.bitmap = new flash.display.BitmapData(mc.rect.width, mc.rect.height, true, 0);
			mc.bitmap.copyPixels(sourcebmp, mc.rect, basepoint);
			mc.attachBitmap(mc.bitmap, 1);
			
			clips.push(mc);
			depth++;
			
			refRect.top = refRect.bottom;
		}
	}
	return clips;
}
function startTransition(clips, transbmp, speed, delay){
	transclips = clips.slice();
	raisedepth = 2*transclips.length;
	clips.reveal.bitmap.draw(transbmp);
	onEnterFrame = transOnEnterFrame;
}
function transOnEnterFrame(){
	var i = rate;
	var rand, clip;
	while(i--) {
		rand = Math.floor(Math.random()*transclips.length);
		clip = transclips.splice(rand,1)[0];
		clip.onEnterFrame = transClipOnEnterFrame;
		clip.swapDepths(raisedepth);
		raisedepth--;
		if (!transclips.length){
			break;
			delete this.onEnterFrame;
		}
	}
}
function transClipOnEnterFrame(){

	this.elevation += speed;
	if (this.elevation > maxheight){
		resetClip(this);
		delete this.onEnterFrame;
	}else{
		renderClip(this);
	}
}
function resetClip(mc){
	mc.elevation = 0;
	mc.x = mc.rect.left;
	mc.y = mc.rect.top;
	mc.bitmap.copyPixels(clips.reveal.bitmap, mc.rect, basepoint);
	mc.swapDepths(mc.depth);
	renderClip(mc);
}
function renderClip(mc){
	var scaleratio = focallength/(focallength - mc.elevation);
	
	mc._x = origin.x + (mc.x - origin.x)*scaleratio;
	mc._y = origin.y + (mc.y - origin.y)*scaleratio;
	mc._xscale = 100*scaleratio;
	mc._yscale = 100*scaleratio;
	
	blurfilter.blurX = blurfilter.blurY = Math.floor(mc.elevation/10);
	shadowfilter.distance = mc.elevation;
	mc.filters = [shadowfilter, blurfilter];
}
es holt sich die images aus der bibliothek:
var images = ["hil", "mtn", "ice"]; (für img_hil.jpg usw.)

wie muss ich das umändern, dass er in einen ordner schaut und alle bilder aus diesem ordner holt ????

danke
grüße

p.s. so sieht das übrigens aus:
http://www.senocular.com/pub/flash/8...aisetransition
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Alt 17-12-2005, 15:47   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Dü könntest die Ordner in einem xml verzeichnen, das Du als XML-Object reinlädst. In Dein Array images = []; pushst Du alle childknoten, die die Beschreibung zum jeweiligen Bild enthalten, also was weiß ich fortfolgend zu "hil", "ice" ... "valley" usw...

Wo setzt'n den Pfad zum Bild zusammen? (also hill.jpg)?
Flash weiß ja kaum was mit "hil" anzufangen" ...

--pp
~pyropete~ ist offline   Mit Zitat antworten
Alt 17-12-2005, 15:57   #3 (permalink)
Neuer User
 
Benutzerbild von get-the-flash
 
Registriert seit: Jun 2002
Ort: München
Beiträge: 2.904
naja, bin nicht sooo fit, dass ich alles 100%ig verstehe.
aber so mit dem "hil", "bl" usw. funktioniert das ja irgendwie. achsooo, es wurde dann wahrscheinlich in der bibliothek gesetzt, gel!?

kannst du das mit dem xml nen bissle genauer beschreiben

danke
__________________
---
www.wellenmacher.de
get-the-flash ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele