Delade objekt

Flash Player 9 och senare, Adobe AIR 1.0 och senare

I Flash Player kan du använda delade objekt, som är ActionScript-objekt som finns utanför en SWF-fil, antingen lokalt på användarens filsystem eller externt på en RTMP-server. Delade objekt, liksom andra medier i Flash Player, delas upp i säkerhetssandlådor. Däremot skiljer sig sandlådemodellen för delade objekt något, eftersom delade objekt är resurser som aldrig kan göras tillgängliga över domängränser. I stället hämtas alltid delade objekt från ett lager med delade objekt som är specifikt för domänen för respektive SWF-fil som anropar metoder för klassen SharedObject. Vanligtvis är ett lager med delade objekt ännu mer specifikt än en SWF-fils domän: alla SWF-filer använder som standard ett lager med delade objekt som är specifikt för hela den ursprungliga URL-adressen. Mer information om delade objekt finns i Delade objekt.

En SWF-fil kan använda parametern localPath för metoden SharedObject.getLocal() och SharedObject.getRemote() för att använda ett lager med delade objekt som associeras med endast en del av URL-adressen. På så vis kan SWF-filen ge tillstånd till delning med andra SWF-filer från andra URL-adresser. Även om du skickar '/' som parametern localPath anges ändå ett lager med delade objekt som är specifikt för den egna domänen.

Användare kan begränsa åtkomst till delade objekt i dialogrutan Inställningar i Flash Player eller med Inställningshanteraren. Som standard kan delade objekt skapas med upp till 100 kB data per domän. Administratörer och användare kan också ange egna gränser för hur mycket som får skrivas i filsystemet. Mer information finns i Administrativa inställningar och Användarinställningar.

Du kan ange att ett delat objekt är säkert genom att ange parametern true för secure i metoden SharedObject.getLocal() eller SharedObject.getRemote(). Observera följande om parametern secure:

  • Om den här parametern är inställd på true skapar Flash Player ett nytt säkert delat objekt eller hämtar en referens till ett befintligt säkert delat objekt. Det här säkra delade objektet kan bara läsas från eller skrivas till av SWF-filer som levereras över HTTPS och som anropar SharedObject.getLocal() med parametern secure inställd på true .

  • Om den här parametern är inställd på false skapas ett nytt delat objekt eller så hämtas en referens till ett befintligt delat objekt som kan läsas från eller skrivas till av SWF-filer som levereras över icke-HTTPS-anslutningar.

Om anropande SWF-fil inte kommer från en HTTPS-URL genereras ett SecurityError-undantag om du anger true för parametern secure i metoden SharedObject.getLocal() eller SharedObject.getRemote().

Valet av ett lager med delade objekt baseras på en SWF-fils ursprungliga URL-adress. Detta gäller även i de båda fallen när en SWF-fil inte kommer från en enkel URL-adress: import av inläsning och dynamisk inläsning. Import av inläsning avser de fall när du läser in en SWF-fil med egenskapen LoaderContext.securityDomain angiven med SecurityDomain.currentDomain. I det här fallet kommer den inlästa SWF-filen att ha en pseudo-URL-adress som inleds med inläsande SWF-filens domän och anger sedan den faktiska URL-adressen. Dynamisk inläsning avser inläsning av en SWF-fil med metoden Loader.loadBytes(). I det här fallet kommer den inlästa SWF-filen att ha en pseudo-URL-adress som inleds med inläsande SWF-fils hela URL-adress åtföljt av ett ID-tal. Vid både import av inläsning och dynamisk inläsning kan en SWF fils pseudo-URL-adress granskas med egenskapen LoaderInfo.url. Pseudo-URL-adressen behandlas på exakt samma sätt som en verklig URL-adress vad gäller val av lager med delade objekt. Du kan ange parametern localPath för delat objekt som använder delar av eller hela pseudo-URL-adressen.

Användare och administratörer kan välja att avaktivera användning av utomstående objekt. Detta innebär användning av delade objekt via en SWF-fil som körs i en webbläsare, när SWF-filens ursprungliga URL-adress är från en annan domän än URL:en som visas i webbläsarfältet. Användare och administratörer kan avaktivera utomstående objekt av säkerhetsskäl och för att undvika spårning över domäner. För att undvika den här begränsningen kanske du behöver vara säker på att SWF-filer som använder delade objekt läses in endast inom HTML-sidesstrukturer där SWF-filen garanterat kommer från samma domän som visas i webbläsarens adressfält. Om du försöker använda delade objekt från en utomstående SWF-fil, och användning av utomstående objekt har avaktiverats, returneras null från metoderna SharedObject.getLocal() och SharedObject.getRemote(). Mer information finns på www.adobe.com/products/flashplayer/articles/thirdpartylso.