java applet در فلش

ققنوس

Member
با سلام
مي خواستم بدونم كه ميشه در فلش از java applet استفاده كرد.و چطوري؟؟
من يه نمونه دارم كه نوشته از اون استفاده مي كنه.
این هم لینکش
 

phoenix

Member
نه امكان نداره. فايل رو نديده اين اطمينان رو ميدم كه امكانش نيست!
 

ققنوس

Member
آقا اول فايل رو ببين بعدا.اكشن هاي تو فريم اول رو نگاه كن لطفا.ولي اين فلش فقط از اكشن هاي درون خودش استفاده مي كنه.از بيرون بر نميداره.
 

ققنوس

Member
آقا اول فايل رو ببين بعدا.اكشن هاي تو فريم اول رو نگاه كن لطفا.ولي اين فلش فقط از اكشن هاي درون خودش استفاده مي كنه.از بيرون بر نميداره.
 

phoenix

Member
فايل هاي فلش درون Flash Player تفسير مي شوند كه ميتونه ActiveX و يا Stand-Alone باشه. applet هاي جاوا درون browser و از طريق JVM تفسير مي شوند. 2 مفسر كاملا از هم جدا هستند و امكان تفسير يكي در ديگري نيست.

درون فلش مي توان از طريق JavaScript و DOM تغييراتي درون browser داد و يا element هاي جديدي ايجاد كرد ولي جالب اينكه browser ها محدوديت هايي در اين زمينه دارند. مثلا امكان ايجاد يك ActiveX از درون يك ActiveX ديگر نيست بنابراين نمي توان از درون يك فايل فلش فايل فلش ديگري حتي با استفاده از DOM ايجاد كرد. به احتمال بسيار زياد اين محدوديت در مورد Applet ها هم صدق ميكنه ولي 100٪ وقتي تست كردم ميگم.

در هر حال كليت قضيه اينه كه درون فلش نميتوان Java نوشت. در مورد فايل شما هم مي توانيد خط اول برنامه را حذف كنيد تا مطمئن شويد كه ربطي به برنامه ندارد. در اين فايل فلش فقط از طريق AS يكسري effect ايجاد شده است.
 

ققنوس

Member
ولي من فكر نكنم اين طور باشه.applet ها با فلش يه رابطه ديگه اي دارند.
من قبلا تو يه سايت ديده بودم كه مي تونستي توسط فلش با چند نفر ديگه بازي كني.
فكر كنم لينك سايت www.mousebreaker.com بود.
حتي مي تونستي با بقيه چت كني.
البته شايد اين كارو با php كرده بودن.
 

phoenix

Member
php؟ نه به هيچ وجه!

ActionScript كاملا socket programming رو support ميكنه با استفاده از كلاس NetConnection و application server هايي مثل Flashcom و Breez مي توان chat، بازي هاي online و به طور كلي ارتباطات real time برقرار كرد. اين چيزيه كه در حال حاظر عمده شغل من را تشكيل ميده :D

درسته كه Java بسيار قدرتمنده و در network و client-server programming زبان ديگري به پاي اون نميرسه ولي Flash player هم در سال هاي اخير بسيار از اين نظر پيشرفت كرده. ولي هنوز خيلي ضعيفتر از Java هست.
 

fafa^mx

Member
:)!من نميدونم چرا انقدر اين سوال رو مبپرسن~اگه يكم به اكتيو اكس ها مسلط باشين اين هرفهارو نميزنيد!كجاي دنيا جاوا اپلت رو در SWF لود میکنن!من یه سوال دارم اون وقت!میدونین اگر این امکان در فلش پلیر وجود داشت په نیازی اصلا به خود فلش بود!؟
این سوال 10000000000000000000000000 باری جواو داده شده!
 

ققنوس

Member
يعني فلش php رو ساپورت نميكنه.؟؟؟!!!
و در مورد شما fata جان.نمي دونم تا حالا ديدي يا نه.ولي يه كمپايلر هست كه java applet رو به داخل فلش مي بره خودشم با فرمت swf پس مي ده.من اينو تو لينك تبليغات flashkit ديده بودم ولي نتونستم دانلود كنم چون پولي بود.
 

phoenix

Member
البته كه support ميكنه

در معماري چند لايه client-server programming فلش در لايه client presentation logic قرار دارد. presentation logic كاملا از لايه business logic جداست (در اينجا php) حتي نيازي به دانستن نوع business logic هم ندارد بنابراين براي فلش فرقي نميكنه كه سرور php باشه يا asp

صحبت من در مورد نوع application sever بود كه به عنوان business logic در سرور استفاده ميشه. PHP يا ASP يا ColdFusion فرقي نميكنه اين app server ها از socket پشنيباني نميكنند چيزي كه براي chat و يا ايجاد بازي هاي online لازمه

براي فلش فقط Flachcom و Breez هستند كه از socket هاي كلاس NetConnection پشتيباني مي كنند. اليته مي توان به صورت سطح پايين هم از socket programming در فلش استفاده كرد كه نياز به كلاس XMLSocket و معمولا سرور هاي Java هست
 

ققنوس

Member
آقا من بنا بگفته شما رفتم تو flashkit سرچ كردم اون هم chat.نتايجي كه اورد جالب بود:چت در فلش با php
و طريقه كارش اين طور بود كه اطلاعات رو از يه فايل cgi فراخوني مي كرد.و البته اون فايل cgi به چند تا فايل dat
مرتبط بود.ولي من نفهميدم اين چه ربطي به php داشت. فكر كنم فرمت cgi نشات گرفته از php باشه.
البته يكي ديگه هم بود كه از asp پشتيباني مي شد.
 

phoenix

Member
يه كمپايلر هست كه java applet رو به داخل فلش مي بره خودشم با فرمت swf پس مي ده

البته هميشه ميتوان compiler هايي ساخت كه خروجي swf داشته باشند. دقيقا مثل خود نرم افزار فلش كه AS رو به bytecode هاي فلش تبديل ميكنه ولي اين به اين معني نيست كه بشه درون فلش Java نوشت. به علاوه Java داراي بسياري از قابليتهاست كه فلش اونها رو support نميكنه بنابراين نميشه انتظار داشت كه خروجي چنين software هايي هم دقيق باشه.

چت در فلش با php
و طريقه كارش اين طور بود كه اطلاعات رو از يه فايل cgi فراخوني مي كرد.

بله اين دقيقا كاري است كه chat هاي html انجام مي دهند. خيلي راحت مثلا با كلاس loadvars ميشه اطلاعات را روي سرور فرستاد و اين اطلاعات را براي شخص ديگري ارسال كرد ولي اين socket programming نيست. خيلي محدوديت داره. مهمتر از همه خيلي كنده. با استفاده از يك socket باز مي توان به صورت real-time بين سرور و client ارتباط برقرار كرد. به علاوه سرور و client مي توانند هر كدام متدهايي را در طرف ديگر صدا بزنند و data هاي مربوطه را از جنس همان data براي يكديگر ارسال كنند كه به RMI شهرت دارد. به طور كلي ايجاد ارتباطات بين client ها بدون استفاده از socket از نظر كارايي و سرعت بسيار ضعيفتر از استفاده از socket مي باشد. به علاوه بسياري از كارها را نمي توان بدون استفاده از socket انجام داد مثلا بازي هاي online
 

fafa^mx

Member
آخه جالب اينه كه خودتم نميدوني داري چي ميگي!اولن اينجا عملي و يا Tranaction بین این 2 زبان انجام نمیشه!بلکه ما با استفاده از امکان خواندن اطلاعات از راههای مختلف (Remoting or FLashCom or XML or Load var...) داریم یک سری Variable رو از یک زبان به یک زبان دیگه Pass میکنیم!این در مورد فلش و PHP!فلش هر زبانی که متغیر رو از یکی از این راها بتونه به فلش منتقل کنه(در Server-Side) میشناسه!و با هاش ارتباط برقرار میکنه!اما چیزی که در هر بار ارتباط جابجا میشه Variables هستن!حالا چه CFM,PHP,ASP,ASP.net,JSP,MSP,..... و الا آخر!
در مورد جاوا هم SWF یک Known Format در ویندوز هستش!اگر هر چیزی بخواد رونده نمایش اون رو عوض کنه باید در swfFLashPlayer.exe و 2 OCX مخصوص نمایش اون دست ببره نه در SWF!در اینجور مواقع تمام Additional Compilers میان FlashPlayer ویرایش شدرو به همراه یک SWF ، کامپایل میکنند!در نتیجه فلش عوض پلی شدن در SWFFLashPlayer در Edited Player پخش میشه!حالا برای اینکه جاوا رو وارد Edited Player کنن باید JVM رو در اون بسازن!که تغریبا یه تیم از بخش های یه شرکت مثل Sun باید بشینن این کارو بکنند!پس از اونجا که این ماره ابلهانه برای هیچ شرکتی به صرفه نیست نتنها Sun بلکه هیچ جای دیگری این کارو انجام نمیده!
بازم اگه توضیح میخوای بگو بیشتر وازش کنم!
 

ققنوس

Member
مشكل من هم همينه.من فكر مي كنم فلش(خود player هاش) مي تونن java رو پشتيباني كنن.البته نه بطور كامل بلكه تنها بخش محدودي از دستورها رو.و همين طور در مورد html چون فلش تنها از action script تغذيه نميشه.شما مي توني بدون تغيير دادن كمپايلر ها دستوراتتو حتي vb رو بياري اينجا.اين حرفها همش تو help فلش موجود هست.فقط مشكل من در اين بود كه آيا براي اوردن يه زبان ديگه به فلش مثل جاوا هر چند به طور محدود بايد اونا رو تبديل كنيم يا نه همون طور مستقيم ميان.
با عرض تشكر از لطفتون مشكل اولي حل شد.
در ضمن يه مشكل ديگه.اون قدر حرفو پيچوندين كه من نفهميدم.php هم نياز به مفسر خودش داره يا نه؟
اگه نياز داشته باشه پس اون وقت php رو نميشه به فلش ربط داد؟؟؟
در ضمن phoenix جان id تو انگليسي شده id منه(يا برعكس)
 

phoenix

Member
شايد لازمه من در مورد شيوه compile شدن كد هايي مثل AS و Java كمي توضيح بدم:

AS دقيقا از نظر ساختار شبيه Java هست. هر دو platform independent هستند و هر 2 در 2 مرحله compile مي شوند. هنگامي كه شما در نرم افزار فلش AS مي نويسيد و آنرا compile مي كنيد ابتدا كليه كد هاي AS توسط نرم افزار فلش به bytecode تبديل مي شوند كه چيزي غير از تعدادي حروف غير قابل فهم نيست براي مثال كد زير نمونه اصلي و bytecode آنرا نشان مي دهد:
کد:
for(var i=0; i<5; i++)
{
	trace(i);
}

کد:
88040001006900960B0008000600000000000000003C96020008001C960500070500000048129D0200160096020008001C26960400080008001C501D990200D5FF00


مي توان با استفاده از دستور __bytecode__ از اين مرحله صرف نظر كرد. مثلا نوشتن كد زير هم در فلش همان عمل بالا را انجام مي دهد:

کد:
__bytecode__("88040001006900960B0008000600000000000000003C96020008001C960500070500000048129D0200160096020008001C26960400080008001C501D990200D5FF00");

bytecode ايجاد شده در اختيار compiler فلش قرار مي گيرد كه آنرا تبديل به كد اصلاح شده اي به نام p-code مي كند. p-code در واقع همان swf است كه در اختيار ما قرار مي گيرد و كد هاي آن شبيه به كد ماشين مي باشد. p-code مثال بالا به صورت زير است:

کد:
	constants 'i'
	push 'i', 0.00
	varequals
@4	push 'i'
	getVariable
	push 5
	lessThan
	not
	branchIfTrue @18
	push 'i'
	getVariable
	trace
	push 'i', 'i'
	getVariable
	increment
	setVariable
	branch @4
@18	end

p-code ايجاد شده توسط flash player قابل فهم تفسير است. فرايند مشابهي هم براي compile شدن كدهاي java انجام مي شود.
نكته قابل توجه اينه كه compiler هيچ كدام از 2 زبان اجازه compile شدن و ايجاد bytecode زبان ديگر را نمي دهند. حتي به فرض تغيير در p-code فايل ايجاد شده هم مفسر هيچ كدام (flash player يا JVM) قابليت تفسير ديگري را ندارند.

بنابراين فلش حتي به صورت بسيلر محدود هم كد هاي Java را پشتيباني نمي كند. در مورد VB هم مطمئنم اگر به help فلش دوباره مراجعه كنيد چيز متفاوتي مي بينيد.
دستورات ساده HTML براي راحتي كار درون فلش قرار داده شده اند. نكته اينجاست كه شما فقط با syntax دستورات HTML كار مي كنيد و flash player به صورت internal آنها را به صورت p-code پردازش مي كند نه HTML


در مورد PHP:

كليه زبانهاي برنامه نويسي نياز به compiler يا حداقل interpreter دارند كه PHP هم از اين قاعده مستثني نيسن ولي compiler PHP بر روي server قرار دارن نه در client. شما از طريق API فلش به server متصل مي شويد و server بعد از compile و تفسير كد نتيجه را براي client بر مي گرداند

راستي همون ابتدا متوجه ID شما شدم :lol:
 

ققنوس

Member
كدهاي java چه طوريند.مگه كمپايلر جاوا بر روي سرور نيست.واسه مثال مي گم.شما مي ري از يه سايتي صفحهاي رو كه جاوا داره باز مي كني.من فكر مي كنم اين داده ها توسط يه برنامه بالفرض ie تفسير ميشن و اين برنامه داده ها رو به صورت قابل نمايش براي ما نشون مي ده.مطمينا ie از يه plugin مخصوصي واسه تفسير استفاده مي كنه.حالا در مورد فلش هم اگه ما بتونيم plugin هايي مخصوص اين كار واسه فلش درست كنيم اونوقت شايد بتونيم جاوا رو هم در فلش وارد كنيم.(اين چيزي بود كه من از حرفهاي شما فهميدم).يه سوال ديگه اين كه اگه به دستورات اكشن اسكريپت و جاوا دقت كنيم مي بينيم كاراشون شبيه به هم فقط در محيطي متفاوت.پس ما واسه اوردن يك سري زبان به زبان ديگه نيازمند يه مترجم هستيم.اين چيزي بود كه fata اونو نقض كرد.حالا حرف من اينه كه آيا ميشه اكشن اسكريپت رو به جاوا يا برعكس ترجمه كرد؟؟؟
 

phoenix

Member
نه. لزوما Java Compiler بر روي سرور نيست.Java Compiler در 3 مدل اصلي ارائه ميشه:

-J2SE يا Java 2 Standard Edition: كه مدل استاندارد java بر روي كامپيوتر هاي شخصي است. كليه Applet ها و Application هاي Desktop در Java در اين قسمت قرار مي گيرند

- J2ME يا Java 2 Micro Edition كه مدل كوچك شده Java براي دستگاههاي الكترونيكي اعم از Mobile ها, Robot ها و كلا وسايل الكترونيكي قابل برنامه نويسي

- J2EE يا Java 2 Enterprise Edition كه شامل مدل كلي Java است و معمولا بر روي سرور ها قرار مي گيرد. Application Server هاي ديگر از J2EE براي تفسير كد هاي خود استفاده مي كنند مثل JRun , Flex, ColdFusion , Weblogic , ...

زماني كه بخواهيم كدهاي compile شده Java را اجرا كنيم نياز به JVM و يا Java Virtual Machine داريم. با نصب JVM كليه كدهاي compile شده Java كه فايلهايي به پسوند class. يا jar. هستند قابل تفسير مي شوند.همچنين خود JVM يك player براي browser ها مثل IE نصب مي كند كه اين player وظيفه تفسير applet ها از طريق JVM را دارد.

حالا بر مي گرديم به موضوع اصلي، بله اين امكان وجود دارد كه Flash Player به گونه اي طراحي شود كه قابليت تفسير Java را هم داشته باشد فقط در اون صورت Flash Player به جاي 400KB چيزي حدود 15MB بود و به علاوه همونطور كه فريد گفت اين فقط در تخصص مهندسهاي شركت sun مي باشد.

يه مطلب ديگه اينكه كار Java و ActionScript به هيچ وجه شبيه به هم نيست. Java شايد بدون اغراق 1000 بار از فلش گسترده تر است. تنها قسمتي از Applet ها با فلش همخواني دارد. در همان قسمت هم تنها syntax نوشتاري Java و AS شبيه به هم مي باشد تفاوت در background بسيار اصولي تر است
 

ققنوس

Member
شايد جاوا قويتر از اكشن اسكريپت باشد.اما بعضي يا به طور كلي اكثر دستوراتي كه تو اكشن اسكريپت هستن در جاوا هم هستن.در ضمن از اون سه تا نوع جاوا دومي كه هيچ در مبحث ما نيست.اولي رو هم كه من منظورم نيست.
من منظورم در سومي لزومي نداره كه مفسر بر روي پلير باشه.فكر نكنم ie اون طور باشه.من نمي خوان در مورد apllet ها حرف بزنيم.چون اكثر applet ها در مورد گرافيك هستن وممكنه تداخلي با فلش داشته باشن.
من منظورم برنامه نويسي و جاوا تحت وبه.
بزارين ساده تر بگم.مثلا من يه فايل فلش دارم. و يه چند تا جاوا.دو راه هم پيش رو دارم.اول اين كه من تسلط كامل به جاوا و اكشن اسكريپت دارم و مي تونم دستورات جاوا رو به زبان اكشن اسكريپت ترجمه كنم.اين كار به قول فريد از دست مهندسهاي شركت sun بر مياد.يه راه ديگه هم دارم من ميتونم دستورات جاوا رو بدون مترجم به اكشن اسكريپت ببرم كه اين هم نياز به يه كمپايلر جاوا در كنار فلش داره.كه به گفته شما در اون وقت حجم پلير 15 مگابايت ميشه. ولي من فكر مي كنم هميشه راه فراري وجود داره.
اگه ما بتونيم فايل هاي html رو درون فلش باز كنيم به طوري كه اين html ما هيچ ربطي با فلش نداشته باشه.يعني از كمپايلر اون استفاده نكنه و بره به سراغ مفسر خودش اون وقت كار تمومه.ولي اين كار به نظرم نشدنيه(اگه شما نظري دارين كه حتما دارين بگين.)
يه چيز ديگه هم كه هست اينه كه چرا فلش نمي تونه فايلهاي exe رو درون خودش باز كنه.آخه مگه فايلهاي exe هم نياز به مفسر دارن.مگه اونا self execulate نيستن؟؟؟
 

phoenix

Member
من از آخر جواب ميدم:

يه چيز ديگه هم كه هست اينه كه چرا فلش نمي تونه فايلهاي exe رو درون خودش باز كنه. مگه فايلهاي exe هم نياز به مفسر دارن

البته كه نياز به مفسر دارند. مفسر زبان ماشين در windows فايلهاي exe را تفسير مي كند فايلهاي exe فقط مختص windows هستند و در سيستم عاملهاي ديگر مثل linux يا solaris كار نمي كنند. هر Operating System مفسر زبان ماشين خودش را دارد. هنگامي كه شما با زباني مثلا مثل C يك فايل Self-Executive ايجاد مي كنيد compiler زبان C آنرا به كد ماشين (Assembly) تبديل مي كند و هر جايي كه مفسر assembly مربوط به آن OS موجود باشد آن كد اجرا خواهد شد.

فلش يك زبان خيلي سطح بالا هست حداقل بايد در 3 مرحله compile بشود تا به زبان ماشين تبديل شود چطور ممكنه كه يك فايل exe را اجرا كنه؟ اين وظيفه OS هست.

همينطور هم در مورد اجراي فايلهاي HTML درون فلش! فلش يك plug-in نصب شده درون browser هست چطور امكان داره كه HTML را support كنه؟ يك صفحه ساده HTML براي اجرا نياز به دهها بلكه صدها element مختلف دارد. درون IE دهها مفسر گوناگون وجود دارند:

-HTML parser
-JavaScript Parser
-JScript Pasrser
-VBScript parser
-XML parser
-XSLT parser
-XSD parser
-CSS parser
-DOM implementor
-JPEG Decoder
-GIF Decoder
و دهها component ساده HTML!

Flash Player با حجمي حدود 400K چطور HTML رو Support كنه؟ اگر هم بخواهيم كه كد هاي HTML توسط مفسر خودشان اجرا شوند مشكلات زيادتري بروز خواهد كرد:

-دهها browser مختلف در دنيا هست. فلش كدام رو به عنوان html parser بايد انتخاب كنه؟
-در صورتي كه سيستم شخصي html parser نداشه باشد چي؟ آيا غير از اينه كه platfrom independent بودن فلش زير سوال ميره؟
-قرار دادن يك component ساده IE درون مثلا flash player مستلزم 2MB حجم اضافي است.
-به فرض موفقيت در انجام اين كار چه سودي عايد ما مي شود؟ اين همان كاري است كه browser ها انجام مي دهند. موقعي اين كار ارزش دارد كه امكان كنترل برنامه از طريق AS باشد يا بطور ساده تر امكان ارتباط بين flash player و html paser فرضي وجود داشته باشد كه باز مستلزم چند ده مگا بايت حجم اضافي است!


در مورد Java :

بعضي يا به طور كلي اكثر دستوراتي كه تو اكشن اسكريپت هستن در جاوا هم هستن

احتمالا با Java آشنايي نداريد! Java تركيبي از زبان برنامه نويسي براي client مانند C, زبان برنامه نويسي براي Application هاي Web-Based مانند ActionScript , زباني بسيار قوي براي كار با netword و همچنين قوي ترين platform تحت سرور مي باشد. تنها قسمتي از Java كه مشابه AS مي باشد Applet ها هستند. Applet ها از نظر كارايي بسيار گسترده تر از فايلهاي فلش مي باشند براي مثال از طريق يك applet به راحتي ميتوان از با يك database ارتباط برقرار كرد. همچنين applet ها بسيار خوب از socket و شبكه پشتيباني مي كنند. applet از RMI و Telnet پشتيباني مي كند كه قدرت بسيار زيادي رو به applet ها ميده. applet ها از يك زبان MultiThreaded استفاده مي كنند كه توانايي زيادي به برنامه نويس مي دهد به همراه support بسيار قوي از graphic. مثلا پشتيباني از DirectX يا توانايي texture mapping براي ايجاد بازي هاي 3 بعدي و يا توانايي image processing كه فاكتور خيلي مهمي براي كار با گرافيك است.

همونطور كه مي بينيد applet ها داراي توانايي هاي بسيار زيادي هستند كه در فلش وجود ندارد بنابراين امكان پياده سازي اونها در فلش حتي به فرض تسلط شخص به Java و AS هم اصلا وجود نداره.


من منظورم در سومي لزومي نداره كه مفسر بر روي پلير باشه.فكر نكنم ie اون طور باشه.من نمي خوان در مورد apllet ها حرف بزنيم.چون اكثر applet ها در مورد گرافيك هستن وممكنه تداخلي با فلش داشته باشن.
من منظورم برنامه نويسي و جاوا تحت وبه.

اصلا J2EE را نمي توان با فلش يا چيز ديگري مقايسه كرد. متاسفانه J2EE اونقدر گسترده هست كه من نمي توانم اينجا توضيح كاملي در موردش بدهم.
برنامه هاي روزمره اي كه مي بينيد و با اونها كار مي كنيد application هستند كه مثلا در مورد Java اين برنامه ها وقتي در صفحات وب قرار مي گيردند applet ناميده مي شوند. ولي برنامه هاي J2EE اصلا به اين صورت نيستند. J2EE بيشتر يك platform برنامه نويسي است به هيچ وجه نميتوان با فلش مقايسه اش كرد.

J2EE شامل 14 تكنولوژي گسترده بر روي سرور است مثل SOAP, RMI, Java Mail, JDBC, EJB, Servlet, JSP و ...

براي مثال اصول نرم افزار Yahoo Messenger بر RMI استوار است و از EJB و JDBC هم استفاده مي كند. و يا ColdFusion با هون همه عظمت بعد از تفسير به Servlet ها و EJB ها تبديل ميشه. از JMail ميتوان براي ايجاد يك mail server با قدرت gmail استفاده كرد و ...


اميدوارم متوجه تفاوتهاي Java و Flash شده باشيد. ممكن است كه syntax نوشتاري دو زبان بسيار به هم شبيه باشد - چون هر دو زبان از استاندارد ECMA-Script استفاده مي كنند ولي تفاوتهاي بسيار زيادي دارند.
تنها زباني كه امكان ايجاد فقط بعضي از توانايي هاي Java را دارد #Microsoft C مي باشد كه از اصول تبعيت از Java است.
 

ققنوس

Member
با سلام
آقا دستت درد نكنه منكه خيلي چيزها فهميدم.البته درسته خيلي از لغتها رو با استفاده از babylon مي فهميدم ولي در كل خيلي استفاده كردم.ببينم تو اينارو رو خودت فهميدي يا از كتابي چيزي خوندي.اگه بگي ممنون مي شم. ولي دستت درد نكنه زحمت كشيدي.
 

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

بالا