سوال در رابطه با loadVariables

mobinzk

New Member
سلام و خسته نباشید
من مشکلی در رابطه با loadVariables دارم ٬ ممنون می شم جواب بدین.

من از طریق دستور زیر فایل text.txt را آوردم توی فلش:
کد:
_root.loadVariables("text.txt");
توی فایل text.txt هم نوشتم num=1
تا اینجای کار مشکلی نیست و برای نمایشش در فلش به راحتی میشه از dynamic text استفاده کرد و مقدار var اون رو num قرار داد.
ولی حالا سوال من این است که چطوری می تونم از num=1 در action script استفاده کنم؟ یعنی در action مقدار num رو قرار بدم؟
 

marSoul

Member
از این روش استفاده کن
کد:
myvars = new LoadVars();
myvars.load("data.txt");
myvars.onLoad = function() {
    _root.vartext.text = myvars.num;
    var myvar:Number = myvars.num;
    trace(myvar);
};

اینطوری می تونی num را که در data.txt تعریف شده رو در متغیر myvar قرار بدی...
 

mobinzk

New Member
از این روش استفاده کن
کد:
myvars = new LoadVars();
myvars.load("data.txt");
myvars.onLoad = function() {
    _root.vartext.text = myvars.num;
    var myvar:Number = myvars.num;
    trace(myvar);
};

اینطوری می تونی num را که در data.txt تعریف شده رو در متغیر myvar قرار بدی...

ممنونم جواب میده .
 
آخرین ویرایش:
کد بالا را وقتی به شکل زیر تغییر دادم، بجای مقدار متغیر "undefined" نمایش میده.
کد:
myvars = new LoadVars();
myvars.load("data.txt");
myvars.onLoad = function() {
    _root.vartext.text = myvars.num;
    var myvar:Number = myvars.num;
};
    trace(myvar);
 

marSoul

Member
به این خاطره که myvar درون function تعریف شده و خارج scope این function قابل دسترسی نیست
 
من میخوام از مقدار myvar در جاهای دیگه استفاه کنم. مثلا در یک frame و یا در لایه ای دیگر.
باید چکار کرد؟
 

royal200x

Member
من میخوام از مقدار myvar در جاهای دیگه استفاه کنم. مثلا در یک frame و یا در لایه ای دیگر.
باید چکار کرد؟

خب ببین ؛ فانکشن شما چه زمانی اجرا میشه ؟ در حالت onLoad یعنی اینکه اطلاعات اول بارگذاری بشه بعد onLoad اتفاق میافته و تابع اجرا میشه . علت اینکه undefined میشه ، یکی همین بحث محدوده ی متغیرهاست و دوم اینکه شما قبل از اینکه اطلاعاتت بارگذاری بشه خواستی که نمایش بده چیزی رو که هنوز بارگذاری نشده ! گرفتی چی شد ؟
این یک راهشه ، خودت نکته ش رو بگیر و برا کار خودت استفاده کن :
PHP:
myvars = new LoadVars ();
myvars.load ("data.txt");
var myvar:Number;
myvars.onLoad = function ()
{
	_root.vartext.text = myvars.num;
	_root.myvar = myvars.num;;//myvars.num;
	_root.trc ();// is function
};
function trc ()
{
	trace (_root.myvar);
}
موفق باشی ...
 
آخرین ویرایش:
خب ببین ؛ فانکشن شما چه زمانی اجرا میشه ؟ در حالت onLoad یعنی اینکه اطلاعات اول بارگذاری بشه بعد onLoad اتفاق میافته و تابع اجرا میشه . علت اینکه undefined میشه ، یکی همین بحث محدوده ی متغیرهاست و دوم اینکه شما قبل از اینکه اطلاعاتت بارگذاری بشه خواستی که نمایش بده چیزی رو که هنوز بارگذاری نشده ! گرفتی چی شد ؟
این یک راهشه ، خودت نکته ش رو بگیر و برا کار خودت استفاده کن :
PHP:
myvars = new LoadVars ();
myvars.load ("data.txt");
var myvar:Number;
myvars.onLoad = function ()
{
	_root.vartext.text = myvars.num;
	_root.myvar = myvars.num;;//myvars.num;
	_root.trc ();// is function
};
function trc ()
{
	trace (_root.myvar);
}
موفق باشی ...


تا حدودی متوجه شدم اما به دلیل اینکه syntax اکشن اسکریپت را نمیدونم نمیتونم ازش استفاده کنم.
فکر میکنم اگر به این سوالم پاسخ بدید، مشکلم حل میشه.
اگر بخوام مقدار myvar را در یک شرط بکار ببرم در کد زیر بجای VVV باید چطوری اسم متغیر myvar را بنویسم.
کد:
myvars = new LoadVars ();
myvars.load ("data.txt");
var myvar:Number;
myvars.onLoad = function ()
{
    _root.vartext.text = myvars.num;
    _root.myvar = myvars.num;;//myvars.num;
    _root.trc ();// is function
};
function trc ()
{
    trace (_root.myvar);
}
if(VVV == 1){
...
}
 

marSoul

Member
اگه درست متوجه شده باشم منظورتون اینه :
کد:
if (_root.myvar==1)
....
}
 
اگه درست متوجه شده باشم منظورتون اینه :
کد:
if (_root.myvar==1)
....
}

درسته.

میخوام مقدار متغیر فوق را از داخل function به بیرون از function انتقال بدهم تا بتوانم از مقدار آن در قسمتهای دیگر اسکریپت استفاده کنم.

اما در مثال بالا اگر که متغیر myvar را trace کنم با پیغام "undefined" روبرو میشوم.
 

marSoul

Member
از این روش استفاده کنید :
کد:
init();
function init() {
	myvar = 3;
}
trace(myvar);
 
آخرین ویرایش:
ببخشید که دارم خنگ بازی در میارم. :sad:

نمیدونم این روشی را که شما معرفی کردید را به چه شکل درباره این کد اجرا کنم!
کد:
myvars = new LoadVars ();
myvars.load ("data.txt");
var myvar:Number;
myvars.onLoad = function ()
{
    _root.vartext.text = myvars.num;
    _root.myvar = myvars.num;//myvars.num;

};
 

royal200x

Member
ببخشید که دارم خنگ بازی در میارم. :sad:

نمیدونم این روشی را که شما معرفی کردید را به چه شکل درباره این کد اجرا کنم!
کد:
myvars = new LoadVars ();
myvars.load ("data.txt");
var myvar:Number;
myvars.onLoad = function ()
{
    _root.vartext.text = myvars.num;
    _root.myvar = myvars.num;//myvars.num;

};

سلام .
شما هر کاری رو که قصد داری با متغیر انجام بدی ، کافیه داخل یک تابع بنویسی ، و داخل رویداد onLoad اون تابع رو فراخوانی کنی .

PHP:
myvars = new LoadVars ();
myvars.load ("data.txt");
var myvar:Number;
myvars.onLoad = function ()
{
    _root.vartext.text = myvars.num;
    _root.myvar = myvars.num;//myvars.num;
    yourFunction();

};
فرض کنیم می خوایم متغیر myvar رو بعد از اینکه لاود شد ، یعنی onLoad رخ داد ؛ یک واحد اضافه کنیم ؛ پس داخل تابع yourFunction() می نویسیم :
PHP:
function yourFunction()
{
     _root.myvar++;
     trace(_root.myva);
}

بازم اگه به جواب نرسیدی ، بگو دقیقا قصد داری چه کاری انجام بدی .
موفق باشی ...
 

جدیدترین ارسال ها

بالا