Tuesday, August 31, 2010

ஆக்சன்ஸ்கிரிப்ட்- 5

variable scopeஐ புரிந்து கொள்ளுதல்.

ஒரு வேரியபிளின் scope என்பது உங்கள் கோடில் எந்த பகுதில் வேரியபிளை அணுக முடியும் என்பதே ஆகும். ஒரு global variableஐ உங்கள் கோடின் எல்லாப் பகுதியிலும் அணுகலாம். ஆமால் ஒரு local  variable என்பது உங்கள் கோடில் ஒரே ஒரு பகுதியில் மட்டுமே வரையறுக்கப்பட்ட ஒன்றாகும். ActionScript 3.0ல், variableகள் டிக்ளேர் செய்யும் function அல்லது class-ன் ஸ்கோப் காண்பிக்கப்படும். ஒரு global variable என்பது எந்த function அல்லது classக்கு வெளியே டிக்ளேர் செய்யப்படும் ஒரு variable ஆகும். எடுத்துக்காட்டாக, கீழ்காணும் ஸ்கிரிப்டில் strGlobal என்ற வேரியபிள் functionக்கு வெளியே டிக்ளேர் செய்யப்பட்டு குளோபல் வேரியபிளாகிறது. எடுத்துக்காட்டில் குளோபல் வேரியபிளை functionக்கு வெளியேயும் உள்ளேயும் அணுக முடியும் என காண்பிக்கப்பட்டுள்ளது.

var strGlobal:String = "Global";
function scopeTest()
{
    trace(strGlobal); // Global
}
scopeTest();
trace(strGlobal); // Global

நீங்கள் ஒரு functionக்கு உள்ளே வேரியபிளை டிக்ளேர் செய்வதன் மூலம் ஒரு local variableஐ டிக்ளேர் செய்யலாம். ஒரு  functionக்கு உள்ளே டிக்ளேர் செய்யப்படும் local variable அந்த functionக்கு மட்டுமே கிடைக்கும். எடுத்துக்காட்டாக கீழ்காணும் ஸ்கிரிப்டில் str2  என்னும் பெயருடைய வேரியபிளை localScope() என்னும் பெயருள்ள functionக்கு உள்ளே டிக்ளேர் செய்தால் அந்த வேரியபிள் functionக்கு வெளியே கிடைக்காது.

function localScope()
{
    var strLocal:String = "local";
}
localScope();
trace(strLocal); // error because strLocal is not defined globally

நீங்கள் உங்கள் local variable-க்காக பயன்படுத்தப்படும் ஒரு வேரியபிள் பெயர் ஏற்கனவே ஒரு global variable-ஆக டிக்ளேர் செய்யப்பட்டிருந்தால், local வரையறை global வரையறையை மறைக்கும். Local variable மட்டும் scope-ல் இருக்கும். Global variable functionக்கு வெளியேயே இருக்கும். எடுத்துக்காட்டாக, கீழ்காணும் ஸ்கிரிப்டில் str1 என்ற பெயருள்ள ஒரு global string variable உருவாக்கப்பட்டுள்ளது பிறகு, அதே பெயருள்ள ஒரு local variable, scopeTest() function-க்கு உள்ளே உள்ளது. function-க்கு உள்ளே உள்ள trace statement, local value-ஐயும்,  function-க்கு உள்ளே உள்ள trace statement global value-ஐயும் வெளிப்படுத்துகிறது.

var str1:String = "Global";
function scopeTest ()
{
    var str1:String = "Local";
    trace(str1); // Local
}
scopeTest();
trace(str1); // Global

No comments:

Post a Comment