Pakiet | flash.net |
Klasa | public class SharedObject |
Dziedziczenie | SharedObject EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Obiekty udostępnione służą do:
-
Zachowywanie lokalnej trwałości. Jest to najprostszy sposób użycia obiektów udostępnionych, który nie wymaga serwera Flash Media Server. Można na przykład wywołać metodę
SharedObject.getLocal()
, aby utworzyć obiekt udostępniony w aplikacji (np. kalkulator z pamięcią). Po zamknięciu przez użytkownika kalkulatora, program Flash Player zapisuje ostatnią wartość w obiekcie udostępnionym na komputerze użytkownika. Przy kolejnym uruchomieniu kalkulatora, zawiera on uprzednio zapisane wartości. W innym przypadku, jeśli właściwości obiektu udostępnionego zostaną ustawione na wartośćnull
, przed zamknięciem kalkulatora, kolejne uruchomienie aplikacji spowoduje otwarcie jej bez żadnej wartości. Kolejnym przykładem zachowania lokalnej trwałości jest śledzenie preferencji użytkownika lub innych danych na złożonych stronach sieci Web, np. zapisywanie informacji o tym, które artykuły ze strony z najświeższymi wiadomościami zostały przeczytane przez użytkownika. Śledzenie takich informacji pozwala na wyświetlanie artykułów, które zostały już przeczytane w odróżnieniu od nowych, nieprzeczytanych artykułów. Zapisanie tych informacji na komputerze użytkownika zmniejsza obciążenie serwera. -
Zapisywanie i udostępnianie danych na serwerze Flash Media Server. Dane obiektu udostępnionego mogą znajdować się na serwerze, dzięki czemu mogą je pobierać inni klienci. Przykład: wywołanie metody
SharedObject.getRemote()
w celu utworzenia zdalnego obiektu udostępnionego, np. listy telefonicznej, która jest trwała na serwerze. Gdy klient zmieni udostępniony obiekt, zmienione dane będą dostępne dla wszystkich klientów aktualnie połączonych z obiektem lub klientów, którzy później się z nim połączą. Jeśli obiekt jest trwały również lokalnie, a klient zmieni dane, mimo że nie ma połączenia z serwerem, dane zostaną skopiowane na zdalny obiekt udostępniony przy kolejnym połączeniu klienta z obiektem. - Udostępnianie danych w czasie rzeczywistym. Obiekt udostępniony może udostępniać w czasie rzeczywistym dane dla wielu klientów. Przykład: możliwe jest otwarcie zdalnego obiektu udostępnionego, który zawiera listę użytkowników połączonych z pokojem chatu, jaka jest widoczna dla wszystkich klientów połączonych z obiektem. Gdy użytkownik wejdzie do pokoju lub wyjdzie z niego, obiekt zostanie zaktualizowany i wszyscy klienci połączenie z nim zobaczą zaktualizowaną listę użytkowników pokoju.
Aby utworzyć lokalny obiekt udostępniony, wywołaj metodę SharedObject.getLocal()
. Aby utworzyć zdalny obiekt udostępniony, wywołaj metodę SharedObject.getRemote()
.
Po zamknięciu aplikacji udostępnione obiekty są kasowane lub zapisywane na dysku. Istnieje również możliwość wywołania metody flush()
w celu jawnego zapisania danych na dysku.
Ilość miejsca na dysku. Lokalne obiekty udostępnione mają pewne ograniczenia, które należy rozważyć podczas projektowania aplikacji. Czasami pliki SWF nie mają uprawnień do zapisywania lokalnych obiektów udostępnionych, a czasami dane zapisane w lokalnych obiektach udostępnionych mogą być usuwane bez wiedzy użytkownika. Użytkownicy programu Flash Player mogą zarządzać ilością miejsca na dysku dostępną dla poszczególnych domen lub dla wszystkich domen. Jeśli użytkownik zmniejszy ilość dostępnego miejsca na dysku, może to spowodować usunięcie niektórych lokalnych obiektów udostępnionych. Użytkownicy programu Flash Player mogą korzystać również z opcji ochrony prywatności, które uniemożliwiają innym domenom (domenom innym niż aktualnie widoczna na pasku adresy przeglądarki) odczytywanie i zapisywanie lokalnych obiektów udostępnionych. Lokalizacja lokalnych obiektów udostępnianych uległa zmianie w środowisku AIR 3.3 lub nowszym w systemie Mac OS. W przypadku uaktualnienia do przestrzeni nazw wersji 3.3 niektóre obiekty mogą sprawiać wrażenie utraconych.
Uwaga: Pliki SWF, które są zapisywane i uruchamiane na komputerze lokalnym, a nie z serwera zdalnego, zawsze mogą zapisywać udostępnione obiekty innych firm na komputerze. Więcej informacji o udostępnionych obiektach z innych domen zawiera opis panelu globalnych ustawień pamięci dostępny w pomocy programu Flash Player.
Dobrą metodą postępowania jest kontrolowanie błędów związanych z ilością miejsca na dysku i z opcjami ochrony prywatności. Te kontrole należy przeprowadzić po wywołaniu metod getLocal()
i flush()
:
-
SharedObject.getLocal()
— program Flash Player zwraca wyjątek w przypadku niepowodzenia wywołania tej metody, np. gdy użytkownik zablokuje udostępnione obiekty innych firm, a domena w pliku SWF nie jest zgodna z domeną na pasku adresu przeglądarki. -
SharedObject.flush()
— program Flash Player zwraca wyjątek w przypadku niepowodzenia tej metody. W przypadku powodzenia zwracaSharedObjectFlushStatus.FLUSHED
. Jeśli wymagane jest dodatkowe miejsce na dysku, zwracaSharedObjectFlushStatus.PENDING
. Program Flash Player monituje użytkownika, aby zwiększył on ilość wolnego miejsca na dysku dla informacji zapisywanych lokalnie. Ponadto wywoływane jest zdarzenienetStatus
zawierające obiekt informacji wskazujący, czy kasowanie powiodło się albo zakończyło niepowodzeniem.
Jeśli plik SWF podejmie próbę utworzenia lub zmodyfikowania lokalnego obiektu udostępnionego, należy się upewnić, że wielkość pliku to co najmniej 215 pikseli szerokości i co najmniej 138 pikseli wysokości (to minimalne wymiary wyświetlania okna dialogowego, które będzie zawierało informację dla użytkownika dotyczącą zwiększenia ilości miejsca na lokalne obiekty udostępnione). Jeśli wymiary pliku SWF są mniejsze, a wymagane jest zwiększenie ilości miejsca na dysku, metoda SharedObject.flush()
nie powiedzie się i zwróci SharedObjectFlushedStatus.PENDING
oraz zostanie wywołane zdarzenie netStatus
.
Zdalne obiekty udostępnione. Za pomocą serwera Flash Media Server można zdalne obiekty udostępnione i korzystać z nich — są one udostępniane w czasie rzeczywistym przez wszystkie klienty podłączone do danej aplikacji. Gdy jeden klient zmieni właściwość zdalnego obiektu udostępnionego, właściwość zostanie zmieniona dla wszystkich podłączonych klientów. Za pomocą zdalnych obiektów udostępnionych można synchronizować klientów, np. wielu graczy w grze.
Każdy zdalny obiekt udostępniony ma właściwość data
, która jest obiektem z właściwościami przechowującymi dane. Aby zmienić właściwość obiektu danych, należy wywołać metodę setProperty()
. Serwer aktualizuje właściwości, wywołuje zdarzenie sync
i z powrotem wysyła właściwości do połączonych klientów.
Istnieje możliwość wybrania miejsca, w którym zdalny obiekt udostępniony będzie trwały: komputer kliencki, serwer lub oba. Domyślnie program Flash Player zapisuje lokalnie trwałe zdalne obiekty udostępnione o wielkości do 100kB. Próba zapisania większego obiektu spowoduje, że program Flash Player wyświetli okno dialogowe lokalnego magazynu, które umożliwia użytkownikowi zezwolenie lub odmówienie na lokalne przechowywanie obiektów udostępnionych. Należy się upewnić, że rozmiar stołu montażowego ma wymiary przynajmniej 215 x 138 pikseli; jest to minimalny rozmiar wymagany przez program Flash w celu poprawnego wyświetlania okna dialogowego.
Jeśli użytkownik wybierze opcję zezwolenia, serwer zapisze obiekt udostępniony i wywoła zdarzenie netStatus
z właściwością code
o wartości SharedObject.Flush.Success
. Jeśli użytkownik wybierze opcję odmowy, serwer nie zapisze obiektu udostępnionego i wywoła zdarzenie netStatus
z właściwością code
o wartości SharedObject.Flush.Failed
.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
client : Object
Wskazuje obiekt, w ramach którego są uaktywniane metody wywołań zwrotnych. | SharedObject | ||
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
data : Object [tylko do odczytu]
Kolekcja atrybutów przypisanych do właściwości danych; atrybuty te mogą być udostępniane i przechowywane. | SharedObject | ||
defaultObjectEncoding : uint [statyczny]
Domyślne kodowanie (wersja AMF) wszystkich obiektów udostępnianych utworzonych w pliku SWF. | SharedObject | ||
fps : Number [tylko do zapisu]
Określa częstotliwość (na sekundę) wysyłania do serwera zmian obiektu udostępnionego, jakie wprowadza klient. | SharedObject | ||
objectEncoding : uint
Kodowanie obiektów (wersja AMF) dotyczące tego obiektu udostępnianego. | SharedObject | ||
preventBackup : Boolean [statyczny]
Określa, czy w usłudze kopii zapasowych w środowisku rozproszonym iOS są wykonywane kopie zapasowe lokalnych obiektów współużytkowanych. | SharedObject | ||
size : uint [tylko do odczytu]
Bieżący rozmiar obiektu udostępnianego (w bajtach). | SharedObject |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
W przypadku lokalnych obiektów udostępnionych kasuje wszystkie dane i usuwa obiekt udostępniony z dysku. | SharedObject | ||
Zamyka połączenie między zdalnym obiektem udostępnionym i serwerem. | SharedObject | ||
Łączy się ze zdalnym obiektem udostępnionym określonym w obiekcie NetConnection. | SharedObject | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Natychmiast zapisuje lokalnie trwały obiekt w pliku lokalnym. | SharedObject | ||
[statyczny]
Zwraca odwołanie do lokalnie trwałego obiektu udostępnionego, który jest dostępny tylko dla bieżącego klienta. | SharedObject | ||
getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject [statyczny]
Zwraca odwołanie do obiektu udostępnionego serwera Flash Media Server, do którego dostęp może uzyskać wielu klientów. | SharedObject | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Powoduje emisję komunikatu do wszystkich klientów podłączonych do zdalnego obiektu udostępnionego, łącznie z klientem, który wysłał komunikat. | SharedObject | ||
Wskazuje serwerowi, że wartość właściwości w obiekcie udostępnionym została zmieniona. | SharedObject | ||
Aktualizuje wartość właściwości w obiekcie udostępnionym i informuje serwer o tym, że wartość właściwości została zmieniona. | SharedObject | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
Wywoływana w przypadku asynchronicznego zgłoszenia wyjątku — pochodzącego z macierzystego kodu asynchronicznego. | SharedObject | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Wywoływana, gdy obiekt SharedObject zgłasza swój stan lub warunek błędu. | SharedObject | |||
Wywoływane, gdy zdalny obiekt udostępniony został zaktualizowany przez serwer. | SharedObject |
client | właściwość |
client:Object
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wskazuje obiekt, w ramach którego są uaktywniane metody wywołań zwrotnych. Obiektem domyślnym jest this
. Właściwość client można ustawić na inny obiekt i metody wywołania zwrotnego będą wywoływane na rzecz tego innego obiektu.
Implementacja
public function get client():Object
public function set client(value:Object):void
Zgłasza
TypeError — Właściwość client musi obiektem różnym od wartości null.
|
data | właściwość |
data:Object
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Kolekcja atrybutów przypisanych do właściwości data
; atrybuty te mogą być udostępniane i przechowywane. Każdy atrybut może być obiektem ActionScript lub JavaScript dowolnego typu — Array, Number, Boolean, ByteArray, XML itd. Przykład: poniższe wiersze przypisują wartości do różnych aspektów obiektu udostępnionego:
var items_array:Array = new Array(101, 346, 483); var currentUserIsAdmin:Boolean = true; var currentUserName:String = "Ramona"; var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.data.itemNumbers = items_array; my_so.data.adminPrivileges = currentUserIsAdmin; my_so.data.userName = currentUserName; for (var prop in my_so.data) { trace(prop+": "+my_so.data[prop]); }
Wszystkie atrybuty właściwości data
obiektu udostępnionego są zapisywane, pod warunkiem że obiekt jest trwały, a obiekt udostępniony zawiera następujące informacje:
userName: Ramona adminPrivileges: true itemNumbers: 101,346,483
Uwaga: Nie należy przypisywać wartości bezpośrednio do właściwości data
obiektu udostępnionego, np. so.data = someValue
; program Flash Player ignoruje takie przypisania.
Aby usuwać atrybuty lokalnych obiektów udostępnionych, należy użyć kodu takiego jak delete so.data.attributeName
; ustawienie dla atrybutu wartości null
lub undefined
dla lokalnego obiektu udostępnionego nie powoduje usunięcia atrybutu.
W celu utworzenia wartości prywatnych dla obiektu udostępnionego — wartości, które będą dostępne tylko dla instancji klienta podczas korzystania z obiektu i nie będą zapisywane z obiektem po jego zamknięciu — należy utworzyć właściwości zapisywane z nazwą inną niż data
, co przedstawia poniższy przykład:
var my_so:SharedObject = SharedObject.getLocal("superfoo"); my_so.favoriteColor = "blue"; my_so.favoriteNightClub = "The Bluenote Tavern"; my_so.favoriteSong = "My World is Blue"; for (var prop in my_so) { trace(prop+": "+my_so[prop]); }
Obiekt udostępniony zawiera następujące dane:
favoriteSong: My World is Blue favoriteNightClub: The Bluenote Tavern favoriteColor: blue data: [object Object]
W przypadku zdalnych obiektów udostępnionych, jakie są używane z serwerem, wszystkie atrybuty właściwości data
są dostępne dla wszystkich klientów podłączonych do obiektu udostępnionego, a wszystkie atrybuty są zapisywane, jeśli obiekt jest trwały. Jeśli jeden klient zmieni wartość atrybutu, wszyscy klienci zobaczą nową wartość.
Implementacja
public function get data():Object
Powiązane elementy interfejsu API
defaultObjectEncoding | właściwość |
defaultObjectEncoding:uint
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Domyślne kodowanie (wersja AMF) wszystkich obiektów udostępnianych utworzonych w pliku SWF. Gdy lokalne obiekty udostępnione są zapisywane na dysk, właściwość SharedObject.defaultObjectEncoding
wskazuje wersję formatu AMF (Action Message Format), jaka powinna być używana: format ActionScript 3.0 (AMF3) lub format ActionScript 1.0 albo 2.0 (AMF0).
Więcej informacji o kodowaniu obiektu, łącznie z opisem różnic między kodowaniem w obiektach lokalnych i zdalnych, zawiera opis właściwości objectEncoding
.
Wartość domyślna SharedObject.defaultObjectEncoding
powoduje użycie formatu ActionScript 3.0, AMF3. Jeśli wymagane jest zapisanie lokalnego obiektu udostępnionego, który będzie odczytywany przez pliki SWF formatu ActionScript 2.0 lub 1.0, ustaw właściwość SharedObject.defaultObjectEncoding
w taki sposób, aby używany był format ActionScript 1.0 lub ActionScript 2.0, flash.net.ObjectEncoding.AMF0
— na początku pliku przed utworzeniem jakichkolwiek lokalnych obiektów udostępnionych. Wszystkie lokalne obiektu udostępnione utworzone potem będą korzystały z kodowania AMF0 i będą mogły wchodzić w interakcje ze starszą zawartością. Nie można zmienić wartości objectEncoding
istniejących lokalnych obiektów udostępnionych poprzez ustawienie SharedObject.defaultObjectEncoding
po utworzeniu lokalnych obiektów udostępnionych.
Aby ustawiać kodowanie dla poszczególnych obiektów, a nie dla wszystkich obiektów udostępnionych utworzonych przez ten plik SWF, należy ustawić właściwość objectEncoding
lokalnego obiektu udostępnionego.
Implementacja
public static function get defaultObjectEncoding():uint
public static function set defaultObjectEncoding(value:uint):void
Powiązane elementy interfejsu API
fps | właściwość |
fps:Number
[tylko do zapisu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Określa częstotliwość (na sekundę) wysyłania do serwera zmian obiektu udostępnionego, jakie wprowadza klient.
Za pomocą tej metody można kontrolować natężenie ruchu między klientem i serwerem. Przykład: jeśli połączenie między klientem i serwerem jest powolne, możliwe jest ustawienie fps
na niską wartość. I przeciwnie: jeśli klient jest podłączony do aplikacji obsługującej wielu użytkowników, w której limity czasu mają znaczenie, dla fps
można ustawić wyższą wartość.
Ustawienie fps
spowoduje wywołanie zdarzenia sync
i załadowanie zmian do serwera. Jeśli użytkownik chce zaktualizować serwer ręcznie, należy ustawić fps
na 0.
Zmiany nie są wysyłane do serwera do czasu wywołania zdarzenia sync
Oznacza to, że jeśli odpowiedzi z serwera są przesyłane wolniej, aktualizacje mogą być wysyłane do serwera z mniejszą częstotliwością niż wartość określona w tej właściwości.
Implementacja
public function set fps(value:Number):void
objectEncoding | właściwość |
objectEncoding:uint
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Kodowanie obiektów (wersja AMF) dotyczące tego obiektu udostępnianego. Gdy lokalny obiekt udostępniony jest zapisywany na dysk, właściwość objectEncoding
wskazuje wersję formatu AMF (Action Message Format), jaka powinna być używana: format ActionScript 3.0 (AMF3) lub format ActionScript 1.0 albo 2.0 (AMF0).
Kodowanie obiektu jest obsługiwane inaczej w zależności od tego, czy obiekt udostępniony jest lokalny czy zdalny.
- Lokalne obiekty udostępnione. Dla lokalnych obiektów udostępnionych można pobierać lub ustawiać wartość właściwości
objectEncoding
. WartośćobjectEncoding
określa formatowanie, jakie jest używane podczas zapisywania tego lokalnego obiektu udostępnionego. Jeśli wymagane jest, aby lokalny obiekt udostępniony był odczytywany przez plik SWF ActionScript 2.0 lub 1.0 SWF, należy ustawić dla właściwościobjectEncoding
wartośćObjectEncoding.AMF0
. Nawet jeśli ustawiono zapisywanie obiektu w kodowaniu AMF3, program Flash Player może odczytywać lokalne obiekty udostępnione w formacie AMF0. Oznacza to, że jeśli używana jest wartość domyślna właściwości —ObjectEncoding.AMF3
— plik SWF może odczytywać udostępnione pliki utworzone przez pliki SWF ActionScript 2.0 lub 1.0. - Zdalne obiekty udostępnione. Po podłączeniu do serwera zdalny obiekt dziedziczy jego ustawienie
objectEncoding
ze skojarzonej instancji NetConnection (instancja używana do połączenia ze zdalnym obiektem udostępnionym). Po podłączeniu do serwera zdalny obiekt udostępniony dziedziczy ustawieniedefaultObjectEncoding
ze skojarzonej instancji NetConnection. Wartości właściwościobjectEncoding
zdalnego obiektu udostępnionego jest określona przez instancję NetConnection, dlatego ta właściwość jest tylko do odczytu dla zdalnych obiektów udostępnionych.
Implementacja
public function get objectEncoding():uint
public function set objectEncoding(value:uint):void
Zgłasza
ReferenceError — Użytkownik podjął próbę ustawienia wartości właściwości objectEncoding w zdalnym obiekcie udostępnionym. Ta właściwość jest tylko do odczytu dla zdalnych obiektów udostępnionych, ponieważ jej wartość jest określona przez skojarzoną instancję NetConnection.
|
Powiązane elementy interfejsu API
preventBackup | właściwość |
preventBackup:Boolean
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 3.7 |
Określa, czy w usłudze kopii zapasowych w środowisku rozproszonym iOS są wykonywane kopie zapasowe lokalnych obiektów współużytkowanych.
Ustaw wartość true lub false:
- Wartość true zapobiega wykonywaniu kopii zapasowych jakichkolwiek lokalnych obiektów współużytkowanych w usłudze kopii zapasowych w środowisku rozproszonym iOS.
- Wartość false (domyśla) powoduje wykonywanie kopii zapasowych lokalnych obiektów współużytkowanych w usłudze kopii zapasowych w środowisku rozproszonym iOS.
Ta właściwość ma zastosowanie tylko do lokalnych obiektów współużytkowanych i systemu iOS.
Implementacja
public static function get preventBackup():Boolean
public static function set preventBackup(value:Boolean):void
size | właściwość |
size:uint
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bieżący rozmiar obiektu udostępnianego (w bajtach).
Program Flash oblicza wielkość udostępnionego obiektu przechodząc przez wszystkie jego właściwości data; im więcej właściwości data zawiera obiekt, tym dłużej będzie trwało określanie jego wielkości. Określanie wielkości obiektu może trwać dość długo, dlatego korzystanie z tej metody nie jest wskazany, chyba że jest to konieczne.
Implementacja
public function get size():uint
Przykład ( Sposób korzystania z tego przykładu )
"thehobbit"
. Właściwość o nazwie username
zostanie dodana do właściwości data obiektu SharedObject. Następnie śledzona jest właściwość size
, co powoduje zwrócenie wskazanej wartości.
import flash.net.SharedObject; // if these get copied or not var mySo:SharedObject = SharedObject.getLocal("thehobbit"); mySo.data.username = "bilbobaggins"; trace(mySo.size); // 55
clear | () | metoda |
public function clear():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
W przypadku lokalnych obiektów udostępnionych kasuje wszystkie dane i usuwa obiekt udostępniony z dysku. Odwołanie do obiektu udostępnionego jest nadal aktywne, ale właściwości danych zostały usunięte.
W przypadku zdalnych obiektów udostępnionych używanych z serwerem Flash Media Server metoda clear()
powoduje odłączenie obiektu i usunięcie wszystkich danych. Jeśli obiekt udostępniony jest trwały lokalnie, ta metoda powoduje również usunięcie udostępnionego obiektu z dysku. Odniesienie do obiektu udostępnionego jest nadal aktywne, ale właściwości danych zostały usunięte.
Przykład ( Sposób korzystania z tego przykładu )
hostName
. Właściwość o nazwie username
zostanie dodana do właściwości data obiektu SharedObject. Następnie wywoływana jest metoda clear()
, która kasuje wszystkie informacje, jakie zostały dodane do obiektu danych (w tym przypadku była to pojedyncza właściwość o nazwie username
).
package { import flash.net.SharedObject; public class SharedObject_clear { private var hostName:String = "yourDomain"; private var username:String = "yourUsername"; public function SharedObject_clear() { var mySo:SharedObject = SharedObject.getLocal(hostName); if(mySo.data.username == null) { mySo.data.username = username; trace("set: " + mySo.data.username); // yourUsername } else { mySo.clear(); trace("cleared: " + mySo.data.username); // undefined } } } }
close | () | metoda |
public function close():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zamyka połączenie między zdalnym obiektem udostępnionym i serwerem. Jeśli zdalny obiekt udostępniony jest trwały lokalnie, użytkownik może dokonywać zmian na lokalnej kopii obiektu po wywołaniu tej metody. Wszystkie zmiany dokonane na lokalnym obiekcie są wysyłane na serwer w momencie kolejnego połączenia użytkownika ze zdalnym obiektem udostępnionym.
connect | () | metoda |
public function connect(myConnection:NetConnection, params:String = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Łączy się ze zdalnym obiektem udostępnionym określonym w obiekcie NetConnection. Tej metody należy użyć po wywołaniu metody getRemote()
. Jeśli połączenie zostanie zrealizowane pomyślnie, wywołane zostanie zdarzenie sync
.
Przed próbą rozpoczęcia pracy ze zdalnym obiektem udostępnionym należy sprawdzić za pomocą instrukcji try..catch..finally
, czy istnieje możliwość wystąpienia błędu. Następnie należy wykryć i obsłużyć zdarzenie sync
przed dokonaniem zmian w obiekcie udostępnionym. Wszystkie zmiany dokonane lokalnie — przed wywołaniem zdarzenia sync
— mogą zostać utracone.
Metoda connect()
wywoływana jest w celu połączenia ze zdalnym obiektem udostępnionym, na przykład:
var myRemoteSO:SharedObject = SharedObject.getRemote("mo", myNC.uri, false); myRemoteSO.connect(myNC);
Parametry
myConnection:NetConnection — Obiekt NetConnection, który korzysta z protokołu RTMP (Real-Time Messaging Protocol), np. obiekt NetConnection użyty do komunikowania się z serwerem Flash Media Server.
| |
params:String (default = null ) — Ciąg znaków definiujący komunikat, który przekazywany jest do zdalnego obiektu udostępnionego na serwerze. Nie może być używany z serwerem Flash Media Server.
|
Zgłasza
Error — Programowi Flash Player nie udało się połączyć ze zdalnym obiektem udostępnionym. Należy sprawdzić, czy instancja NetConnection jest poprawna, połączona i czy zdalny obiekt udostępniony został pomyślnie utworzony na serwerze.
|
Powiązane elementy interfejsu API
flush | () | metoda |
public function flush(minDiskSpace:int = 0):String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Natychmiast zapisuje lokalnie trwały obiekt w pliku lokalnym. Jeśli ta metoda nie zostanie użyta, program Flash Player zapisze do pliku obiekt udostępniony w momencie zakończenia jego sesji — gdy plik SWF został zamknięty po odśmieceniu obiektu udostępnionego ze względu na utratę wszystkich odwołań do niego, lub gdy wywołana zostanie metoda SharedObject.clear()
lub SharedObject.close()
.
Jeśli ta metoda zwróci wartość SharedObjectFlushStatus.PENDING
, program Flash Player wyświetli okno dialogowe, w którym powiadomi użytkownika o potrzebie zwiększenia dostępnej ilości miejscana dysku dla obiektu z tej domeny. Aby umożliwić zwiększenie miejsca dla obiektów udostępnianych do zapisu w przyszłości, copozwala uniknąć zwrócenia wartości PENDING
, należy przekazać wartość do parametru minDiskSpace
. Kiedy program Flash Player spróbuje zapisać plik, wyszuka liczbę bajtów przekazaną w parametrze minDiskSpace
, zamiast wyszukiwania dostatecznej ilości miejsca do zapisania obiektu udostępnionego w jego bieżącym rozmiarze.
Na przykład, jeśli oczekuje się przyrostu rozmiaru obiektu do maksimum 500 bajtów, mimo że początkowo może on być dużo mniejszy, należy przekazać do parametru minDiskSpace
wartość 500. Jeśli program Flash wygeneruje dla użytkownika komunikat z prośbą o przydzielenie miejsca na dysku dla udostępnionego obiektu, poprosi o 500 bajtów. Gdy użytkownik przydzieli żądaną ilość miejsca, program Flash nie będzie prosił o przydzielenie większej ilości miejsca przy kolejnych próbach kasowania obiektu (pod warunkiem że jego wielkość nie przekracza 500 bajtów).
Gdy użytkownik zareaguje na wyświetlenie okna dialogowego, ta metoda zostanie ponownie wywołana. Zostanie wywołane zdarzenie netStatus
z właściwością code
o wartości SharedObject.Flush.Success
lub SharedObject.Flush.Failed
.
Parametry
minDiskSpace:int (default = 0 ) — Minimalna ilość miejsca na dysku (w bajtach), którą należy przydzielić·dla tego obiektu.
|
String — Jedna z następujących wartości:
|
Zgłasza
Error — Program Flash Player nie może zapisać obiektu udostępnionego na dysk. Ten błąd może pojawić się, gdy użytkownik na stałe zablokował możliwość przechowywania informacji lokalnie dla obiektów tej domeny.
Uwaga: lokalna treść może zawsze zapisać na dysk obiekty udostępnione z pozostałych domen (domen innych niż domena w pasku adresu przeglądarki) nawet, jeśli zapisywanie takich obiektów jest niedozwolone. |
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
hostName
. Właściwość o nazwie username
zostanie dodana do właściwości data obiektu SharedObject. Następnie zostanie wywołana metoda flush()
, po czym nastąpi sprawdzenie, czy został zwrócony ciąg znaków pending
, logiczna wartość true
lub false
. Należy pamiętać o tym, że wszystkie otwarte instancje SharedObject zostaną automatycznie skasowane zawsze po zamknięciu bieżącej instancji programu Flash Player.
package { import flash.net.SharedObject; public class SharedObject_flush { private var hostName:String = "yourDomain"; private var username:String = "yourUsername"; public function SharedObject_flush() { var mySo:SharedObject = SharedObject.getLocal(hostName); mySo.data.username = username; var flushResult:Object = mySo.flush(); trace("flushResult: " + flushResult); trace(mySo.data.username); // yourUsername } } }
getLocal | () | metoda |
public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca odwołanie do lokalnie trwałego obiektu udostępnionego, który jest dostępny tylko dla bieżącego klienta. Jeśli obiekt udostępniony nie istnieje w danym momencie, ta metoda utworzy jeden. Jeśli jakiekolwiek wartości przekazane do metody getLocal()
są nieprawidłowe, lub jeśli wywołanie zakończy się niepowodzeniem, program Flash Player zgłosi wyjątek.
Następujący kod pokazuje, jak przypisać zwrócone odwołanie obiektu udostępnionego do zmiennej.
var so:SharedObject = SharedObject.getLocal("savedData");
Uwaga: jeśli użytkownik wybrał, aby nie zezwalano na przechowywanie lokalne w tej domenie, obiekt nie zostanie zapisany lokalnie nawet, jeśli określono wartość parametru localPath
. Wyjątkiem od tej reguły jest treść lokalna. Lokalna treść może zawsze zapisać na dysk obiekty udostępnione z pozostałych domen (domen innych niż domena w pasku adresu przeglądarki), nawet jeśli zapisywanie takich obiektów jest niedozwolone.
Aby uniknąć konfliktów nazw, program Flash sprawdza lokalizację pliku SWF tworzącego obiekt udostępniony. Na przykład, jeśli plik SWF na stronie www.myCompany.com/apps/stockwatcher.swf tworzy obiekt udostępniony o nazwie portfolio
, ten obiekt nie będzie w konflikcie z innym obiektem o nazwie portfolio
, który został utworzony przez plik SWF na stronie www.yourCompany.com/photoshoot.swf, ponieważ oba pliki pochodzą z różnych katalogów.
Mimo że parametr localPath
jest parametrem opcjonalnym, należy zastanowić się nad jego użyciem zwłaszcza, jeśli pozostałe pliki SWF wymagają dostępu do obiektu udostępnionego. Jeśli dane obiektu udostępnionego są charakterystyczne dla jednego pliku SWF, który nie będzie przenoszony do innej lokalizacji, wówczas użycie wartości domyślnych jest sensowne. Jeśli pozostałe pliki SWF wymagają dostępu do obiektu udostępnionego, lub jeśli plik SWF tworzący obiekt udostępniony będzie w późniejszym czasie przenoszony, wówczas wartość tego parametru decyduje o dostępności obiektu. Na przykład jeśli utworzony zostanie obiekt udostępniony z parametrem localPath
ustawionym na wartość domyślną dla pełnej ścieżki do pliku SWF, wówczas żaden inny plik SWF nie uzyska dostępu do tego obiektu. Jeśli w późniejszym czasie oryginalny plik SWF zostanie przeniesiony do innej lokalizacji, wówczas żaden plik, nawet ten plik SWF, nie będzie miał dostępu do danych przechowywanych w obiekcie udostępnionym.
Aby uniknąć przypadkowego ograniczenia dostępu do obiektu udostępnionego, należy skorzystać z parametru localpath
. Najbardziej tolerancyjnym podejściem jest ustawienie parametru localPath
na znak /
(prawy ukośnik), który czyni obiekt udostępniony dostępnym dla wszystkich plików SWF w domenie; powoduje to jednak wzrost prawdopodobieństwa konfliktu nazw z pozostałymi obiektami udostępnionymi w domenie. Bardziej restrykcyjnym podejściem jest połączenie parametru localPath
z nazwami folderów, które znajdują się w pełnej ścieżce do pliku SWF. Na przykład dla obiektu udostępnionego portfolio
utworzonego przez plik SWF na stronie www.myCompany.com/apps/stockwatcher.swf, można ustawić parametr localPath
jako /
, /apps
lub /apps/stockwatcher.swf
. Należy określić, które podejście zapewni optymalną elastyczność dla aplikacji użytkownika.
Korzystając z tej metody, należy wziąć pod uwagę model zabezpieczeń:
- Nie można uzyskać dostępu do obiektów udostępnionych w innych obszarach izolowanych.
- Użytkownicy mogą ograniczyć dostęp do obiektów udostępnionych za pomocą okna dialogowego Ustawienia Flash Player lub Menedżera ustawień. Domyślnie aplikacja może utworzyć obiekty udostępnione do 100 kB danych na domenę. Administratorzy i użytkownicy mogą także tworzyć ograniczenia możliwości zapisu w systemie plików.
Przypuśćmy, że treść pliku SWF publikowana jest w celu odtworzenia jako pliki lokalne (pliki SWF zainstalowane lokalnie lub pliki EXE), należy wówczas uzyskać dostęp do określonego obiektu udostępnionego z więcej jak jednego lokalnego pliku SWF. W tej sytuacji należy mieć świadomość, że możliwe są dwie różne lokalizacje przechowywania obiektów udostępnionych jako plików lokalnych. Domena, która jest używana, zależy od uprawnień zabezpieczeń nadanych lokalnemu plikowi, który utworzył obiekt udostępniony. Pliki lokalne mogą mieć trzy różne poziomy uprawnień:
- Dostęp tylko do lokalnego systemu plików.
- Dostęp tylko do sieci.
- Dostęp do sieci i lokalnego systemu plików.
Pliki lokalne z dostępem do lokalnego systemu plików (poziom 1 lub 3) przechowują swoje obiekty udostępnione w jednej lokalizacji. Pliki lokalne bez dostępu do lokalnego systemu plików (poziom 2) przechowują swoje obiekty udostępnione w innej lokalizacji.
Istnieje możliwość zablokowania pliku SWF przed korzystaniem z tej metody, ustawiając parametr allowNetworking
znaczników object
oraz embed
na stronie HTML zawierającej treść SWF.
Więcej informacji zawiera temat Bezpieczeństwo w Centrum programistów programu Flash Player.
Parametry
name:String — Nazwa obiektu. Nazwa może zawierać prawy ukośnik (/ ); np. work/addresses jest poprawną nazwą. Spacje oraz poniższe znaki są niedozwolone w nazwie obiektu udostępnionego:
~ % & \ ; : " ' , < > ? # | |
localPath:String (default = null ) — Pełna lub częściowa ścieżka do pliku SWF, który utworzył obiekt udostępniony i określa miejsce, w którym ten obiekt będzie przechowywany lokalnie. Jeśli ten parametr nie zostanie określony, użyta zostanie pełna ścieżka.
| |
secure:Boolean (default = false ) — Wskazuje, czy dostęp do tego obiektu udostępnionego jest ograniczany do plików SWF, które dostarczone są za pomocą połączenia HTTPS. Jeśli plik SWF użytkownika dostarczany jest za pomocą protokołu HTTPS, wartość tego parametru ma naspujące skutki:
Jeśli plik SWF użytkownika został dostarczony za pomocą połączenia protokołu innego niż HTTPS i nastąpi próba ustawienia tego parametru na wartość Poniższy diagram przedstawia użycie parametru |
SharedObject — Odwołanie do lokalnie trwałego obiektu udostępnionego, który jest dostępny tylko dla bieżącego klienta. Jeśli program Flash Player nie może utworzyć lub znaleźć obiektu udostępnionego (na przykład, jeśli określono parametr localPath , lecz wskazany w nim katalog nie istnieje), ta metoda zgłosi wyjątek.
|
Zgłasza
Error — Program Flash Player nie może utworzyć obiektu udostępnionego bez żadnego powodu. Ten błąd może pojawić się, gdy tworzenie i przechowywanie trwałego obiektu udostępnionego przez inną treść programu Flash jest zabronione (nie dotyczy treści lokalnej). Uzytkownicy mogą wykluczyć trwałe obiekty udostępnione w panelu Global Storage Settings Menedżera ustawień, umieszczonego na stronie http://www.adobe.com/support/documentation/en/flashplayer/help/settings_manager03.html.
|
getRemote | () | metoda |
public static function getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zwraca odwołanie do obiektu udostępnionego serwera Flash Media Server, do którego dostęp może uzyskać wielu klientów. Jeśli zdalny obiekt udostępniony nie istnieje w danym momencie, ta metoda utworzy jeden.
Aby utworzyć zdalny obiekt udostępniony, należy wywołać metodę getRemote()
oraz metodę connect()
w celu połączenia obiektu udostępnianego z serwera tak, jak przedstawiono poniżej:
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://somedomain.com/applicationName"); var myRemoteSO:SharedObject = SharedObject.getRemote("mo", nc.uri, false); myRemoteSO.connect(nc);
Aby potwierdzić, że lokalne i zdalne kopie obiektu udostępnionego są zsynchronizowane, należy wykryć i obsłużyć zdarzenie sync
. Wszyscy klienci, którzy chcą udostępnić ten obiekt muszą przekazać tę samą wartość dla parametru name
i remotePath
.
Aby utworzyć obiekt udostępniony wyłącznie bieżącemu klientowi, należy skorzystać z metodySharedObject.getLocal()
.
Parametry
name:String — Nazwa zdalnego obiektu udostępnianego. Nazwa może zawierać prawy ukośnik (/); np. work/addresses jest poprawną nazwą. Spacje oraz poniższe znaki są niedozwolone w nazwie obiektu udostępnionego:
~ % & \ ; : " ' , > ? ? # | |
remotePath:String (default = null ) — Identyfikator URI serwera, na którym przechowywane będą obiekty udostępniane. Ten identyfikator URI musi być identyczny z identyfikatorem URI obiektu NetConnection przekazanego do metody connect() .
| |
persistence:Object (default = false ) — Określa, czy atrybuty właściwości danych obiektu udostępnionego są trwałe lokalnie, zdalnie, czy w obu przypadkach. Ten parametr można również określić w miejscu, w którym obiekt udostępniony będzie przechowywany lokalnie. Dopuszczalne są następujące wartości:
Uwaga: jeśli użytkownik wybrał, aby nie zezwalano na przechowywanie lokalne w tej domenie, obiekt nie zostanie zapisany lokalnie nawet, jeśli ścieżka lokalna zostanie określona na stałe. Aby uzyskać więcej informacji na ten temat, należy zapoznać się z opisem klasy. | |
secure:Boolean (default = false ) — Wskazuje, czy dostęp do tego obiektu udostępnionego jest ograniczany do plików SWF, które dostarczone są za pomocą połączenia HTTPS. Aby uzyskać więcej informacji, należy zapoznać się z opisem parametru secure metody getLocal .
|
SharedObject — Odwołanie do obiektu, który może być udostępniany pomiędzy wieloma klientami.
|
Zgłasza
Error — Program Flash Player nie może utworzyć lub znaleźć obiektu udostępnionego. Ten problem może wystąpić, jeśli w parametrze remotePath i persistence określono ścieżki, które nie istnieją.
|
Powiązane elementy interfejsu API
send | () | metoda |
public function send(... arguments):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Powoduje emisję komunikatu do wszystkich klientów podłączonych do zdalnego obiektu udostępnionego, łącznie z klientem, który wysłał komunikat. W celu przetworzenia i zareagowania na komunikat należy utworzyć funkcję wywołania zwrotnego dołączoną do obiektu udostępnionego.
Parametry
... arguments — Jeden lub większa liczba argumentów: ciąg znaków, który identyfikuje komunikat, nazwa jednej lub większej liczby funkcji obsługi, jakie zostaną dołączone do obiektu udostępnionego, a także parametry opcjonalne dowolnego typu. Nazwa modułu obsługi może być jedynie na pierwszym poziomie zagłębienia (oznacza to, że nie może mieć formatu element nadrzędny / element podrzędny) i pozostaje względna wobec obiektu udostępnionego. Argumenty są serializowane i wysyłane za pomocą połączenia, a odbierający moduł obsługi otrzymuje je w tej samej kolejności. Jeśli parametr jest obiektem cyklicznym (np. powiązaną listą cykliczna), moduł serializujący obsługuje odwołania poprawnie.
Uwaga: Nie należy używać wyrazów zastrzeżonych dla nazw funkcji. Przykład funkcja o nazwie |
setDirty | () | metoda |
public function setDirty(propertyName:String):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wskazuje serwerowi, że wartość właściwości w obiekcie udostępnionym została zmieniona. Ta metoda oznacza właściwość jako dirty, co oznacza zmienione.
Aby utworzyć właściwości dla obiektu udostępnionego, należy wywołać metodę SharedObject.setProperty()
.
Metoda SharedObject.setProperty()
implementuje metodę setDirty()
. W większości przypadków — np. gdy wartość właściwości jest typu pierwotnego, takiego jak String lub Number — można wywołać metodę setProperty()
zamiast metody setDirty()
. Jeśli jednak wartość właściwości jest obiektem, który zawiera własne właściwości, należy wywołać metodę setDirty()
w celu wskazania czasu zmiany wartości w obiekcie.
Parametry
propertyName:String — Nazwa właściwości, która została zmieniona.
|
Powiązane elementy interfejsu API
setProperty | () | metoda |
public function setProperty(propertyName:String, value:Object = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Aktualizuje wartość właściwości w obiekcie udostępnionym i informuje serwer o tym, że wartość właściwości została zmieniona. Metoda setProperty()
w sposób jawny oznacza właściwości jako zmienione (dirty).
Więcej informacji o zdalnych obiektach udostępnionych zawiera dokumentacja serwera Flash Media Server.
Uwaga: Metoda SharedObject.setProperty()
implementuje metodę setDirty()
. W większości przypadków — np. gdy wartość właściwości jest typu pierwotnego, takiego jak String lub Number — można użyć metody setProperty()
zamiast metody setDirty()
. Jeśli jednak wartość właściwości jest obiektem, który zawiera własne właściwości, należy użyć metody setDirty()
w celu wskazania czasu zmiany wartości w obiekcie. Lepszą metodą postępowania jest wywoływanie metody setProperty()
zamiast setDirty()
, ponieważ metoda setProperty()
aktualizuje wartość właściwości tylko wówczas, gdy wartość została zmieniona, natomiast setDirty()
wymusza synchronizację wszystkich klientów subskrybujących.
Parametry
propertyName:String — Nazwa właściwości w obiekcie udostępnionym.
| |
value:Object (default = null ) — Nazwa właściwości (obiekt ActionScript)lub null w celu usunięcia właściwości.
|
Powiązane elementy interfejsu API
asyncError | Zdarzenie |
flash.events.AsyncErrorEvent
właściwość AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływana w przypadku asynchronicznego zgłoszenia wyjątku — pochodzącego z macierzystego kodu asynchronicznego.
StałaAsyncErrorEvent.ASYNC_ERROR
definiuje wartość właściwości type
obiektu zdarzenia asyncError
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt wywołujący zdarzenie |
error | Błąd, który spowodował wywołanie zdarzenia. |
netStatus | Zdarzenie |
flash.events.NetStatusEvent
właściwość NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływana, gdy obiekt SharedObject zgłasza swój stan lub warunek błędu. Zdarzenie netStatus
zawiera właściwość info
, która jest obiektem informacji zawierającym określone informacje dotyczące zdarzenia np. czy próba połączenia zakończyła się powodzeniem lub czy obiekt udostępniony został pomyślnie zapisany na dysku lokalnym.
type
obiektu zdarzenia netStatus
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
info | Obiekt z właściwościami opisującymi stan obiektu lub warunek błędu. |
target | Obiekt NetConnection lub NetStream informujący o swoim stanie. |
Powiązane elementy interfejsu API
sync | Zdarzenie |
flash.events.SyncEvent
właściwość SyncEvent.type =
flash.events.SyncEvent.SYNC
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływane, gdy zdalny obiekt udostępniony został zaktualizowany przez serwer.
Definiuje wartość właściwościtype
obiektu zdarzenia sync
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
changeList | Tablica z właściwościami opisującymi stan tablicy. |
target | Instancja klasy SharedObject uaktualniona przez serwer. |
Powiązane elementy interfejsu API
"application-name"
. Po naciśnięciu kliknięciu przycisku Save, metoda saveValue()
będzie usiłowała zapisać właściwość o nazwie savedValue
we właściwości data
obiektu SharedObject. Jeśli program Flash Player będzie zmuszony poprosić o nadanie uprawnienia do zapisu danych, w momencie jego przyznaniu lub odrzucenia wywołana zostanie metoda onFlushStatus()
. Po naciśnięciu przycisku Clear, metoda clearValue()
usunie wartość zapisaną we właściwości savedValue
; przy kolejnym ładowaniu pliku SWF pobierana wartość jest typu undefined
.
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.NetStatusEvent; import flash.net.SharedObject; import flash.net.SharedObjectFlushStatus; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFieldType; public class SharedObjectExample extends Sprite { private var mySo:SharedObject; public function SharedObjectExample() { buildUI(); saveBtn.addEventListener(MouseEvent.CLICK, saveValue); clearBtn.addEventListener(MouseEvent.CLICK, clearValue); mySo = SharedObject.getLocal("application-name"); output.appendText("SharedObject loaded...\n"); output.appendText("loaded value: " + mySo.data.savedValue + "\n\n"); } private function saveValue(event:MouseEvent):void { output.appendText("saving value...\n"); mySo.data.savedValue = input.text; var flushStatus:String = null; try { flushStatus = mySo.flush(10000); } catch (error:Error) { output.appendText("Error...Could not write SharedObject to disk\n"); } if (flushStatus != null) { switch (flushStatus) { case SharedObjectFlushStatus.PENDING: output.appendText("Requesting permission to save object...\n"); mySo.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); break; case SharedObjectFlushStatus.FLUSHED: output.appendText("Value flushed to disk.\n"); break; } } output.appendText("\n"); } private function clearValue(event:MouseEvent):void { output.appendText("Cleared saved value...Reload SWF and the value should be \"undefined\".\n\n"); delete mySo.data.savedValue; } private function onFlushStatus(event:NetStatusEvent):void { output.appendText("User closed permission dialog...\n"); switch (event.info.code) { case "SharedObject.Flush.Success": output.appendText("User granted permission -- value saved.\n"); break; case "SharedObject.Flush.Failed": output.appendText("User denied permission -- value not saved.\n"); break; } output.appendText("\n"); mySo.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus); } // UI elements private var inputLbl:TextField; private var input:TextField; private var output:TextField; private var saveBtn:Sprite; private var clearBtn:Sprite; private function buildUI():void { // input label inputLbl = new TextField(); addChild(inputLbl); inputLbl.x = 10; inputLbl.y = 10; inputLbl.text = "Value to save:"; // input TextField input = new TextField(); addChild(input); input.x = 80; input.y = 10; input.width = 100; input.height = 20; input.border = true; input.background = true; input.type = TextFieldType.INPUT; // output TextField output = new TextField(); addChild(output); output.x = 10; output.y = 35; output.width = 250; output.height = 250; output.multiline = true; output.wordWrap = true; output.border = true; output.background = true; // Save button saveBtn = new Sprite(); addChild(saveBtn); saveBtn.x = 190; saveBtn.y = 10; saveBtn.useHandCursor = true; saveBtn.graphics.lineStyle(1); saveBtn.graphics.beginFill(0xcccccc); saveBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5); var saveLbl:TextField = new TextField(); saveBtn.addChild(saveLbl); saveLbl.text = "Save"; saveLbl.selectable = false; // Clear button clearBtn = new Sprite(); addChild(clearBtn); clearBtn.x = 230; clearBtn.y = 10; clearBtn.useHandCursor = true; clearBtn.graphics.lineStyle(1); clearBtn.graphics.beginFill(0xcccccc); clearBtn.graphics.drawRoundRect(0, 0, 30, 20, 5, 5); var clearLbl:TextField = new TextField(); clearBtn.addChild(clearLbl); clearLbl.text = "Clear"; clearLbl.selectable = false; } } }
Tue Jun 12 2018, 12:06 PM Z