flash.net
public class SharedObject
̳SharedObject Inheritance EventDispatcher Inheritance Object

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

SharedObject û϶ȡʹ洢޵ ʹù󣬿ڱؼԶ̷ϵĶͻ SWF Ä¼Í¶Ö®ÊµÊµÊ±Ý¹í¡£ ع CookieԶ̹ʵʱݴ豸 ҪʹԶ̹Ҫһ Adobe Flex Adobe Macromedia Flash Media Server 2

NetStream еһЩԺͷҪڷ Flash Media Server 2 Flex ǿܰķ˹ܡ йĵ Flash Media Server documentationе NetStream ࡣ

Ľ˹ֳ÷

Ҫعʹ﷨

 var so:SharedObject = SharedObject.getLocal("userHighScore");
 so.data.highScore = new Number(1234567890);
 so.flush();
 

ʾУʽˢд̡ ӦóرʱԶˢ¹󣻵˴ʾˢΪ˵д̵IJ衣

ش̿ռעع󽫷dzãҲһЩƣЩƺҪӦóʱӦԿǡ ʱܲ SWF ļд뱾عʱ֪ɾڱعд洢ݡ Flash Player ûԹԵõĴ̿ռ䡣 ûٿô̿ռʱһЩعܻᱻɾ Flash Player û˽ǿɷֹ򣨵ǰַ֮򣩶ȡд뱾ع

עڱؼϣǴԶ̷洢е SWF ļʼտԽд̣ûɵ򽫹д̡ йصϸϢ Global Storage Settings panelйصݵ

Adobe ̿ռû˽صĹϡ ڵ getLocal() flush() ʱִЩ飺

SWF ļԴ޸ıعȷ SWF ļĿΪ 215 أ߶Ϊ 138 أʾʾû䱾ع洢ƵĶԻСߴ硣 SWF ļСЩߴ磬ҪӴ洢ƣ SharedObject.flush() ʧܣ SharedObjectFlushedStatus.PENDING netStatus ¼

鿴ʾ

μ

flush()
getLocal()
netStatus


 å·½
  client : Object
ָʾûصĶ
SharedObject
 Inheritedconstructor : Object
ʵĹ캯á
Object
  data : Object
[read-only] data (property) (attribute) ϣԹʹ洢Щ (attribute)
SharedObject
  defaultObjectEncoding : uint
[static] SWF ļдбعĬ϶루AMF 汾
SharedObject
  fps : Number
[write-only] ָÿӿͻ˶Թĸı͵Ĵ
SharedObject
  objectEncoding : uint
˹Ķ루AMF 汾
SharedObject
 Inheritedprototype : Object
[static] ԭͶá
Object
  size : uint
[read-only] ĵǰСֽΪλ
SharedObject
 å·½
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
ʹ EventDispatcher ע¼ʹܹ¼֪ͨ
EventDispatcher
  
ڱعݲӴɾ
SharedObject
  
رԶ̹ͷӡ
SharedObject
  
connect(myConnection:NetConnection, params:String = null):void
ָͨӵϵԶ̹
SharedObject
 Inherited
¼ȵ¼С
EventDispatcher
  
flush(minDiskSpace:int = 0):String
ùд뱾ļ
SharedObject
  
getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject
[static] ضԱùãöֻڵǰͻˡ
SharedObject
  
getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject
[static] Խ Flash Media Serverڶͻ˼乲Ķ󷵻һá
SharedObject
 Inherited
EventDispatcher ǷΪض¼עκ
EventDispatcher
 Inherited
ָʾǷѾָԡ
Object
 Inherited
ָʾ Object ʵǷָΪĶԭС
Object
 Inherited
ָʾָǷڡǷö١
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher ɾ
EventDispatcher
  
send(... arguments):void
ӵָԶ̹пͻˣ͸ϢĿͻˣ㲥һϢ
SharedObject
  
setDirty(propertyName:String):void
֪ͨԣ data Զ壩ֵѸġ
SharedObject
  
setProperty(propertyName:String, value:Object = null):void
¹ijԣ data Զ壩ֵ֪ͨԵֵѸġ
SharedObject
 Inherited
ѭ̬ԵĿԡ
Object
 Inherited
ַָʾʽ
Object
 Inherited
ָԭʼֵ
Object
 Inherited
Ƿô EventDispatcher κʼΪָ¼ע¼
EventDispatcher
¼
 Â¼ÕªÒªå·½
 Inherited Flash Player òϵͳ㲢Ϊ״̬ʱȡEventDispatcher
   첽쳣Ա첽룩ʱȡSharedObject
 Inherited Flash Player ʧȥϵͳ㲢Ϊǻ״̬ʱȡEventDispatcher
   SharedObject ʵ״̬ʱȡSharedObject
   ڷԶ̹(SharedObject)È¡SharedObject
ϸϢ
client
client:Object  [read-write]

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ָʾûصĶ Ĭ϶Ϊ this Խ˿ͻΪ󣬲Դ˶ûص


ʵ
    public function get client():Object
    public function set client(value:Object):void


TypeError — 뽫 client Ϊǿն
data 
data:Object  [read-only]

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

data (property) (attribute) ϣԹʹ洢Щ (attribute) ÿԶκ ActionScript JavaScript ͵Ķ顢ֵֽ֡顢XMLȵȣ 磬漸нֵIJͬ棺

  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]);
  }
  

õģ湲 data (property) (attribute)Ϣ

  userName: Ramona
  adminPrivileges: true
  itemNumbers: 101,346,483
  

ע⣺ֱֵӸ data ԣͬ so.data = someValue һFlash Player Щֵ

Ҫɾعԣʹ delete so.data.attributeName Ĵ룻عΪ null undefined ɾԡ

ҪΪ󴴽˽ ֵöʹʱֻпͻʵſʹøֵҸֵڶرʱö洢һ𣩣봴Ʋ data 洢ǣʾ

  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]);
  }
  

Ý£

  favoriteSong: My World is Blue
  favoriteNightClub: The Bluenote Tavern
  favoriteColor: blue
  data: [object Object]
  


ʵ
    public function get data():Object

μ

defaultObjectEncoding 
defaultObjectEncoding:uint  [read-write]

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

SWF ļдбعĬ϶루AMF 汾 ڽعдʱSharedObject.defaultObjectEncoding ԽָʾӦʹõ Action Message Format İ汾ActionScript 3.0 ʽ (AMF3)ActionScript 1.0 2.0 ʽ (AMF0)

ڶϸϢغԶ̹IJ죩 objectEncoding Ե

SharedObject.defaultObjectEncoding ĬֵΪʹ ActionScript 3.0 ʽ (AMF3) Ҫ ActionScript 2.0 1.0 SWF ļԶȡıعӦڴκαع֮ǰڽűʼ SharedObject.defaultObjectEncoding Ϊʹ ActionScript 1.0 ActionScript 2.0 ʽ (flash.net.ObjectEncoding.AMF0) 󴴽бع󶼽ʹ AMF0 룬ݽ ع󴴽󣬽޷ͨ SharedObject.defaultObjectEncoding бع objectEncoding ֵ

ҪÿΪö룬Ϊ SWF ļйö룬Ӧñع objectEncoding ԡ


ʵ
    public static function get defaultObjectEncoding():uint
    public function set defaultObjectEncoding(value:uint):void

μ

fps 
fps:Number  [write-only]

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ָÿӿͻ˶Թĸı͵Ĵ

ϣƿͻ֮ͨʹô˷ 磬ͻ֮ԽԽ fps ΪһԽСֵ ෴ͻӵһʱиҪĶûӦó򣬿Ҫ fps ΪһԽϴֵ

fps sync ¼¶Էиġ ֶֻ·ɽ fps Ϊ 0

ڵ sync ¼֮ǰὫķ͸ Ҳ˵Ӧʱ͸µƵСڴеֵָ


ʵ
    public function set fps(value:Number):void
objectEncoding 
objectEncoding:uint  [read-write]

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

˹Ķ루AMF 汾 ڽعдʱobjectEncoding ԽָʾӦʹõ Action Message Format İ汾ActionScript 3.0 ʽ (AMF3)ActionScript 1.0 2.0 ʽ (AMF0)

ݹDZػԶִвͬĶ


ʵ
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void


ReferenceError — ΪijԶ̹ objectEncoding Öµ Զ̹ԣΪֻΪֵɹ NetConnection ʵ

μ

size 
size:uint  [read-only]

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ĵǰСֽΪλ

Flash ͨһ㹲ÿԼöĴСеԽ࣬СʱԽ СҪķ൱Ĵʱ䣬ˣضҪϣʹô˷


ʵ
    public function get size():uint

μ


ʾ
ʹʾ

´ʹ ID "thehobbit" SharedObject Ϊ username ӵ SharedObject С Ȼ size ԣ⽫ָʾֵ

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()
public function clear():void

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ڱعݲӴɾ ԹȻڻ״̬Աɾ


ʾ
ʹʾ

´ʹֵΪ hostName ID ںִймһ SharedObject Ϊ username ӵ SharedObject С clear() ӵݶϢڱһΪ 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() 
public function close():void

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

رԶ̹ͷӡ һԶ̹ôڱأôڴ˷úûԶԸöıظиġ ԱضκθĶûһӵԶ̹ʱ͸

connect() 
public function connect(myConnection:NetConnection, params:String = null):void

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ָͨӵϵԶ̹ ڷ SharedObject.getRemote() ֮ʹô˷ ɹӺ󣬵 sync ¼

ڳԲԶ̹֮ǰӦǷָʾӳɹķֵ trueȻȴ sync ¼ȡ ôô sync ¼֮ǰԱضκθĶпܶʧ

ע˵÷ false򲻻 sync ¼

myConnection:NetConnection — һʹʵʱϢЭ (RTMP) NetConnection Flash Media Server ͨŵĶ󣩡
 
params:String (default = null) — һַҪݵ Flash Media Server IJ Щڶ֮󴫵ݡ 磬Ĵ뽫Ϣ "mo?foo=false" ݵ Flash Media Server
  var myNC:NetConnection = new NetConnection();
  myNC.connect("rtmp://[myDomain].com/applicationName");
  var myRemoteSO:SharedObject = SharedObject.getRemote("mo", myNC.uri, false);
  myRemoteSO.connect(myNC, "foo=false");
ע⣺Flash Media Server汾 2.0.3Ŀǰ֧ params


Error — Flash Player ޷ӵָԶ̹ È· NetConnection ʵЧӣڷϳɹԶ̹

μ

flush() 
public function flush(minDiskSpace:int = 0):String

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ùд뱾ļ ʹô˷ Flash Player ڹỰʱҲ˵ SWF ļرʱڲжԹκöΪʱڵ SharedObject.clear() SharedObject.close() ʱдļ

Ë· SharedObjectFlushStatus.PENDING Flash Player ʾһԻҪûӴ̿ռԹеĶʹá Òªí½«æ¹²Ê±Õ¼Ü¹Ó¶â·µÖµ PENDINGΪ minDiskSpace Ò»Öµ Flash Player дļʱҴݸ minDiskSpace ֽDz㹻ĿռԹĵǰС湲

磬ԤڹΪ 500 ֽڣʹʼʱҪСö࣬ҲΪ minDiskSpace 500 Flash ҪûΪù̿ռ䣬Ҫ 500 ֽڡ ûĿռ֮󣬵ԺԶöʱֻҪС 500 ֽڣFlash ҪĿռ䡣

ûӦԻֵΪ SharedObject.Flush.Success SharedObject.Flush.Failed code ԣٴεô˷ netStatus ¼

minDiskSpace:int (default = 0) — ˶С̿ռ䣨ֽΪλ

String — Ò»Öµ
  • SharedObjectFlushStatus.PENDINGûԴĶбϢ洢ĿռԴ洢ö Flash Player ʾûռ䡣
  • SharedObjectFlushStatus.FLUSHEDѳɹд뱾شϵļ

Error — Flash Player ܽд̡ ûýֹԸĶбϢ洢ִܳ˴

עʼտԽԵ򣨵ǰַе򣩵Ĺд̣ʹֹд̡

μ


ʾ
ʹʾ

´ʹֵΪ hostName ID ںִймһ SharedObject Ϊ username ӵ SharedObject С Ȼ flush() ȷصַ pending true false IJֵ ע⣺򿪵 SharedObject ʵ 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() 
public static function getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ضԱùãöֻڵǰͻˡ вڹ˷һ ݸ getLocal() κֵЧʧܣFlash Player 쳣

´ʾνصĹø

var so:SharedObject = SharedObject.getLocal("savedData");

ע⣺ûѡ˴Ӳбش洢ʹָ localPath ֵҲڱر档 ݲѭ˹ ʼտԽ򣨵ǰַ֮еĹд̣ʹֹд̡

Ϊ˱ƳͻFlash ῼǴ SWF ļλá 磬λ www.myCompany.com/apps/stockwatcher.swf SWF ļһΪ portfolio Ĺù󲻻λ www.yourCompany.com/photoshoot.swf SWF ļһΪ portfolio ĶͻΪ SWF ļԴڲͬĿ¼

Ȼ localPath ǿѡģӦÿǸò;ر SWF ļҪʹʱ еضһƶλõ SWF ļʹĬֵ⡣ SWF ļҪʹ󣬻 SWF ļԺ󽫷ƶ˲ֵӰ칲Ŀɷԡ 磬 localPath Ϊ SWF ļ·Ĭֵʱһôκ SWF ļ޷ʸù Ժԭʼ SWF ļƶһλãôǸ SWF ļҲ޷Ѿ洢ڹеݡ

ΪƶԹķʣʹ localpath í¼¶ßµÄ·Ç½ localPath Ϊ /бܣʹе SWF ļɷʸù󣬵ƳͻĿԡ Ƽϸߵķ localPath ×· SWF ļ·еļ 磬λ www.myCompany.com/apps/stockwatcher.swf SWF ļ portfolio 󣬿Խ localPath Ϊ//apps /apps/stockwatcher.swf ȷַΪӦóṩѵԡ

ʹô˷ʱ뿼 Flash Player ȫģͣ

ٶҪطŵ SWF ļݷΪļذװ SWF ļ EXE ļңҪӶ SWF ļijضĹ £ע⣺ڱļԣܻʹͬλ洢 õȡΪùıļİȫȨޡ ļԾֲͬȨޣ

  1. ܷʱļϵͳ
  2. Ü·ç¡£
  3. ܷ磬Ҳܷʱļϵͳ

Էʱļϵͳ1 3 ıļ乲洢һλá ޷ʱļϵͳ2 ıļ乲洢һλá

ڰ SWF ݵ HTML ҳ object embed ǩ allowNetworking ֹ SWF ļʹô˷

йϸϢ²֣

name:String — Æ¡ ƿ԰б (/)磬work/addresses ǺϷơ вʹÿոҲʹַ
  ~ % & \ ; : " ' , < > ? # 
  
 
localPath:String (default = null) — ˹ SWF ļ·ò²¿·Â·â½«È·Ä±Ø´æ´¢Î»Ã¡ δָ˲ʹ·
 
secure:Boolean (default = false) — ȷԴ˹ķǷֻͨ HTTPS Ӵݵ SWF ļ SWF ļͨ HTTPS ݣ˲ֵЧ
  • ˲Ϊ true Flash Player һµİȫȡһаȫá ֻͨ HTTPS ݵ SWF ļԴ˰ȫжȡд룬 HTTPS SharedObject.getLocal() secure Ϊ true
  • ˲Ϊ false Flash Player һµĹȡһйãͨ HTTPS Ӵݵ SWF ļԴ˹йýжȡд롣

SWF ļͨ HTTPS ӴݵģԽ˲Ϊ true޷µĹ󣨻ǰİȫ󣩣ҷ null ۴˲ΪֵĹӽĴ̿ռ

ͼʾ˵ secure ;

SharedObject — һԹãùڱزֻڵǰͻˡ Flash Player ޷ҵ磬ָ localPath ڴĿ¼ʱ˷쳣

Error — ʲôԭFlash Player Ü´ Ö¹ Flash ݴ洢ù󣬽ִ˴ û“ù”“ȫִ洢”Ͻֹù http://www.adobe.com/support/documentation/cn/flashplayer/help/settings_manager03.html

μ

getRemote() 
public static function getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

Խ Flash Media Serverڶͻ˼乲Ķ󷵻һá вڹ˷һ

´ʾνصĹø

var myRemote_so:SharedObject = SharedObject.getRemote(name, remotePath, persistence);

Ҫֻڵǰͻ˵Ĺʹ SharedObject.getLocal()

ô˷ʹ SharedObject.connect() ӵӦóдʾ

     var myNC:NetConnection = new NetConnection();
     myNC.connect("rtmp://[yourDomain].com/applicationName");
     var myRemoteSO:SharedObject = SharedObject.getRemote("mo", myNC.uri, false);
     myRemoteSO.connect(myNC);
     

ҪȷϹıظԶ̸ͬʹ sync ¼

ϣ˶пͻ˱Ϊ name remotePath ֵͬ йԶ̹Ϣ Flash Media Server ĵе SharedObject.getRemote()

name:String — Æ¡ ƿ԰б (/)磬work/addresses ǺϷơ вʹÿոҲʹַ
 ~ % & \ ; : " ' , > ? ? #
 
remotePath:String (default = null) — 洢ķ URI URI 봫ݸ SharedObject.connect() NetConnection URI ͬ
 
persistence:Object (default = false) — ָԵDZô滹Զô棬ͬʱбôԶô档 ˲ָıش洢λá ɽֵܵ
  • falseָͻ˻ϵĹԵġ
  • trueָֻзϵĹԵġ
  • ·ò²¿·Â·Ö¸Í»ËºÍ·ÏµÄ¹ÔµÄ¡ ͻ˵Ĺ洢ָ·УеĹ洢ӦóĿ¼еĿ¼ڡ

ע⣺ûѡ˴Ӳıش洢ʹ·ָΪԣҲڱر档 йϸϢ

 
secure:Boolean (default = false) — ȷԴ˹ķǷֻͨ HTTPS Ӵݵ SWF ļ йϸϢ getLocal Ŀж secure

SharedObject — Կڶͻ˼乲Ķá

Error — Flash Player Þ·Òµ Ϊ remotePath persistence ָڵ·ò½«³

μ

send() 
public function send(... arguments):void

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ӵָԶ̹пͻˣ͸ϢĿͻˣ㲥һϢ ÒªÓ¦Ï¢Ó¦íº¯Ô½ä·¢Íµ

... arguments — Ò»Ò»Ê¶Ï¢Ö·ÓµÒ»íº¯Æ£Ô¼ÍµÄ¿Ñ¡ Ç¾Ð»Í¨Ó·Í£Õ´íº¯Í¬Ë³Ç¡ Ä³ÎªÑ­ç£ºÑ­í£©Ð»È·Ø´Ã¡

עʹñ 磬myRemoteSO.send("close") ʧܡ

setDirty() 
public function setDirty(propertyName:String):void

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

֪ͨԣ data Զ壩ֵѸġ ˷ԱǩΪѸ (dirty)ڷ ActionScript ʹá

ʹ SharedObject.data ԻȫͨµġΨһƵ SharedObject Ϊ󴴽ԡ йַIJϸϢ SharedObject.data ԡ

SharedObject.setProperty() ʵ setDirty() £統ԵֵΪ String Number ԭʼʱӦʹ setProperty()ʹ setDirty() ȻijԵֵһԵĶʱʹ setDirty() ָʾöеֵĸʱ䡣

propertyName:String — Ѹĵơ

μ

setProperty() 
public function setProperty(propertyName:String, value:Object = null):void

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

¹ijԣ data Զ壩ֵ֪ͨԵֵѸġ setProperty() ʽؽԱǩΪѸ (dirty)ڷ ActionScript ʹá һЩ Flash Media ServerҪʽ setProperty()ԱָʾԵĸʱ䡣

ڷ˵ SharedObject.setProperty()ͨͻϵ sync ¼Ϊκʹù Flash Player ͻ˵ø֪ͨ ˵ propertyName ͻ˵ data (property) (attribute) ͬ 磬´жǵЧģǰǷ ActionScriptк͵ǿͻ ActionScript

  setProperty("nameVal", "foo");
  setDirty("nameVal");
  data["nameVal"] = "foo";
  data.nameVal = "foo";
  

Flash Media Server ûԴ Flash Media Server Server-Side ActionScript Language Referenceҵڷ ActionScript Զ̹Ϣ

ע⣺SharedObject.setProperty() ʵ setDirty() £統ԵֵΪ String Number ԭʼʱӦʹ setProperty()ʹ setDirty ȻijԵֵһԵĶʱʹ setDirty() ָʾöеֵĸʱ䡣 ͨõ setProperty() Ҫ setDirty()Ϊ setProperty() ֵֻĵʱֵ setDirty() ǿжĿͻ˽ͬ

propertyName:String — Եơ
 
value:Object (default = null) — ÖµÒ» ActionScript 󣩣Ϊ null ɾԡ

μ

¼ϸϢ
asyncError ¼
¼: flash.events.AsyncErrorEvent
AsyncErrorEvent.type property = flash.events.AsyncErrorEvent.ASYNC_ERROR

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

첽쳣Ա첽룩ʱȡ

AsyncErrorEvent.ASYNC_ERROR asyncError ¼ type ֵ

¼ԣ

Öµ
bubblesfalse
cancelablefalseûҪȡĬΪ
currentTargetǰʹij¼ Event Ķ
targetʧܵĶ
error¼Ĵ
netStatus ¼  
¼: flash.events.NetStatusEvent
NetStatusEvent.type property = flash.events.NetStatusEvent.NET_STATUS

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

SharedObject ʵ״̬ʱȡ netStatus ¼ info ԣΪ¼ضϢ磬ӳǷɹǷ񱻳ɹд뱾ش̣Ϣ

netStatus ¼ type ֵ

¼ԣ

Öµ
bubblesfalse
cancelablefalseûҪȡĬΪ
currentTargetǰʹij¼ Event Ķ
infoһ󣬾״̬ԡ
target״̬ NetConnection NetStream

μ

sync ¼  
¼: flash.events.SyncEvent
SyncEvent.type property = flash.events.SyncEvent.SYNC

Ô°æ±¾ : ActionScript 3.0
Player æ±¾ : Flash Player 9

ڷԶ̹(SharedObject)ȡ

sync ¼ type ֵ

¼ԣ

Öµ
bubblesfalse
cancelablefalseûҪȡĬΪ
currentTargetǰʹij¼ Event Ķ
changeListһ飬״̬ԡ
targetɷµ SharedObject ʵ

μ

ʾ ʹʾ

´ʹ ID "application-name" ںִймһ “”ťʱsaveValue() ԽһΪ savedValue Ա浽 SharedObject data Ô¡ Flash Player ҪṩݵȨޣûܾȨʱ onFlushStatus() “”ťʱclearValue() ɾ savedValue бֵ´μ SWF ļʱֵΪ 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;
        }
    }
}