Quick Tips: Lås Din SWF til et bestemt domene Name

Quick Tips: Lås Din SWF til bestemte domenenavn
en
Del
Del
Share < .no> Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

Ønsker du å holde SWF eksklusivt til nettstedet ditt? I denne hurtig Tip, vil vi se på hvordan du bruker en "site lock" for å stoppe folk å laste ned SWF og bygge det på et annet nettsted.




Forhåndsvisning Endelig resultat

Her er filen kjører på feil domene:

Vi vil bygge en animert skjerm skal aktiveres når SWF er på feil domene, som i eksempelet ovenfor. Å si at hvis du bare ønsker å lære om nettstedet låsekoden, går du til trinn 5.



Trinn 1: Tweener

Før du begynner å skrive kode og legge design til stadiet, må du først få Tweener. For dette prosjektet brukte jeg åpen kildekode, som kan brukes for åpne og kommersielle prosjekter. Caurina tweener er tilgjengelig en code.google.com.

Etter at du har lastet ned Tweener, bare kopiere og lime den til prosjektmappen. Husk at mappen må hete caurina, inne i mappen må det være en mappe som heter overganger, og innsiden av at en last av Flash .as class-filer.

Med det første skrittet gjort, vi kan komme videre med . koding og designe filen



Trinn 2: filstørrelse og Layers

filstørrelsen er irrelevant. Domain locker eiendom er å låsing SWF, eller komponent, i tilfelle noen har lastet ned den fra deg uten din tillatelse.

I dette eksemplet har jeg brukt en scene størrelse på 540 x 400, kan du bruke hva størrelse du vil.

Etter at du har valgt filstørrelsen, opprette 3 nye lag som på bildet nedenfor. Alltid holde Handlinger Layer tom. Organiserte stadiene er mye lettere å jobbe med og forstå




Trinn 3:. Den Sensor System

Når du har opprettet de 3 lagene, opprette to nye, enkle movieclips. Plassere dem hvor du vil, uansett størrelse du ønsker. 40 pixel høyde med 10 pixel bredde la oss si, uten slag. Posisjonering er ikke viktig, fordi vi skal plassere disse movieclips av action senere.

Nå kommer det viktigste aspektet av disse movieclips, registreringspunkt. Se på bildene nedenfor, når du konverterer dine bitmaps å movieclips, må du huske å gjøre følgende ellers filen vil ikke kjøre på sitt fulle potensial:

Og selvfølgelig, de forekomstnavn:


Gratulerer! Du har lagt til boksene som vil stenge siden ned, i tilfelle domenet er galt. Nå legger et dynamisk tekstboksen til midten av scenen eller hvor som helst du vil den skal være. Denne tekstboksen vil informere brukeren som lastet ned filen ulovlig at filen er beskyttet av manuset .. Gi det en forekomst navn warning_txt



Trinn 4: Legge Nødvendige Classes

Nå, når du har opprettet movieclips og tekstboksen, er du klar til å kode. På den låste handlinger lag, trykker F9, og legge til følgende kode:.
Import flash.events *, import flash.display.LoaderInfo, import flash.display.MovieClip, import flash.net.navigateToURL; import flash.net .URLRequest, import flash.net.URLVariables; import caurina.transitions.Tweener

flash.events. *; laster alle hendelsene vi må sannsynligvis

flash.display.LoaderInfo.; bringer opp all informasjon vi trenger for å laste og som vil laste med filen

flash.flash.display.MovieClip.; laster alle hendelser vil vi komme over mens du bruker movieclips

import caurina.transitions.Tweener.; laster vår tween-motoren, og animasjonen av innholdet blokkerer barer.

Resten av hendelsene lastet er nødvendig slik at Flash får tilgang til nettadressen i baren.


Trinn 5: Ser etter en bestemt side
Var url: String = stage.loaderInfo.url;

La oss anta at SWF er lastet på siden http: //www.domainName .com /siteFolder /sitePage.html
. Linje 9 henter denne nettadressen og tildeler den til strengen som heter url



Trinn 6:. Årsak og virkning

Nå som Flash vet hvor du skal få webadressen fra, er det på tide å sammenligne at med vår nettside URL, og ta affære om de passer eller ikke
funksjon pageDomainCheckInit (hendelse: Hendelse): void {if (url = "http://www.domainName.com/siteFolder/sitePage. html ") {warning_txt.text =" Denne filen kjører på feil URL innholdstilgang Begrenset ".!; closeBoxTop.x = 0 closeBoxTop.visible = true; closeBoxTop.height = stage.stageHeight /2 Tweener.addTween (closeBoxTop, {width: stage.stageWidth, alpha: 0,8, tid: 1, overgang: "easeInOutExpo"}); closeBoxBottom.x = stage.stageWidth closeBoxBottom.visible = true; closeBoxBottom.height = stage.stageHeight /2 Tweener.addTween (closeBoxBottom, {width: stage.stageWidth, tid: 1, alfa: 0,8, overgang: "easeInOutExpo"}); } Else {warning_txt.text = ""; closeBoxTop.visible = false; closeBoxBottom.visible = false; } Stage.removeEventListener (Event.ENTER_FRAME, pageDomainCheckInit);} stage.addEventListener (Event.ENTER_FRAME, pageDomainCheckInit);

Vi har brukt en hendelse lytteren å starte sjekke opp av den tidligere oppdaget URL-strengen. Hva dette egentlig betyr, er å fortelle blinke at hvis strengen ligger i navigasjonsfeltet (eller nettadressen hvor siden ligger på) er ikke den riktige, så siden vil utføre skriptet med å blokkere ut innhold og varsle brukeren om at domenet er feil. Ellers, hvis siden er riktig plassert, boksene som lukker opp siden vil ikke bli vist, verken vil varsel teksten.

Etter denne delen er ferdig, fjerner vi arrangementet lytteren slik at filen ikke spiser opp ressurser ved å sjekke og rechecking og rechecking om og om igjen. Når strengen er vellykket trekkes mot, og manuset er vellykket utført, blir pageDomainCheckInit hendelsen fjernet.
if (url! = "http://www.domainName.com/siteFolder/sitePage.html") {

Denne delen av koden, er i utgangspunktet en "HVIS IKKE", så hvis siden ikke http://www.domainName.com/siteFolder/sitePage.html Flash starter utførelse av funksjoner under IF, men ellers - hvis SWF er på riktig side - Flash vil fjerne blokkene fra scenen, og holde alt pent og ryddig . Du vil aldri vite den er der.

Nå, la oss se hva som skjer, når filen ikke er på riktig domene.
Warning_txt.text = "Denne filen kjører på feil pageDomain. Innholdstilgang Begrenset "; closeBoxTop.x = 0closeBoxTop.visible = true; closeBoxTop.height = stage.stageHeight /2Tweener.addTween (closeBoxTop, {width: stage.stageWidth, alpha: 0,8, tid: 1, overgang:" easeInOutExpo "}); closeBoxBottom.x = stage.stageWidthcloseBoxBottom.visible = true; closeBoxBottom.height = stage.stageHeight /2Tweener.addTween (closeBoxBottom, {width: stage.stageWidth, tid: 1, alfa: 0,8, overgang: "easeInOutExpo"});

Den koden du ser her, posisjonerer closeBoxes å iscenesette starte og scene slutten (closeBoxTop = 0, closeBoxBotton = stage.stageWidth), og gjør dem usynlige (closeBoxTop.visible = false, closeBoxBottom.visible = false) dette skjuler dem fra scenen, holder dem borte fra visningen, og påvirker ikke nettstedets utseende. Likevel, de er der.

Hvis siden, eller komponenten er installert på et annet nettsted /domenenavn som det ikke var opprinnelig ment å være på, de blir synlige. De utvide over skjermen, som dekker det helt og varsler brukeren om at innholdet er stjålet eller ikke der det er ment å være.

Dette tiltaket ikke bare informerer allmenn brukeren at filen er ikke der det er ment å være , men det også stenger ute alt innhold fra å bli vist.



Trinn 7: Ser etter et bestemt domene

Hva om vi bare ønsker å sjekke om SWF er lastet på en bestemt domene

Så i stedet for å sjekke? hvis SWF er på http://www.domainName.com/siteFolder/sitePage.html, vi sjekker bare hvis det er et sted på domainName.com nettstedet. Så det kan være på http://private.domainName.com/secure/secret.html og fortsatt arbeid

Vi kan oppnå dette ved å redigere koden som får URL, slik:.
Div url: String = stage.loaderInfo.url; //denne linjen var her før Var urlBeginning: int = url.indexOf! (": //") + 3; Var urlTermination: int = url.indexOf ("/", urlBeginning); Var pageDomain: String = url.substring (urlBeginning, urlTermination); Var lastDot: int = pageDomain.lastIndexOf (".") - 1; Var CharacterAfterDomain: int = pageDomain.lastIndexOf (, lastDot ".") + 1; pageDomain = pageDomain.substring (CharacterAfterDomain, pageDomain. lengde);
Kode forklart

La oss anta at SWF er lastet på siden http://www.domainName.com/siteFolder/sitePage.html
. Linje 9 henter denne nettadressen og tildeler den til String heter url. Det er den samme linjen vi hadde før

Linje 10 med kode henter posisjon innen nettadressen til. //

Linje 11 med kode henter den første /som vises i URL etter : //. Dette er faktisk veldig viktig, fordi mellom disse faktiske domenenavnet kan bli funnet.

Linje 12 av kode, er bare å gjøre tilkoblingen inne Flash av hva som er i mellom: //og den første /få domenenavnet String klar for kontroll i neste trinn. På dette punktet, med vårt eksempel, pageDomain er satt til www.domainName.com

De resterende kode sjekker for domenenavnet strengen, hva er før det (som betyr «www» eller «http:. //www. ") og det som er etter ditt domenenavn (som betyr". ").

Alle disse blir ignorert, slik at Flash kan definere selve domenenavnet. Den domainName.com. I stedet for å sjekke:
if (url = "http://www.domainName.com/siteFolder/sitePage.html"!) {

... vi sjekke!
If (pageDomain = "Domenenavn Com ") {

Hovedproblemet med denne teknikken er at det ikke fungerer for domener som har tre deler. For eksempel domainName.co.uk - denne koden vil få ".no" som verdien av pageDomain. Likevel, det er min foretrukne metoden, som jeg vil forklare i neste trinn



Trinn 8:.? Utility

Du kan ha flere filer på serveren din, på forskjellige domener, denne metoden kunne vært gjort på en slik måte at filen ville være låst på en enkel og unik URL, som ovenfor. Men hvis du skulle kjøre filen ved hjelp dyplenking for eksempel, eller underdomener, ville filen slutter å fungere, på grunn av det faktum at koblingen vil være ugyldig til domenet leseren.

Det faktum at koden er if (pageDomain! = "domainName.com") er svært viktig. Det vil tillate deg å legge til denne koden til hver fil på nettstedet, underdomene, dyplenke plassering; så lenge koblingen er på det domenet, vil filen kjøres, og domenet locker vil ikke utløse!

Likevel, det kan være nyttig å låse til noe mer spesifikt enn et domenenavn. Tenk deg at du vert for ditt nettsted på en vert som Amazon S3. Så din URL vil være noe sånt som http://yoursitename.s3.amazonaws.com/folder/page.html
. Men noen andre på Amazon S3 kunne ha URL http://someoneelse.s3.amazonaws.com/
. De kunne laste opp SWF til deres nettsted, og siden SWF vil fortsatt være på amazonaws.com
domenet locker ikke ville låse.

Tips

Her er et lite tips du kan virkelig elsker. La oss anta for et øyeblikk at du har det samme innholdet på flere domenenavn og du ikke ønsker å legge til en annen kode for hvert av domenene. Du kan gjøre filen sjekk for flere domener samtidig veldig enkelt.

Møt operatoren: & & Ved hjelp av denne kommandoen inne i den første brikken kan du legge til så mange domener som du ønsker. La meg vise deg hvordan! :)

Enkeltdomene kontrolløren:

(pageDomain = "domainName.com"!)

Multiple domene kontrolløren:

((pageDomain = " domainName.com ") & & (pageDomain =" mydomain.com ") & & (pageDomain =" hisdomain.com ")) veldig enkelt, er det ikke?



Konklusjon

Vel, wraps dette den opp. Som dere alle vet, er full beskyttelse av flash-filer aldri garantert 100%, men dette er bare et nytt skritt i å gjøre nettstedet ditt tryggere, bedre og sikrere mot fil tyveri. Ikke glem å kryptere filene dine før du legger dem til serveren! Takk for at du leser denne opplæringen, jeg håper det var nyttig for deg, hvis du trenger ytterligere hjelp, ikke nøl med å la dine spørsmål i kommentarfeltet. Anmeldelser