Skapa ett nytt skal

Det bästa sättet att skapa en skal-SWF-fil är att kopiera en av skalfilerna som finns i Flash, och använda den som utgångspunkt. Du hittar FLA-filerna för de här skalen i Flash-programmappen i Configuration/FLVPlayback Skins/FLA/ActionScript 3.0/. Om du vill göra den färdiga skal-SWF-filen tillgänglig som ett alternativ i dialogrutan Välj skal placerar du den i mappen Configuration/FLVPlayback Skins/ActionScript 3.0, antingen i Flash-programfilen eller i en användares lokala mapp Configuration/FLVPlayback Skins/ActionScript 3.0.

Eftersom du kan ställa in färgen på ett skal utan att välja skalet, behöver du inte redigera FLA-filen för att ändra färgen. Om du skapar ett skal som har en viss färg och du inte vill att det ska gå att redigera i dialogrutan Välj skal, ställer du in this.border_mc.colorMe = false; i ActionScript-koden för skalets FLA-fil. Mer information om att ställa in ett skals färg finns i Välja ett tidigare utformat skal .

När du tittar på de installerade FLA-filerna för Flash-skal kan det se ut som om vissa saker på scenen är onödiga, men många av dem placeras i stödlinjelager. Med direktförhandsvisning som använder skalning med nio segment, ser du snabbt vad som egentligen kommer att visas i SWF-filen.

Följande avsnitt beskriver de mer komplexa anpassningarna och ändringarna för filmklippen SeekBar, BufferingBar och VolumeBar.

Använda skallayouten

När du öppnar en FLA-fil för ett Flash-skal finns skalets filmklipp placerade längs huvudtidslinjen. De här klippen och ActionScript-koden som finns i samma bildruta definierar hur kontrollerna placeras vid körning.

Även om layoutlagret på många sätt liknar skalet som det ser ut vid körning, så är innehållet i det här lagret inte synligt vid körning. Det används bara för att beräkna vara kontrollerna ska placeras. De andra kontrollerna på scenen används vid körning.

I layoutlagret finns en platshållare för FLVPlayback-komponenten som heter video_mc. Alla övriga kontroller är utplacerade i förhållande till video_mc. Om du börjar med en av Flash FLA-filerna och ändrar storleken på kontrollerna kan du antagligen ordna layouten genom att flytta de här platshållarklippen.

Alla platshållarklipp har ett eget instansnamn. Namnen på platshållarklippen är playpause_mc, play_mc, pause_mc, stop_mc, captionToggle_mc, fullScreenToggle_mc, back_mc, bufferingBar_mc, bufferingBarFill_mc, seekBar_mc, seekBarHandle_mc, seekBarProgress_mc, volumeMute_mc, volumeBar_mc och volumeBarHandle_mc. Den del som får en ny färg när du väljer en skalfärg kallas border_mc.

Vilket klipp som används för att styra en kontroll är inte viktigt. Vanligtvis används normallägesklippet för knappar. För övriga kontroller används klippet för den kontrollen, men det är bara för att underlätta. Det enda som är viktigt är x - (vågrät) och y -placeringen (lodrät) samt höjden och bredden för platshållaren.

Du kan också ha så många extra klipp som du vill utöver standardkontrollerna. Det enda kravet på de här klippen är att deras bibliotekssymboler har Exportera för ActionScript markerat i dialogrutan Länkning. De anpassade klippen i layoutlagret kan ha vilket instansnamn som helst, förutom de reserverade namnen ovan. Ett instansnamn behövs bara för att ställa in ActionScript för klippen för att bestämma layouten.

Klippet border_mc är speciellt. Om du anger värdet true för egenskapen FlvPlayback.skinAutoHide visas skalet när musen flyttas över border_mc clip. Det är viktigt för skal som visas utanför videospelarens konturer. Mer information om egenskapen skinAutoHide finns i Ändra skalbeteende .

I Flash FLA-filer används border_mc för färg och för kantlinjen runt knapparna Framåt och Tillbaka.

Klippet border_mc är också en del av skalet som får sin alfa och färg ändrad av egenskaperna skinBackgroundAlpha och skinBackgroundColor . För att tillåta anpassningsbar färg och alfa måste ActionScript i skalets FLA-fil innehålla:

border_mc.colorMe = true;

ActionScript och skallayout

Följande ActionScript-kod gäller generellt för alla kontroller. Vissa kontroller har ett specifikt ActionScript som definierar ytterligare beteenden, och som beskrivs i avsnittet om den kontrollen.

Det ursprungliga ActionScript är ett stort avsnitt som specificerar klassnamnen för varje komponents alla lägen. Alla de här klassnamnen finns i filen SkinOverAll.fla. Koden ser till exempel ut så här för knapparna Pause och Play:

this.pauseButtonDisabledState = "fl.video.skin.PauseButtonDisabled"; 
this.pauseButtonDownState = "fl.video.skin.PauseButtonDown"; 
this.pauseButtonNormalState = "fl.video.skin.PauseButtonNormal"; 
this.pauseButtonOverState = "fl.video.skin.PauseButtonOver"; 
this.playButtonDisabledState = "fl.video.skin.PlayButtonDisabled"; 
this.playButtonDownState = "fl.video.skin.PlayButtonDown"; 
this.playButtonNormalState = "fl.video.skin.PlayButtonNormal"; 
this.playButtonOverState = "fl.video.skin.PlayButtonOver";

Klassnamnen har inga egentliga externa klassfiler. De specificeras bara i dialogrutan Länkning för alla filmklipp i biblioteket.

I ActionScript 2.0-komponenten fanns det filmklipp på scens som faktiskt användes vid körning. I ActionScript 3.0-komponenten finns dessa filmklipp fortfarande i FLA-filen, men bara för att underlätta redigeringen. Nu finns alla i stödlinjelager och exporteras inte. Alla skalresurser i biblioteket är inställda för att exporteras i den första bildrutan, och de skapas dynamiskt med kod som den här:

new fl.video.skin.PauseButtonDisabled();

Efter det avsnittet finns ActionScript-kod som definierar den minsta bredden och höjden för skalet. Värdena visas i dialogrutan Välj skal, och de används vid körning för att hindra att skalet skalas under sin minimistorlek. Om du inte vill ange en miniminivå låter du den vara odefinierad eller mindre än eller lika med noll.

// minimum width and height of video recommended to use this skin, 
// leave as undefined or <= 0 if there is no minimum 
this.minWidth = 270; 
this.minHeight = 60;

Alla platshållare kan ha följande egenskaper:

Egenskap

Beskrivning

anchorLeft

Booleskt. Placerar kontrollen i förhållande till FLVPlayback-instansens vänstra sida. Standardvärdet är true såvida inte anchorRight uttryckligen har fått värdet true , och då blir standardvärdet false .

anchorRight

Booleskt. Placerar kontrollen i förhållande till FLVPlayback-instansens högra sida. Standardvärdet är false .

anchorBottom

Booleskt. Placerar kontrollen i förhållande till FLVPlayback-instansens nederkant. Standardvärdet är true såvida inte anchorTop uttryckligen har fått värdet true , och då blir standardvärdet false

anchorTop

Booleskt. Placerar kontrollen i förhållande till FLVPlayback-instansens överkant. Standardvärdet är false .

Om både egenskapen anchorLeft och egenskapen anchorRight är true , skalas kontrollen vågrätt vid körning. Om både egenskapen anchorTop och egenskapen anchorBottom är true , skalas kontrollen lodrätt vid körning.

Om du vill se effekten av de här egenskaperna tittar du på hur de används i Flash-skalen. Kontrollerna BufferingBar och SeekBar är de enda som skalas, och de placeras ovanpå varandra och har båda värdet true för egenskaperna anchorLeft och anchorRight . Alla kontroller till vänster om BufferingBar och SeekBar har värdet true för anchorLeft , och alla kontroller till höger om dem har värdet true för anchorRight . Alla kontroller har värdet true för anchorBottom .

Du kan försöka att redigera filmklippen i layoutlagret för att skapa ett skal där kontrollerna finns högst upp i stället för längst ned. Du flyttar helt enkelt kontrollerna högst upp i förhållande till video_mc , och ställer anchorTop lika med true för alla kontroller.

Buffertkontroll

Buffertkontrollen har två filmklipp: bufferingBar_mc och bufferingBarFill_mc. Ett klipps placering på scenen i förhållande till det andra klippet är viktig, eftersom den här relativa placeringen upprätthålls. Buffertkontrollen använder två separata klipp eftersom komponenten skalar bufferingBar_mc men inte bufferingBarFill_mc.

Klippet för bufferingBar_mc har skalning med nio segment, så att kantlinjerna inte förvrängs vid skalningen. Klippet för bufferingBarFill_mc är mycket brett, så att det alltid är tillräckligt brett utan att behöva skalas. Det maskeras automatiskt vid körning så att endast delen ovanför den utsträckta bufferingBar_mc visas. Som standard upprätthåller maskens exakta mått en lika stor marginal till vänster och till höger i bufferingBar_mc, baserat på skillnaden mellan x -placeringen (vågrätt) för bufferingBar_mc och bufferingBarFill_mc. Du kan anpassa placeringen med ActionScript-kod.

Om buffertkontrollen inte behöver skalas, eller inte behöver skalning med nio segment, kan du ställa in den som den anpassade användargränssnittskomponenten BufferingBar för FLV-uppspelning. Mer information finns i Komponenten BufferingBar .

Buffertkontrollen har följande extra egenskap:

Egenskap

Beskrivning

fill_mc:MovieClip

Anger instansnamnet för buffertkontrollens fyllning. Standardvärdet är bufferingBarFill_mc.

Sökfält och volymfält

Sökfältet har också två filmklipp: seekBar_mc och seekBarProgess_mc. Ett klipps placering i layoutlagret i förhållande till det andra klippet är viktig, eftersom den här relativa placeringen upprätthålls. Även om båda klippen skalas kan inte seekBarProgress_mc kapslas i seekBar_mc, eftersom seekBar_mc använder skalning med nio segment, som inte fungerar så bra med kapslade filmklipp.

Klippet för seekBar_mc har skalning med nio segment, så att kantlinjerna inte förvrängs vid skalningen. Klippet seekBarProgress_mc skalas också, men det förvrängs. Det använder inte skalning med nio segment eftersom det är en fyllning, som ser bra ut även när den är förvrängd.

Klippet seekBarProgress_mc fungerar utan en fill_mc, ungefär på samma sätt som ett progress_mc-klipp fungerar i anpassade användargränssnittskomponenter för FLV-uppspelning. Med andra ord är det inte maskerat och skalas vågrätt. De exakta måtten för seekBarProgress_mc vid 100 % definieras av vänster- och högermarginalerna i klippet seekBarProgress_mc. De här måtten är som standard likadana och baseras på skillnaden mellan x -placeringen (vågrät) av seekBar_mc och seekBarProgress_mc. Du kan anpassa måtten med ActionScript i sökfältets filmklipp, som i följande exempel:

this.seekBar_mc.progressLeftMargin = 2; 
this.seekBar_mc.progressRightMargin = 2; 
this.seekBar_mc.progressY = 11; 
this.seekBar_mc.fullnessLeftMargin = 2; 
this.seekBar_mc.fullnessRightMargin = 2; 
this.seekBar_mc.fullnessY = 11;

Du kan placera koden i tidslinjen för filmklippet SeekBar eller tillsammans med den andra ActionScript-koden på huvudtidslinjen. Om du anpassar med kod i stället för att ändra layouten behöver fyllningen inte finnas på scenen. Den behöver bara vara i biblioteket, inställd för export för ActionScript i bildruta 1 med rätt klassnamn.

Precis som med den anpassade användargränssnittskomponenten SeekBar för FLV-uppspelning går det att skapa ett fullness-filmklipp för sökfältet. Om sökfältet inte behöver skalas, eller om det skalas men inte använder skalning med nio segment, kan du ställa in progress_mc eller fullness_mc med någon av metoderna som används för anpassade användargränssnittskomponenter för FLV-uppspelning. Mer information finns i Progress- och fullness-filmklipp .

Eftersom volymfältet i Flash-skal inte skalas är det utformat på samma sätt den anpassade användargränssnittskomponenten VolumeBar för FLV-uppspelning. Mer information finns i Komponenterna SeekBar och VolumeBar . Undantaget är att handtaget implementeras på ett annat sätt.

Handtagen SeekBar och VolumeBar

Handtagen SeekBar och VolumeBar placeras i layoutlagret bredvid fältet. Som standard ställs handtagets vänstra och högra marginal samt y -axelvärdena in enligt dess placering i förhållande till fältets filmklipp. Den vänstra marginalen ställs in av skillnaden mellan handtagets x -placering (vågrät) och fältets x -placering (vågrät), och den högra marginalen är lika stor som den vänstra. Du kan anpassa de här värdena med ActionScript i filmklippen SeekBar och VolumeBar. Följande exempel är samma ActionScript-kod som används med de anpassade användargränssnittskomponenterna för FLV-uppspelning:

this.seekBar_mc.handleLeftMargin = 2; 
this.seekBar_mc.handleRightMargin = 2; 
this.seekBar_mc.handleY = 11;

Du kan placera koden i tidslinjen för filmklippet SeekBar eller tillsammans med den andra ActionScript-koden på huvudtidslinjen. Om du anpassar med kod i stället för att ändra layouten behöver handtaget inte finnas på scenen. Den behöver bara vara i biblioteket, inställd för export för ActionScript i bildruta 1 med rätt klassnamn.

Utöver de här egenskaperna är handtagen enkla filmkklipp, som ställs in på samma sätt som i de anpassade användargränssnittskomponenterna för FLV-uppspelning. Båda har rektangulära bakgrunder med värdet 0 på alpha -egenskapen. Bakgrunderna är bara till för att öka träffområdet och är inte obligatoriska.

Bakgrunds- och förgrundsklipp

Filmklippen chrome_mc och forwardBackBorder_mc implementeras som bakgrundsklipp.

Av filmklippen ForwardBackBorder, ForwardBorder och BackBorder på scenen och platshållarens Framåt- och Tillbaka-knappar, är det bara ForwardBackBorder som inte finns i ett stödlinjelager. Det finns bara i skalen som faktiskt använder knapparna Framåt och Tillbaka.

De enda kraven för de här klippen är att de måste exporteras för Actionscript i bildruta 1 i biblioteket.