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 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 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. 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. 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. 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:. La oss anta at SWF er lastet på siden http://www.domainName.com/siteFolder/sitePage.html 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: ... vi sjekke! 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 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 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? 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
. Linje 9 henter denne nettadressen og tildeler den til strengen som heter url
Trinn 6:. Årsak og virkning
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);
if (url! = "http://www.domainName.com/siteFolder/sitePage.html") {
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"});
Trinn 7: Ser etter et bestemt domene
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
. Linje 9 henter denne nettadressen og tildeler den til String heter url. Det er den samme linjen vi hadde før
if (url = "http://www.domainName.com/siteFolder/sitePage.html"!) {
If (pageDomain = "Domenenavn Com ") {
Trinn 8:.? Utility
. 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
Konklusjon