ALMOHAB عضو مميز
تاريخ التسجيل : 11/05/2010 العمر : 43
بطاقة الشخصية المجلة: 50
| موضوع: دروس في PHP 10/14/2010, 15:39 | |
| بسم الله الرحمن الرحيم
Ming مكتبة ؟ Ming ما ھي مكتبة ( Flash ) swf و ھي تستخدم لبرمجة ال C مكتبة مينج ھي مكتبة مكتوبة علي لغة أل ( php , python , ruby & perl ) و تدعم اللغات آلاتية تدعم جميع مميزات برنامج الفلاش الإصدارة السادسة منھ ماعدا الأحداث الصوتية Ming مكتبة ؟ Ming إذن كيف تبرمج بال تكون بالشكل التالي : Ming البداية في ال new SWFShape(); ?> في النموذج القادم سوف نقوم برسم مربع احمر يتكون من 400 وحدة في كل جانب مع خط عرضھ 20 وحدة $s = new SWFShape(); $s->setLine(20, 0xff, 0, 0); $s->drawLineTo(400, 0); $s->drawLineTo(400, 400); $s->drawLineTo(0, 400); $s->drawLineTo(0, 0); ?>
ملحوظة ::- معروف أن كل 20 وحدة من الفلاش تساوي 1 بكسل إذن المربع الموجود في الدرس السابق يساوي 20 بسكل و الخط المحدد للمربع يساوي واحد بكسل وألان مع شرح النموذج السابق عرضھ -1 بنينا شكل جديد بالدالة ( new SWFShape ) -2 بعد ذلك استخدمنا دالة ( setline ) و ذلك لرسم خط يحدد المربع المراد رسمھ ثم لوننا الخط من الوحدة الأولي إلي الوحدة رقم 400 و فعلنا نفس الشئ مع الخط الأخر من 400 إلي 400 وتابعنا علي تلك الطريقة حتى تم رسم المربع و ألان من المؤكد انك لاحظت أن الدالة ( drawLineto ) تأخذ معطيين اثنين فقط و تلك الدالة مثلھا مثل الدالة ( drawLine ) مثال : $s->drawLine(400, 0); $s->drawLine(0, 400); $s->drawLine(-400, 0); $s->drawLine(0, -400); و الآن لدينا نفس المربع المرسوم سابقا أما بالنسبة لدالة ( setLine ) فھي تأخذ أربع أو خمس معطيات و ھي ( عرض الخط , الأحمر , الأخضر , الأزرق و مكونات الخط للون و ھو اختياري و عند اختيار طريقة للرسم تصبح تلك الطريقة ھي الطريقة المتبعة حتى يتم تغيرھا . - بعد ذلك أخيرا يوجد طريقتين اخرتين للرسم و ھما : ( MovePenTo ) -1 مثال : $s->movePenTo(x,y);
( DrawCurveTo ) -2 و تلك الدالة تقوم برسم المنحنيات مثال : $s->drawCurveTo(cx, cy, ax, ay); و الآن ينبغي أن أقدم لكم كلاس مثال علي الجزء السابق $s = new SWFShape(); $f = $s->addFill(0xff, 0, 0); $s->setRightFill($f); $s->movePenTo(-500, -500); $s->drawLineTo(500, -500); $s->drawLineTo(500, 500); $s->drawLineTo(-500, 500); $s->drawLineTo(-500, -500); $p = new SWFSprite(); $i = $p->add($s); $i->setDepth(1); $p->nextFrame(); for ($n=0; $n<5; ++$n) { $i->rotate(-15); $p->nextFrame(); } $m = new SWFMovie(); $m->setBackground(0xff, 0xff, 0xff); $m->setDimension(6000, 4000); $i = $m->add($p); $i->setDepth(1); $i->moveTo(-500,2000); $i->setName("box"); $m->add(new SWFAction("/box.x += 3;")); $m->nextFrame(); $m->add(new SWFAction("gotoFrame(0); play();")); $m->nextFrame(); header('Content-type: application/x-shockwave-flash'); $m->output(); ?>
Fill وألان بعد الرسم الجزء الثاني و ھو ال ربما يكون ھذا الجزء ھو أصعب الأجزاء في المينج و لذلك نحتاج منك بعض التركيز ,, الفيل في مكتبة المينج : وظيفتھ تلوين الأشكال المرسومة بواسطة المكتبة Fill و الطريقة الرئيسية في مجموعة أل ( addFill ) ھي تحتاج تلك الدالة أربع معطيات و ھي ( الأحمر , الأخضر , الأزرق و الالفا ) مثال : $s = new SWFShape(); $f = $s->addFill(r, g, b [,a]); $s->setRightFill($f); $s->movePenTo(-200, -200); $s->drawLine(400, 0); $s->drawLine(0, 400); $s->drawLine(-400, 0); $s->drawLine(0, -400); ( setRightFill ) استخدمنا لكي نرسم الخط الخارجي للمربع في اتجاه عقارب الساعة . و ھي عكس الطريقة السابقة إي ترسم الخط الخارجي للمربع في ( setLeftFill ) يمكننا أيضا استخدام طريقة اتجاه عكس عقارب الساعة ( SWFBitmap ) طريقة fill لدينا أيضا في مجموعة طرق ال مثال : $f = $s->addFill(new SWFBitmap(file_get_contents("image.jpg"))); و ھي تستخدم لإدراج الصور في العرض الخاص ( new SWFBitmap ) في المثال السابق استخدمنا دالة بك و ھو يمكنك من قراءة امتدادين و ھما : . ( jpg , dbl ) ملحوظة ::- و ھي احدي مميزات المينج ( png2dbl ) و لكنھ معدل بواسطة ال ( png ) ھو ملف ( dbl ) ال ( gif2mask ) بواسطة ( msk ) فينبغي عليك أولا تحويلھ إلي الامتداد ( gif ) أما إذا كنت تريد إدماج ملف و ھو أيضا موجود داخل رزمة مينج . أيضا يمكنك استخدام دالتي $b->getWidth(); $b->getHeight();
( SWFBitmap ) و ھما يمكناك من معرفة إبعاد الصورة المدخلة بواسطة طريقة ال ( SWFBitmap ) و ألان مع الكلاس الخاص بطريقة ال $s = new SWFShape(); $f = $s->addFill(new SWFBitmap(file_get_contents("image.dbl"))); $s->setRightFill($f); $s->drawLine(32, 0); $s->drawLine(0, 32); $s->drawLine(-32, 0); $s->drawLine(0, -32); $m = new SWFMovie(); $m->setDimension(32, 32); $m->add($s); header('Content-type: application/x-shockwave-flash'); $m->output(); ?> ( SWFGradient ) - و ألان مع طريقة ال عة .. الخطوط أوا لأش .. دريج ب .. ون ت .. ن أن يك .. يقوم بتدريج الألوان ليس ك أي تدريج و لكن ممكن الممك ( Gradient ) أيضا يمكنك احتواء ثمانية ألوان و يمكنة أن يأخذ شفافية : ( SWFGradient ) الدالة ھي ( Gradient ) و تلك الدالة تقوم ببناء ال $g = new SWFGradient(); و ألان مع مثال بسيط بقوم بالتحويل من الأسود للأبيض $g = new SWFGradient(); $g->addEntry(0, 0, 0, 0); $g->addEntry(1.0, 0xff, 0xff, 0xff); و ألان لكي تضيف ذلك التأثير الشكل الخاص بك يمكنك استخدام الدالة التالية : $g->=addFill ($gradient, SWFFILL_LINEAR_GRADIENT); منذ البداية العمل بتلك الطريقة و آنت تشعر أن ھناك شئ في برنامجك تريد تعديلھ أما بالنسبة للدوال التي تساعدك في تلك المھمة ھي :
( y ) ال النقطة ( x ) و ھي تحرك التأثيرات من النقطة ( moveTo ) -1 مثال : $f->moveTo(x,y); و ھي تقوم بدوران الشكل بالسرعة اللي تريدھا والاتجاه الذي تريده و ھو ما سوف نتطرق ( rotateTo ) -2 إليھ في جزء أخر مثال : $f->rotateTo(deg); ( Gradient ) أخيرا مع الكلاس الخاص بال $m = new SWFMovie(); $m->setDimension(320, 240); $s = new SWFShape(); // first gradient- black to white $g = new SWFGradient(); $g->addEntry(0.0, 0, 0, 0); $g->addEntry(1.0, 0xff, 0xff, 0xff); $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT); $f->scaleTo(0.01); $f->moveTo(160, 120); $s->setRightFill($f); $s->drawLine(320, 0); $s->drawLine(0, 240); $s->drawLine(-320, 0); $s->drawLine(0, -240); $m->add($s); $s = new SWFShape(); // second gradient- radial gradient from red to transparent $g = new SWFGradient(); $g->addEntry(0.0, 0xff, 0, 0, 0xff); $g->addEntry(1.0, 0xff, 0, 0, 0);
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT); $f->scaleTo(0.005); $f->moveTo(160, 120); $s->setRightFill($f); $s->drawLine(320, 0); $s->drawLine(0, 240); $s->drawLine(-320, 0); $s->drawLine(0, -240); $m->add($s); header('Content-type: application/x-shockwave-flash'); $m->output(); ?>
!!!:- Animation -:!!! ( Animation ) ننتقل إلي احد أھم أجزاء المينج و ھو ال في مكتبة المينج ؟ ( Animation ) - ما ھي ال ھي الطريقة المسؤلة عن تحريك إشكالك في المينج ( Animation ) ال - ھيا بينا نتعرف على البداية : $m = new SWFMovie(); ببدء فيلم جديد ( Animation ) تكون البداية في طريقة ال - الخطوة الثانية : $m->setBackground(0x33,0x33,0x33); الخطوة الثانية تقوم بتحديد لون الخلفية . - الخطوة الثالثة : $m->setRate(5); * وظيفة تلك الدالة : ھي تحديد مدة عرض الشكل بالثواني و تفيد في حالة تتابع الصور . - الخطوة الرابعة : $m->setDimension(550,400); * وظيفة تلك الدالة : ھي تحديد أبعاد الشكل الذي تريد رسمھ أو تحديد لأبعاد صورة ما . ( add ) أما بعد ذلك يمكن إضافة الصور أو الإشكال بواسطة دالة ( nextFrame ) و يمكنك عرض الشكل التالي بواسطة دالة ( move ) و يمكنك تحريك عرضك بواسطة الدالة مثال : $i->move(x,y); و يمكنك إضافة بعض الحركات الخاصة بواسطة الدوال آلاتية : $i->rotateTo(deg); $i->rotate(deg); $i->scaleTo(xscale [, yscale]); $i->scale(xscale [, yscale]); $i->skewXTo(s); $i->skewX(s); $i->skewYTo(s); $i->skewY(s); مثال : ( remove ) و أخيرا يمكنك أن تحذف أي شريحة تريدھا عن طريق الدالة $m->remove($i);
:::!! التحويل بين الألوان !!::: و ھي تستخدم ( AaddColor ) في مكتبة مينج يمكننا استخدام الألوان بواسطة بعض الدوال أھمھا ھي دالة لإضافة الألوان . مثال : $i->addColor(0, 0, 0xff); (MmultColor ) و يمكنك عمل ألوان متعددة بواسطة الدالة مثال : $i->addColor(0, 0, 0xff); $i->multColor(1.0, 1.0, -1.0); أخيرا يجب عليك إخبار المتصفح انھ يوجد فلاش في الصحفة و ذلك عن طريق الھيدر . مثال : header('Content-type: application/x-shockwave-flash'); $m->output(); و ألان مع الكلاس الخاص بالانيماشن أو تحريك الصور: $m = new SWFMovie(); $m->setDimension(800, 600); $i = $m->add($s); $i->moveTo(400, 300); for($j=0; $j<5; ++$j) { $m->nextFrame(); $i->rotate(15); } $m->nextFrame(); header('Content-type: application/x-shockwave-flash'); $m->output();
::!! ( Text ) ::!! النصوص - يمكنك اختار الخطوط في برنامجك عن طريق الدالة آلاتية : مثال : $f = new SWFFont(filename); ملاحظة ::- ( .tff ) أو ( .ftt ) , ( .fdb ) - يجب أن يكون امتداد ملفات الخطوت . ( setHeight ) * يمكنك أن تنظم ارتفاع الخط عن طريق الدالة . ( setColor ) * يمكنك أن تنظم اللون عن طريق الدالة - الكلاس الخاص بالخطوط $f = new SWFFont("Techno.fdb"); $t = new SWFText(); $t->setFont($f); $t->moveTo(200, 2400); $t->setColor(0xff, 0xff, 0); $t->setHeight(1200); $t->addString("http://www.prog4me.com"); $m = new SWFMovie(); $m->setDimension(5400, 3600); $m->add($t); header('Content-type: application/x-shockwave-flash'); $m->output(); ?>
[left] منقول | |
|
دكتورة.م انوار صفار Admin
تاريخ التسجيل : 04/04/2010 البلد /المدينة : bahrain
بطاقة الشخصية المجلة:
| موضوع: رد: دروس في PHP 10/16/2010, 13:05 | |
| شكرا لك المهاب على المشاركة | |
|