Je me demande s'il existe un moyen de vérifier la taille limite actuelle sur le disque dur local de l'utilisateur pour sharedObject.Vérification de la quantité d'espace sharedObject disponible
Répondre
Vous pouvez utiliser la propriété size de SharedObject. Pour autant que je sache, il montre la taille d'un SharedObject spécifique, pas tous, comme je le suppose l'option Paramètres s'affiche. Je pense que 100K est la taille par défaut et l'utilisateur est invité dans le cas où plus d'espace est nécessaire.
Il y a un joli exemple pratique dans la documentation ainsi:
"
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;
}
}
}
"
Merci pour votre réponse, mais ce que je suis AFTER est pour voir la "capacité", pas la taille actuelle de l'objet sharedObject. par exemple. voir si l'utilisateur a mis la limite à 0, 10KB, 100KB (ce qui est par défaut comme vous l'avez dit), 1MB, 10MB, ou illimité – Clox
Je vois ce que vous voulez dire. J'ai regardé la documentation et n'ai rien trouvé de maniable. Cela ressemble à une chose simple et pratique à avoir. Vous pourriez essayer de vider une plus grande valeur juste pour le test et l'utilisateur sera invité pour plus d'espace si nécessaire. par exemple. essayez { flushStatus = mySo.flush (10000); } catch (erreur: erreur) { output.appendText ("Erreur ... Impossible d'écrire SharedObject sur le disque \ n"); } Je pense que la plupart des gens ne modifient pas beaucoup leurs réglages, donc je pense qu'il est sûr de s'en tenir à 100K pour la plupart des utilisateurs. Demandez à vos utilisateurs d'autoriser –
pour plus d'espace disque avant d'essayer de rincer quelque chose de gros, peut-être utiliser un écran d'impression pour le rendre évident. Je pense que c'est aussi bon que ça. –
- 1. Utilisation de SharedObject pour la persistance côté client?
- 2. Obtenir la quantité totale de mémoire disponible dans Adobe Flash à partir d'ActionScript
- 3. Valider la quantité d'objets associés
- 4. Vérification de la syntaxe PHP?
- 5. iPhone: espace disque disponible
- 6. Recherche de stockage disponible sur l'iphone
- 7. Vérification de la contrainte sur la table
- 8. Obtenir la quantité d'octets lus par javax.xml.stream.XMLStreamReader
- 9. Augmenter (ou diminuer) la mémoire disponible pour les processus R
- 10. Je passe de la vérification d'état à la vérification comportementale à l'aide de MOQ
- 11. Vérification de la valeur de System.Gadget.Flyout.file
- 12. La ressource ... n'est pas disponible
- 13. Get Product Onhand Quantité
- 14. Equiper Bloc-notes avec vérification orthographique (que vous tapez) - Le meilleur choix disponible?
- 15. Quelle est la quantité de calculs derrière un appel HttpContext.Current?
- 16. Calcul de la quantité d'événements datés dans les colonnes/barres
- 17. Déterminez la quantité de mémoire utilisée par une classe?
- 18. Comment modifier la quantité d'espaces entre les sections de Latex?
- 19. Comment limiter la quantité de LI en utilisant jquery
- 20. Vérification des résultats de la requête sqlite
- 21. contrainte de vérification sur la table recherche
- 22. Problème Vérification de la fin d'une chaîne
- 23. Vérification de la connexion LDAP (Java)
- 24. C# vérification de la connexion modem actif
- 25. PHP - vérification de la balise folksonomy regex
- 26. Désactiver la vérification de syntaxe SQLCMD
- 27. Liste de vérification de la documentation de l'environnement logiciel
- 28. Vérification de la restauration de la base de données terminée
- 29. Algorithme de vérification de la transitivité de la relation?
- 30. Quantité totale de colonnes dans mySQL!
retagged qu'ActionScript-3 –