אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » לימוד Action Script 3 ו-פלאש » אכסון מידע מקומי באמצעות ShareObjects

אכסון מידע מקומי באמצעות ShareObjects

רן בר-זיק אוגוסט 9, 2009 7:46 am אין תגובות

המאמר מלמד כיצד לשמור מידע על המחשב המקורי עם ActionScript 3

המאמר הקודם במדריך ה-AS3External Interface ב-ActionScript 3
המאמר הבא במדריך ה-AS3אודיו עם ActionScript 3
כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמר הקודם למדנו איך לתקשר עם JavaScript באמצעות ActionScript 3. במאמר הזה נלמד איך לאכסן מידע מקומי באמצעות פלאש ו-ActionScript 3.

הדרך הטובה ביותר לאכסן מידע עבור אפליקצית הפלאש שלנו, מלבד השרת, היא באמצעות ShareObjects. מדובר באכסון מידע ייחודי לפלאש שאינו מאוכסן בזכרון המטמון או בעוגיות. חשוב לציין כי רמת האבטחה של ShareObjects נמוכה יחסית ויש לאכסן שם רק מידע שהייתם מאכסנים על עוגיות. בנוסף ישנם משתמשים שמונעים שמירה של מידע על המחשב האישי שלהם.

אחרי כל זה, בואו ונתחיל. אני אצור לנו דוגמא, בדוגמא יהיו שלושה sprite ותיבת טקסט אחת. לחיצה על sprite אחד תכניס את המידע בתיבת הטקסט לתוך ShareObject שנקבע, לחיצה על ה-sprite השני תנקה את ה-ShareObject ולחיצה על ה-sprite השלישי תעביר את המידע מה-ShareObjects לתיבת הטקסט. ככה הקוד נראה, שימו לב להערות:


package {
	import flash.display.Sprite;
	import flash.events.*;
	import flash.geom.*;
	import flash.external.*;
	import flash.text.*;

	public class SharedObjectsForm {
		private var myStage;
		private var startingX:Number = 10;
		private var m_textToBeInsterted:TextField = new TextField();

		public function SharedObjectsForm(myStage) {
			this.myStage = myStage;
			this.m_textToBeInsterted.type = "input";
			this.m_textToBeInsterted.x = 10;
			this.m_textToBeInsterted.y = 10;
			m_textToBeInsterted.height = 20;
			this.m_textToBeInsterted.border = true;
			this.m_textToBeInsterted.borderColor = 0x0000FF;
			this.myStage.addChild(m_textToBeInsterted);
			
			createButton('הכנסה');
			createButton('מחיקה');
			createButton('טעינה');

		}
		private function createButton(buttonText:String) 
		{
			/* Creating Sprite */
			this.startingX+=20;
			var m_animSprite:Sprite = new Sprite();
			m_animSprite.graphics.beginFill(0x000000);
			m_animSprite.graphics.drawRect(startingX, 100, 50, 50);
			m_animSprite.graphics.endFill();
			this.myStage.addChild(m_animSprite);
			
			/* Creating text Field */
			var myTextField:TextField = new TextField();
			myTextField.text = buttonText;
			myTextField.textColor = 0xFF0000;
			myTextField.x = startingX+5;
			myTextField.y = 100;
			this.myStage.addChild(myTextField);
			
			this.startingX+=100;
			/* Adding event handlers */
			switch (buttonText)
			{
				case "הכנסה":
				myTextField.addEventListener(MouseEvent.CLICK, insertToShareObject);
				break;
				case "מחיקה":
				myTextField.addEventListener(MouseEvent.CLICK, deleteFromShareObject);
				break;
				case "טעינה":
				myTextField.addEventListener(MouseEvent.CLICK, callFromShareObject);
				break;
				default:
				trace ("Error")
			}
			
		}
		private function insertToShareObject(ev:Event)
		{
			//In this function m_textToBeInsterted.text will be inserted to ShareObject
		}
		private function deleteFromShareObject(ev:Event)
		{
			//In this function the ShareObject content will be deleted
		}
		private function callFromShareObject(ev:Event)
		{
			//This function will display the data in ShareObject
		}
	}
}

אין לי יותר מדי מה להסביר על הקוד הזה כיוון שאת כולו כיסינו במאמר על טקסט ב-ActionScript 3, במאמר על Sprite ב-ActionScript 3 ובמאמר על אירועים ב-ActionScript 3.

ראשית עלי ליצור את אובייקט ShareObject ואת זה אני עושה כמו כל אובייקט רגיל.
var myStorage:SharedObject = SharedObject.getLocal("myStorage");

myStorage הוא השם שבחרתי לאובייקט, כמובן שניתן לבחור כל שם כל הוא בלי רווחים ותווים מוזרים. חשוב מאד – יש צורך לעשות import ל-flash.net.* אחרת זה לא יעבוד.

אחרי שיצרנו את האובייקט, אנחנו צריכים לפנות אל מתודות הכתיבה, הקריאה והמחיקה שלו.

כתיבה

כתיבה היא פשוטה מאד, אם אנו מניחים ששם האובייקט הוא myStorage אז זה הולך כך:
myStorage.data.myData= whatever;
כש-whatever הוא משתנה/מערך או אובייקט ו-myData הוא שם התכונה של myStorage. כמובן שאפשר לקרוא ל-myData באיזה שם שרוצים.

קריאה

גם קריאה היא פשוטה יחסית. פשוט קריאה ל-myStorage.data.myData.

מחיקה

יש שני סוגי מחיקה – מחיקה רגילה של חלק מהאובייקט (זו שבדרך כלל משתמשים בה) ועושים את זה על ידי:
delete myStorage.data.myData

סוג המחיקה השני מוחק לחלוטין את כל האובייקט והקובץ שלו ולא מותיר לו זכר. פשוט משתמשים במתודת clear של האובייקט.
myStorage.clear()

ועכשיו לדוגמא:


package {
	import flash.display.Sprite;
	import flash.events.*;
	import flash.geom.*;
	import flash.external.*;
	import flash.text.*;
	import flash.net.*;

	public class SharedObjectsForm {
		private var myStage;
		private var startingX:Number = 10;
		private var m_textToBeInsterted:TextField = new TextField();
		private var myStorage:SharedObject = SharedObject.getLocal("myStorage");

		public function SharedObjectsForm(myStage) {
			this.myStage = myStage;
			this.m_textToBeInsterted.type = "input";
			this.m_textToBeInsterted.x = 10;
			this.m_textToBeInsterted.y = 10;
			m_textToBeInsterted.height = 20;
			this.m_textToBeInsterted.border = true;
			this.m_textToBeInsterted.borderColor = 0x0000FF;
			this.myStage.addChild(m_textToBeInsterted);
			
			createButton('הכנסה');
			createButton('מחיקה');
			createButton('טעינה');

		}
		private function createButton(buttonText:String) 
		{
			/* Creating Sprite */
			this.startingX+=20;
			var m_animSprite:Sprite = new Sprite();
			m_animSprite.graphics.beginFill(0x000000);
			m_animSprite.graphics.drawRect(startingX, 100, 50, 50);
			m_animSprite.graphics.endFill();
			this.myStage.addChild(m_animSprite);
			
			/* Creating text Field */
			var myTextField:TextField = new TextField();
			myTextField.text = buttonText;
			myTextField.textColor = 0xFF0000;
			myTextField.x = startingX+5;
			myTextField.y = 100;
			this.myStage.addChild(myTextField);
			
			this.startingX+=100;
			/* Adding event handlers */
			switch (buttonText)
			{
				case "הכנסה":
				myTextField.addEventListener(MouseEvent.CLICK, insertToShareObject);
				break;
				case "מחיקה":
				myTextField.addEventListener(MouseEvent.CLICK, deleteFromShareObject);
				break;
				case "טעינה":
				myTextField.addEventListener(MouseEvent.CLICK, callFromShareObject);
				break;
				default:
				trace ("Error")
			}
			
		}
		private function insertToShareObject(ev:Event)
		{
			//In this function m_textToBeInsterted.text will be inserted to ShareObject
			this.myStorage.data.myData = m_textToBeInsterted.text;
			m_textToBeInsterted.text = "";
		}
		private function deleteFromShareObject(ev:Event)
		{
			//In this function the ShareObject content will be deleted
			delete this.myStorage.data.myData;
		}
		private function callFromShareObject(ev:Event)
		{
			//This function will display the data in ShareObject
			if(this.myStorage.data.myData)
			{
				m_textToBeInsterted.text = this.myStorage.data.myData;
			}
			else
			{
				m_textToBeInsterted.text = "אין תוכן כרגע";
			}
		}
	}
}

וככה זה נראה:

אין יותר מדי מה להוסיף במקרה הזה, פשוט וקל.

במאמר הבא אנו נדון באודיו ב-ActionScript 3 ופלאש.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
קרנה של פלאש ירדה בשנים האחרונות, אבל כאן תוכלו ללמוד AS3 או לשפר את הידע שלכם בשפה זו.
המדריך ללימוד Action Scrip 3
ActionScript 3
ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
חיפוש

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד