mo.js ایک منفرد موشن گرافکس جاوا اسکرپٹ لائبریری ہے جو نہ صرف مکمل سکرین کے صفحے حرکت پذیری لوڈرز کو سہولت فراہم کرتا ہے، بلکہ کلک کرنے کے لئے بھی کلک کریں مائیکرو بات چیت، اور ٹن شکل کی جوڑی.
اگر آپ تھوڑی دیر کے لئے ویب ڈیزائن منظر کی پیروی کرتے ہیں تو، امکانات یہ ہے کہ آپ بھر میں آ جائیں گے - یا شاید ان کے ساتھ بات چیت کی گئی ہے - حرکت پذیری کی تکنیک اور لائبریریوں کی ایک وسیع صف. بنیادی ٹیکنالوجیز جیسے سی ایس ایس، HTML5 اور جاوا اسکرپٹ بھی زیادہ طاقتور بن رہے ہیں، اور براؤزر کی حمایت وقت کے ساتھ بہتر ہو رہی ہے. یہ اثر یہ ہے کہ زیادہ جدید ترین ویب متحرک آلات میں آلات کی حمایت کی جا سکتی ہے. یاد رکھیں، اگر آپ ایک پیچیدہ سائٹ کی تعمیر کر رہے ہیں، تو آپ ویب میزبانی سروس آپ کے منصوبے کی حمایت کرنے کے قابل ہونا ضروری ہے.
کچھ حرکت پذیری کی حوصلہ افزائی کی ضرورت ہے؟ یہاں سب سے اوپر کے کچھ بہت اچھے مثال ہیں سی ایس ایس حرکت پذیری دوبارہ بنانے کے لئے. کوڈنگ کے بغیر سائٹ بنانا چاہتے ہیں؟ ان کی کوشش کریں ویب سائٹ بلڈرز .
ویب حرکت پذیری، جیسا کہ یہ ظاہر ہوتا ہے، یہاں رہنے کے لئے ہے. تاہم، سب سے زیادہ مقبول حرکت پذیری کی تکنیکوں کے ساتھ ایک مختصر یہ ہے کہ وہ روایتی UI / UX عناصر کو متحرک کرنے کے لئے گروہ ہیں جیسے سلائڈ شو، ٹیبڈ بٹن اور ڈراپ ڈاؤن مینو. نتیجے کے طور پر، ان کا استعمال کرتے ہوئے آخر میں آپ کی سائٹ کو بہت واقف اور غیر دلچسپ بنا سکتے ہیں.
mo.js اس کے ساتھ مدد کر سکتے ہیں. لائبریری کا استعمال کرتے ہوئے اس کے بلٹ میں اجزاء جیسے ایچ ٹی ایم ایل، شکل، سول، پھٹ اور stugger کے استعمال سے غیر معمولی سائٹ کے عناصر کو متحرک کرنے میں مدد ملتی ہے. لائبریری استعمال کرنے، تیز، ریٹنا کے لئے تیار، ماڈیولر اور کھلا ذریعہ استعمال کرنے میں بہت آسان ہے. اس سبق میں، mo.js کے ساتھ کام کرنے کی بنیادی باتیں متعارف کرایا جاتا ہے اور دو تکنیکوں کا مظاہرہ کیا گیا ہے؛ دھماکے اور بلبلا.
ٹیوٹوریل فائلوں کو ذخیرہ کرنے کے لئے اپنے ڈیسک ٹاپ پر ایک فولڈر، mo.js بنانے کی طرف سے شروع کریں. اس کے اندر اندر تین اضافی فولڈر بنائیں: سی ایس ایس اسٹائل فائلوں کو ذخیرہ کرنے کے لئے، جاوا اسکرپٹ فائلوں کے لئے تصاویر اور جے ایس کے لئے آئی ایم جی. جڑ فولڈر میں ایچ ٹی ایم ایل فائلوں کو ذخیرہ کیا جائے گا. (آپ کے ساتھ بیک اپ پر غور کرنا چاہتے ہیں کلاؤڈ اسٹوریج ).
اپنے کوڈ ایڈیٹر کو کھولیں اور مرکزی ویب صفحہ کے لئے نشان زد کرنے کے لئے ایک index.html دستاویز بنائیں. بنیادی ساخت کی تشکیل سے شروع کریں اور صفحے پر مناسب عنوان دیں.
& lt؛! DOCTYPE ایچ ٹی ایم ایل اور جی ٹی؛
& lt؛ ایچ ٹی ایم ایل Lang = "en" & gt؛
& lt؛ سر اور جی ٹی؛
& lt؛ میٹا چارسس = "UTF-8" اور GT؛
& lt؛ عنوان اور جی ٹی؛ دھماکے کی تکنیک اور ایل ٹی؛
عنوان اور جی ٹی؛
& lt؛ / سر اور جی ٹی؛
& lt؛ جسم اور جی ٹی؛ & lt؛ / جسم اور جی ٹی؛
& lt؛ / ایچ ٹی ایم ایل اور جی ٹی؛
سبق دو حصوں میں تقسیم کیا جاتا ہے؛ سب سے پہلے دھماکے کی تکنیک کا مظاہرہ کرتا ہے، جبکہ دوسرا بلبلا تصور کی وضاحت کرتا ہے. نتیجے کے طور پر، ہم ہر ایک ٹیکنالوجی کے لئے دو HTML فائلوں کو تیار کرتے ہیں. دھماکے کی تکنیک کو لات مارنے کے لئے، صفحہ عنوان پر مشتمل ہونے کے لئے ایک ڈی ڈی سیکشن بنائیں. صفحے کو اپنے براؤزر میں پیش کرتے ہیں جہاں آپ کو اوپر بائیں کونے میں غیر اسٹائل کردہ متن کا مشاہدہ کرنا چاہئے.
اور ایل ٹی؛ جسم اور جی ٹی؛
& lt؛ ڈوی کلاس = "متن" اور جی ٹی؛
& lt؛ p & gt؛ mo.js حرکت پذیری اور ایل ٹی؛ / p & gt؛
& lt؛ / div & gt؛
& lt؛ / جسم اور جی ٹی؛
اپنے کوڈ ایڈیٹر کو کھولیں اور سی ایس ایس فولڈر کے اندر شیلیوں. css فائل بنائیں. اس کوڈ میں اس کوڈ کو سر سیکشن میں شامل کرکے اس فائل میں ایک لنک بنائیں، & lt؛ لنک ریل = "شیلیوں شیٹ" href = "سی ایس ایس / styles.css" & gt؛ . چونکہ کوئی شیلیوں کو شامل نہیں کیا گیا ہے، اس صفحے کو مرحلے میں بیان کیا جاتا ہے 3. متبادل طور پر، چونکہ اسٹائل کم سے کم ہے، آپ ایچ ٹی ایم ایل اور سی ایس ایس کو یکجا کرکے ان لائن اسٹائل استعمال کرنے کا انتخاب کرسکتے ہیں.
اگلا، ہم پس منظر کی تصویر کو شامل کرکے پس منظر کا اندازہ لگاتے ہیں. ہم نے Pexels سے نکولا الٹیانگ کی طرف سے مفت قدرتی زمین کی تزئین کی پس منظر کا استعمال کیا ہے. تم کر سکتے ہو اسے یہاں ڈاؤن لوڈ کریں . آئی ایم جی فولڈر کے اندر اس (یا آپ کی اپنی تصویر) کو محفوظ کریں. پس منظر میں تبدیلیوں کو دکھانے کے لئے صفحے کو فراہم کریں.
جسم، ایچ ٹی ایم ایل {
پس منظر کی تصویر: URL (BG.jpg)؛
پس منظر کا سائز: کور؛
پڈنگنگ: 0؛
مارجن: 0؛
چوڑائی: 100٪؛
اونچائی: 100٪؛
چھپا ہوا رساو؛
}
اس کے بعد متن اس صفحے کے مرکز میں پیش کرنے کے لئے تیار کیا جاتا ہے، کیونکہ یہ فی الحال سب سے اوپر بائیں کونے پر ظاہر ہوتا ہے. نوٹ کریں کہ متن کو مرکزی مرکز میں، ہم مطلق پوزیشن کا انتخاب کرتے ہیں اور سب سے اوپر، بائیں اور دائیں مارجن کا استعمال کرتے ہوئے اس کی عین مطابق پوزیشننگ مقرر کرتے ہیں. متن متن میں تبدیل کرنے کی جائیداد کا استعمال کرتے ہوئے بھی تبدیل ہوتا ہے. ٹیکسٹ سیدھ کی جائیداد بھی مرکز میں قائم ہے.
متن {
فونٹ-خاندان: صدی گوتھک، سینسر سیرف؛
رنگ: #fff؛
متن ٹرانسمیشن: بڑے پیمانے پر؛
فونٹ سائز: 50px؛
فونٹ وزن: بکر؛
پوزیشن: مطلق؛
اوپر: 50px؛
بائیں: 25٪؛
دائیں: 30٪؛
متن سیدھا: مرکز؛
}
دیگر لائبریریوں کے ساتھ، mo.js ایک سے زیادہ اختیارات کے ذریعے انسٹال کیا جاتا ہے. سب سے آسان نقطہ نظر، جو ہم ملازمت کرتے ہیں، براہ راست ایک سی ڈی این سرور سے تک رسائی حاصل کررہے ہیں. جسم کے سیکشن میں مندرجہ ذیل کوڈ شامل کریں.
& lt؛ سکرپٹ SRC = '//cdn.jsdelivr.net
MOJS / 0.265.6 / mo.min.js '& gt؛ & lt؛ / script & gt؛
اگر آپ O ایف ایف لائن کی ترقی کر رہے ہیں تو، لائبریری ہو سکتی ہے GitHub سے براہ راست ڈاؤن لوڈ کردہ اور مناسب حکموں کا استعمال کرتے ہوئے بور یا این پی ایم پیکجوں کا استعمال کرتے ہوئے انسٹال.
بنور MO-JS انسٹال
این پی ایم انسٹال MO-JS.
ایک بار ڈاؤن لوڈ، یہ براہ راست حوالہ دیا جا سکتا ہے.
& lt؛ سکرپٹ SRC = "mo.js" قسم = "متن
جاوا اسکرپٹ "& gt؛ & lt؛ / script & gt؛
آخر میں، ایک نیا script.js فائل بنائیں اور جے ایس فولڈر میں اسے محفوظ کریں. ہم اس فائل کو جاوا اسکرپٹ کی فعالیت کو شامل کریں گے. مندرجہ ذیل جسم کے حصے میں لنک کریں. ذیل میں دکھایا گیا ہے جیسا کہ متن عنوان کے نیچے اسے رکھیں.
اور ایل ٹی؛ جسم اور جی ٹی؛
& lt؛ ڈوی کلاس = "متن" اور جی ٹی؛
& lt؛ p & gt؛ mo.js حرکت پذیری اور ایل ٹی؛ / p & gt؛
& lt؛ / div & gt؛
& lt؛ سکرپٹ SRC = 'https: //cdn.jsdelivr
نیٹ / MOJS / 0.265.6 / mo.min.js '& gt؛ & lt؛ / script & gt؛
& lt؛ سکرپٹ SRC = "js / script.js" & gt؛ & lt؛
سکرپٹ اور جی ٹی؛
& lt؛ / جسم اور جی ٹی؛
کوڈ کو فروغ دینے کے لۓ آگے بڑھنے سے پہلے، ہم اس بات کا یقین کرنے کے لئے کہ ہم کیا تخلیق کر رہے ہیں. دھماکے کرنے کے لئے صرف ایک دھماکہ خیز انداز میں چھوٹے بٹس کو توڑنے کا مطلب ہے. ہم ایک سادہ اعتراض (دائرے) بنائے جائیں گے اور اسے تلاش کریں گے کہ جب صارف اس پر کلک کرتا ہے، تو یہ دھماکہ خیز انداز میں الگ ہوجاتا ہے.
سب سے پہلے، دھماکے کا مقصد پیدا کیا جاتا ہے (سرکل). تاہم، mo.js دیگر شکلوں کی حمایت کرتا ہے، بشمول آئتاکار (ریئل)، کراس، مساوات، زگ زگ اور کثافت. جہاں آپ شکل کی قسم کی وضاحت کرنے میں ناکام رہتے ہیں، یہ ایک دائرے میں ڈیفالٹ کریں گے. ایک سادہ دائرے کو تخلیق کرنے کے لئے، کسی بھی قسم کا استعمال کرتے ہوئے بیان کرتے ہیں اور شکل کی تقریب کو بلا کر اس کی صفات کو تفویض کرتے ہیں.
// ایک سادہ اعتراض بنانا
Const Const = New Mojs.Sshape ({
IsShowStart: سچ،
ردعمل: 100،
})؛
کوڈ دیئے گئے ریڈیو کے ساتھ ڈیفالٹ سرکل اعتراض تخلیق کرتا ہے. ISSHOWSTART متغیر ایک بولین قدر کو مقرر کیا جاتا ہے کہ آپ کو اعتراض یا نہیں دکھانے کی ضرورت ہے. صفحے کے مرکز میں ایک چھوٹا سا میگینٹ رنگ کے دائرے کو ظاہر کرنے کے لئے کوڈ فراہم کریں.
کوڈ کا ٹکڑا اس کی وضاحت کرتا ہے کہ پیمانے اور دھندلاپن 1 سے 0 تک تبدیل ہوجائے گی، اس بات کا اشارہ ہے کہ اعتراض غائب ہوجاتا ہے. حرکت پذیری کی ترتیب اور تاخیر بھی مقرر کی جاتی ہیں. یاد رکھیں کہ حرکت پذیری نہیں کھیلتا ہے کیونکہ ہم ابھی تک اس کا آغاز نہیں کرتے ہیں. ایسا کرنے کے لئے، ذیل میں فنکشن شامل کریں.
دستاویز. Addeventlistener ('کلک کریں'، فنکشن
(ای) {
سر.
دوبارہ چلائیں ( )؛
})؛
اب یہ کہ حلقہ حرکت پذیری ہے، ہم ایک دھماکے حرکت پذیری بناتے ہیں جو ایک ہی وقت میں ہیں. پہلا دھماکے دھماکے کو نکالنے کے لئے کثیر قوون کے سائز کا استعمال کرتا ہے. ایک دھماکے پیدا کرنے کے لئے، MO.JS فنکشن کو استعمال کریں جیسا کہ ذیل میں کوڈ کے ٹکڑے ٹکڑے میں دکھایا گیا ہے.
CONCAL BUNTST1 = نیا موجس .برسٹ ({
بائیں: 0، اوپر: 0،
شمار: 7،
ردعمل: {50: 250}،
بچے: {
بھریں: 'سفید'،
شکل: 'polygon'،
اسٹروک: {'سفید': '# A50710'}،
اسٹروک: 4،
ریڈیو: 'رینڈ (30، 60)'
ردعمل: 0،
اسکیل: {1: 0}،
Pathscale: 'رینڈ (.5، 1)'
ڈگری: 360،
isforce3d: سچ}})؛
کوڈ دھماکے میں سات کثیر قزاقوں کو تفویض کرتا ہے اور دو ریڈیو کی وضاحت کرتا ہے. سب سے پہلے مجموعی حرکت پذیری سے مراد ہے، جبکہ دوسرا حرکت پذیری کے اندر مخصوص کثیر قزاقوں پر توجہ مرکوز کرتا ہے. ایونٹ سننے والے فنکشن میں پھٹ کو یقینی بنانے کے لئے یقینی بنائیں تاکہ یہ ماؤس کلکس کا جواب دیں. نوٹ کریں کہ دو نئے پیرامیٹرز کو شامل کیا گیا ہے؛ دھن اور پیدا. دھن اس صفحے میں کہیں بھی رینڈر کرنے کے لئے دھماکے کرتا ہے، جبکہ پیدا ہوتا ہے. صفحہ فراہم کرو. حلقہ کے طور پر ایک ہی وقت میں ظاہر ہونے والی دھماکہ عناصر کا مشاہدہ کریں.
دستاویز. Addeventlistener ('کلک کریں'، فنکشن
(ای) {
پھٹ 1
ٹون ({x: e.pagex، y: e.pagey}).
پیدا ().
دوبارہ چلائیں ()؛
سر.
دوبارہ چلائیں ( )؛
})؛
اگلا، ہم مختلف شکل کے اختیارات کا استعمال کرتے ہوئے دوسری دھماکے بناتے ہیں. کوڈ پچھلے دھماکے کی ساخت کی پیروی کرتا ہے اور صرف چند پیرامیٹرز میں تبدیلی کرتا ہے.
CONCAL BURST2 = نیا مووجس .برسٹ ({
اوپر: 0، بائیں: 0،
شمار: 4،
ردعمل: {0: 250}،
بچے: {
شکل: ['سرکل'، 'ریئل']
پوائنٹس: 5،
بھریں: ['سفید']
ریڈیو: 'رینڈ (30، 60)'
تاخیر: 'Stagger (50)'
آسان: ['کیوبک. آؤٹ'، 'کیوبک. آؤٹ'،
'کیوبک. آؤٹ']
اسکیل: {1: 0}،
Pathscale: 'رینڈ (.5، 1)'
isforce3d: سچ}})؛
ایونٹ سننے والی تقریب میں پھٹ شامل کریں.
دستاویز. Addeventlistener ('کلک کریں'، فنکشن
(ای) {
پھٹ 1
ٹون ({x: e.pagex، y: e.pagey}).
پیدا ().
دوبارہ چلائیں ()؛
پھٹ 2
ٹون ({x: e.pagex، y: epagey
}).
پیدا ().
دوبارہ چلائیں()؛
سر.
دوبارہ چلائیں ( )؛
})؛
حرکت پذیری کو بڑھانے کے لئے، ہم سرکلر دھماکہ شامل کرتے ہیں. کوڈ 11 اور 12 میں کوڈ کی جانچ پڑتال کی دو قسم کے دفاتر کے درمیان موجودہ بہت سی مساوات سے پتہ چلتا ہے. تیسری دھماکے کی تخلیق میں، ہم پھیلاؤ آپریٹر کا استعمال کرتے ہوئے بہت زیادہ کوڈ کو دوبارہ لکھتے ہیں جو تین ڈاٹ (...) کے طور پر لکھا جاتا ہے. تاہم، سب سے پہلے، ہم ایک متغیر کا اعلان کرتے ہیں جس میں اسی طرح کی خصوصیات شامل ہیں جو ہم دوبارہ استعمال کرنا چاہتے ہیں. اس کے بعد، دیگر دو حلقوں کو پھیلاؤ آپریٹر کا استعمال کرتے ہوئے صرف تخلیق کیا جا سکتا ہے.
// اسی طرح کے ساتھ متغیر پیدا
پیرامیٹرز
Const Circle_opts = {
بائیں: 0، اوپر: 0،
بھریں: 'سفید'،
اسکیل: {.2: 1}،
دھندلاپن: {1: 0}،
isforce3d: سچ،
ISSHOWEND: غلط
}؛
کوڈ بھرنے کی قسم، پیمانے، دھندلاپن اور حرکت پذیری کے اختتام پر ان کو ظاہر کرنے کی وضاحت کرتا ہے. مندرجہ ذیل دو دائرے کی حرکتیں درج کی جاتی ہیں.
COST Circle1 = نیا MOJS.SHAPE ({
... Circle_opts،
ردعمل: 200})؛
COST Circle2 = نیا MOJS.SHAPE ({
... Circle_opts،
ریڈیو: 240،
آسان: 'کیوبک. آؤٹ'،
تاخیر: 300})؛
سرکلر شکلیں شامل کریں.
دستاویز. Addeventlistener ('کلک کریں'، فنکشن
(ای) {
پھٹ 1
ٹون ({x: e.pagex، y: e.pagey}).
پیدا ().
دوبارہ چلائیں ()؛
پھٹ 2
ٹون ({x: e.pagex، y: epagey
}).
پیدا ().
دوبارہ چلائیں()؛
سر.
دوبارہ چلائیں ( )؛
})؛
دھماکے حرکت پذیری کے برعکس، جس میں اعتراض کو چھوٹے ٹکڑوں میں، بلبلا حرکت پذیری، دوسری طرف، پر کلک کردہ اعتراض کو بڑی جگہ میں ترجمہ کرتا ہے. یہ تصور ایک بیلون کو اڑانے کے تعدد کو اپنایا ہے جہاں اعتراض مسلسل سائز میں توسیع کرتا ہے. ایسا کرنے کے لئے، ہم صرف ایک نئی متغیر Openbackground کو تشکیل دیتے ہیں اور خاصیت کو تفویض کرتا ہے جو پورے پس منظر کو اعتراض میں اسی طرح کے رنگ کو حاصل کرے گا. نتیجے کے طور پر، یہ بلبلنگ کی نگہداشت پیدا کرتا ہے.
COST OpenBackground = نئے MOJS.SHAPE ({
بھریں: '# FC2D79'،
بائیں: 0، اوپر: 0،
اسکیل: {0: 4.5}،
IsShowStart: سچ،
ردعمل: 15،
isforce3d: سچ،
Istimeliness: سچ،
تاخیر: 150،
ردعمل: 200،
آسان: 'کیوبک. آؤٹ'،
پیچھے اگلا: 'Expo.in'،})؛
ایونٹ سننے والے فنکشن میں پس منظر متغیر شامل کرنے کے لئے یقینی بنائیں.
Openbackground.
ٹون ({x: e.pagex، y: e.pagey}).
دوبارہ چلائیں ()؛
مرحلہ 14 میں تصور کے بعد، اب ہم مثال کے طور پر ایک سے زیادہ رنگ کے سرکلر اشیاء شامل کرنے کے لئے مثال پیش کرتے ہیں، جس میں اسی طرح کی توسیع پر کلک کرنے اور کچھ متن ظاہر کرتے ہیں. موجودہ ایچ ٹی ایم ایل فائل میں ترمیم کریں اور جسم کے اندر کوڈ کاپی کریں. یہ صفحہ کی بنیادی ساخت پیدا کرتا ہے.
اگلا، اشیاء پر کلک ہونے پر سکرال کرنے اور آواز پیدا کرنے کے لئے جسم کے سیکشن میں کچھ اضافی لائبریریوں کو شامل کیا جاتا ہے.
& lt؛ سکرپٹ SRC = 'https: //cdnjs.cloudflare.com
AJAX / Libs / Howler / 1.1.26 / Howler.min.js '& GT؛ & lt؛
سکرپٹ اور جی ٹی؛
& lt؛ سکرپٹ SRC = 'https: //cdn.jsdelivr.net
MOJS / 0.119.0 / mo.min.js '& gt؛ & lt؛ / script & gt؛
& lt؛ سکرپٹ SRC = 'https: //cdn.jsdelivr.net
Hammerjs / 2.0.4 / hammer.min.js '& gt؛ & lt؛ / script & gt؛
& lt؛ سکرپٹ SRC = 'https: //cdnjs.cloudflare.com
AJAX / Libs / Iscroll / 5.1.1 / Iscroll-Probe.min
جے ایس اور جی ٹی؛
& lt؛ / script & gt؛
اگلا، ہم ایچ ٹی ایم ایل فائلوں میں نمایاں انفرادی طبقات کے لئے شیلیوں کو شامل کرتے ہیں. mo.js فعالیت پھر شامل ہے. مکمل کوڈ (سی ایس ایس اور جے ایس) جائزہ لینے کے لئے سبق فائلوں کے ساتھ اشتراک کیا جاتا ہے.
جبکہ سبق بلبلا اور دھماکے کی تکنیک کا مظاہرہ کرتا ہے، وہاں آن لائن دستیاب مزید وسائل موجود ہیں جو آپ کو اپنے سیکھنے کے عمل کو تیز کرنے میں مدد مل سکتی ہے. ان میں سے کچھ شامل ہیں GitHub پر mo.js سبق اور ڈیمو بھی GitHub پر .
یہ مضمون اصل میں تخلیقی ویب ڈیزائن میگزین کے مسئلہ 291 میں شائع کیا گیا تھا ویب ڈیزائنر . مسئلہ 291 خریدیں .
مزید پڑھ:
جب ایک گردن اور کندھوں کو ڈرانے کے بارے میں سیکھنے کے بعد، یہ اکثر ہمارے کام میں حجم کو دکھانے کے لئے چیلنج..
عظیم آرٹ بنانے کے لئے باہر نکلیں (تصویری کریڈٹ: مائیک ایم سی کینی) ..
اس ورکشاپ کے لئے میں ایک داخلہ پس منظر بنانے کے لئے لائن آرٹ اور ایک ساخ�..
پادری چھڑیوں کی نرمی اور برائٹ ان کو اپنے پس منظر کے لئے مثالی انتخاب بن..
میری وضاحت کرنے کے لئے کہا جا رہا ہے پینٹنگ کی تکنیک میرے لئے عج..
کچھ لوگ سائے مشکل کے لئے اختلاط تلاش کرتے ہیں، اکثر ایک نئے رنگ کا مرکب �..
فوٹوشاپ میں ایک تصویر کی عمر میں ایک کلاسک تکنیک ہے جو یہاں تک کہ ایک ہی ..
فیصلے، فیصلے، فیصلے ... اگر قسم کے ساتھ کام کرنے کے عمل کے عمل میں ایک اہم پہلو ہے تو یہ ہے کہ ڈیزائنر یا ٹائ�..