(category) LIST of posts

Panoramic sliders 2

se Panoramic sliders 1 for en ‘loopende’ version.
Den panorerende effekt i alle disse eksempler, forudsætter at slideren er “for stor” til scenen, på den ene eller begge leder.

Vandret panorering med selvstop

Klik for at aktivere:

Her er bevægelsen til begge sider den samme som i Panoramic sliders 1 – men den standser i begge yderpositioner, i stedet for at gentage sig. En enkelt movieclip-instance på scenen – med grafik og knapper iinlejret deri:

Scene1
> slider – mc-instance med indhold i form af bund og mc/knapper
> > Eventuelle mc-instances eller knapper, med deres indhold
> > bund – mc-instance med grafik eller billedfil

bunds indsætningspunk (det lille kryds på sliders’ timeline) skal være 0, 0.

Bemærk ændringen i SLIDE funktionen fra Panoramic sliders 1. 2 betingelser standser slideren i stedet for at flytte den hen til et tilsvarende sted med mere grafik. (Igangsættelse af slider’s ENTER_FRAME er her kontrolleret med et klik på sliderens bund):

//  Skift til tal-værdi, hvis du har problemer med at loade denne film
// var SW = 550; // din scenes bredde
var SW:int=stage.stageWidth;
var cStageX:int=SW/2;
var steps:int=15;//antal trin i en ease-bevægelse
var movement:Boolean=false;//Mulighed for at stoppe bevægelsen
slider.bund.addEventListener(MouseEvent.CLICK, startstop);
// et klik på slider's bund tænder eller slukker for slider's SLIDE function
function startstop(e:MouseEvent) {
	if (! movement) {
		slider.addEventListener(Event.ENTER_FRAME, SLIDE);
		movement=true;
	} else {
		slider.removeEventListener(Event.ENTER_FRAME, SLIDE);
		movement=false;
	}
}
function SLIDE(e:Event) {
	//  afpas dine skridt efter afstand mellem mus og scenemidten 
	var difX=(cStageX-mouseX)/steps;
	//  hvis kanten er overskredet, juster afstandens længde til 0
	if (e.target.x+difX <= -(e.target.width-SW)) {
		e.target.x =-(e.target.width-SW);
		difX=0;
	}
	if (e.target.x+difX>=0) {
		e.target.x=0;
		difX=0;
	}
	e.target.x+=difX;
}

Vandret ELLER lodret panorering

Eksemplet ovenfor panorerer vandret på x-aksen. Skal det gøres lodret, må grafikken laves på højkant, og alle x-værdier erstattes med y-værdier, samt width-referencer blive til height.

Vandret OG lodret panorering

Klik for at sætte igang:

Her er også kun en stor movieclip på scenen, med hele scenariet deri. Der er rent faktisk også en knap midt på billedet.
movieclip-hierarkien ser sådan ud (der refereres til instance-navne):

Scene1
> scenario – mc – (kunne sagtens have flere indholds-scener i sin timeline)
> > infobut – mc med 2 labels: but og info, med forskelligt indhold på hver
> > > boble – mc med shapetween
> > bund – mc med grafik eller billedfil – (evt. flere frames med forskellig bg)
> se – mc – øjet med 2 labels: “sened” og “seop” – hver deres indhold

// Hvis du planlægger at loade filmen ind i en anden swf
// vil stage.stageWidth og stage.stageHeight måske udløse fejl
// Nemmeste løsning: at angive statiske tal
// Ellers: Flyt dem ind i de funktioner der bruger dem
// Spørg - eller/og Google: as3 stage.stageWidth in loaded swf
var SW:int=stage.stageWidth;
var SH:int=stage.stageHeight;
var cStageX:int=SW/2;
var cStageY:int=SH/2;
var steps:int=20;//antal trin i en ease-bevægelse
var movement:Boolean=false;//Mulighed for at starte bevægelsen
scenario.bund.addEventListener(MouseEvent.CLICK, startstop);
// et klik på scenario's bund tænder eller slukker for scenario's SLIDE function
function startstop(e:MouseEvent) {
	if (! movement) {
		scenario.addEventListener(Event.ENTER_FRAME, SLIDE);
		movement=true;
	} else {
		scenario.removeEventListener(Event.ENTER_FRAME, SLIDE);
		movement=false;
	}
}

/*
Hvorfor sætte bevægelsen i gang med klik på scenario.bund? hvorfor ikke bare på scenario?
Med et klik direkte på scenario, ville alle dens eventuelle knap-børn arve, og hvert et knap-klik ville automatisk forårsage en on/off effekt.
- bund ligger under børnene, så de arver ikke dens events.
En hvilken som helst anden knap kunne selvfølgelig også kalde den event.
*/

function SLIDE(e:Event) {
	//  afpas dine skridt efter afstand mellem mus og scenemidten 
	var difX=(cStageX-mouseX)/steps;
	var difY=(cStageY-mouseY)/steps;
	//  hvis kanten er overskredet, juster afstandens længde til 0
	if (e.target.x+difX<=-(e.target.width-SW)) {
		e.target.x =-(e.target.width-SW);
		difX=0;
	}
	if (e.target.x+difX>=0) {
		e.target.x=0;
		difX=0;
	}
	if (e.target.y+difY<=-(e.target.height-SH)) {
		e.target.y =-(e.target.height-SH);
		difY=0;
	}
	if (e.target.y+difY>=0) {
		e.target.y=0;
		difY=0;
	}
	e.target.x+=difX;
	e.target.y+=difY;
}

Knap-funktionaliteten

scenario.infobut.buttonMode=true;
scenario.infobut.addEventListener(MouseEvent.MOUSE_OVER, over);
scenario.infobut.addEventListener(MouseEvent.MOUSE_OUT, out);
scenario.infobut.addEventListener(MouseEvent.CLICK, showINFO);
function over(e:MouseEvent) {
	// brems, flere skridt(længere tid)
	steps*=2;
}
function out(e:MouseEvent) {
	// farten op, færre skridt(kortere tid)
	steps/=2;
}
function showINFO(e:MouseEvent) {
	if (e.target.currentLabel=="but") {
		e.target.gotoAndPlay("info");
	} else {
		e.target.gotoAndStop("but");
	}
}

Tutorials XML

Lynda.com introduktion til xml Se de gratis videoer på listen

random image med uiloader til xml
En simpel imageloader vel forklaret

En simpel xml-menuloader til knapper
En simpel menu får menupunkter med en xml-fil, der hentes fra en class på et movieclip
ria-coder.com/blog/creating-xml-based-menus-with-flash-cs4-and-flex

accordeon med xml fra thetechlab
accordeon med xml fra riacodes

Slideshow med Caurina tweener
thetechlabs.com: create-a-as3-slideshow-with-xml
Slideshow mwd Tweenmax
active.tutsplus.com: build-a-dynamic-flash-and-xml-slideshow-with-scripted-transitions

Slideshow mwd flash’s egen tweener
republicofcode: as3slideshow

videoplayer med xml playlist

podcast-player (ikke testet)

Eksempler Præsentation

revafrance af soleilnoir
stayfocus
billyharveymusic
ringelgoslinga

http://www.sonyericsson.com/cws/cws/home?cc=dk&lc=da
http://www.pixelpeach.com/2009/flash/

http://www.plasticparticles.de/particle.html
http://www.phatterism.com/
www.sfmoma.org/projects/artscope/index.html

Walkcycle slide

Definition

En walkcycle er den sekvens af bevægelser mellem det ene trin i et gangforløb og det andet – lige til bevægelsen gentager sig.

Teknikker

- med flyttet fodfæste – til duplicering
- på stedet /trædemølle – i en movieclip til at tweene
Frame by frame eller mindre tweens
Bones (mest til kagemænd) på en shape eller dele i movieclips
Efter billeder / video

Inspiration

Se Google og myriaderne af forskellige ’stickman wars’
Legato (Nicholas Clauss)
En kreativ gif-animation

Ressourcer

Eadweard Muybridge
Preston Blair
Se tutorials på hyperlisten til animation

Tutorials php

Dynamisk data
Tilsammen udgør disse 2 tutorials en gennemgang af flash kommunikation med alt fra tekstiler til databaser. Skrevet af amfPHP’s egen far.
flash-db’s alt om at loade data til flash
og flash-db’s store gemme data tutorial

Email formular
email-contact-form-as3-php
thetechlabs.com: how-to-create-a-simple-flashphp-mail-contact-form-with-as3-and-mysql

Tutorials spil

Eksempler, variationer og supplerende tutorials til de gennemgåede spil-øvelser – i form af links.
Se også i kommentarerne.

Interaktive øvelser

edutechwiki: interactive_objects_tutorial

Puslespil

riacodes.com: drag-the-pieces-of-the-puzzle
monkeyflash.com flash-drag-and-drop
pixel2life.com: create_a_drag_and_drop_puzzle_in_actionscript_3_0 (classes)

Brickbreaker

En variation/udviddelse af squash-spillet
mrsunstudios.com: create-a-brick-breaker-game-in-as3

Andet


active.tutsplus.com: build-a-mini-golf-game-with-actionscript-3-0

Avanceret

Her er spillet ofte bygget op med classes
mrsunstudios.com/tutorials/
gamedev.michaeljameswilliams.com: avoider-game-tutorial