آموزش های جامع فلش ( فلاش ) و فروشگاه محصولاتalphapack

آموزش مختلف موضوعات فلش ( فلاش ) و جوک و طنز و زمینه های مختلف کامپیوتری

آموزش های جامع فلش ( فلاش ) و فروشگاه محصولاتalphapack

آموزش مختلف موضوعات فلش ( فلاش ) و جوک و طنز و زمینه های مختلف کامپیوتری

سیاست ادوبی برای فلش پلیر

شرکت ادوبی با انتشار خبری مبنی بر کنار گذاشتن فلش پلیر از روی مرورگر موبایل ها جامعه فلش کاران را در یک شوک فرو برد. بعضی از فعالان این عرضه این حرکت ادوبی را حرکت مثبتی دیده اند و برخی موضع گیری رسمی کرده اند(به صورت نوشتار در وبلاگ) این خبر به قدری مهم هست که باعث شد این متن را بنویسم و شبهاتی که وجود دارد مخصوصا در حوزه وبلاگ های فارسی و سایتهای خبری که به طور عجولانه ای ناشی گری کرده و بدون درک درستی از اقدام ادوبی آن را مساوی با شکست ادوبی و پایان دوران فلش دانسته اند.

یک توضیح برای فلش پلیر حذف شده :

درست است که ادوبی فلش پلیر روی مرورگر موبایل ها را حذف کرده (در واقع توسعه نخواهد داد) اما این پلتفرم(فلش) موبایل را رها نکرده و تمرکزش را روی ادوبی AIR گذاشته است و ادوبی AIR هم جزئی از فلش پلتفرم محسوب میشود و با امکانات جدید میتوان برنامه هایی توسعه داد که در اختیار فلش پلیر نسخه مرورگر موبایل نیست در واقع ادوبی حوزه وب(بامرورگر) را گذاشته است به عهده html5 و با استفاده از AIR امکان ساخت برنامه های فلش با  دسترسی به کد بومی (Native)  که در موبایل ها و تبلت ها معروف است به برنامک(App).

ادامه مطلب ...

ارجاع به عقب( Backreference ) در عبارت‌های منظم

دانستن عبارت‌های منظم( Regular Expressions ) در برنامه‌نویسی روند توسعه‌ی نرم‌افزار را سرعت چشم‌گیری می‌بخشد.

یکی از نکته‌های کمتر شناخته‌شده در این عبارت‌ها، ارجاع به عقب است که می‌تواند در شناسایی رشته‌های مورد نظر کمک بزرگی به حساب آید.

بهترین مثال قابل اشاره، تگ‌های موجود در HTML است. فرض کنید می‌خواهیم عبارت‌هایی که با AMIB آغاز می‌شوند و تگ محصور کننده‌ی آن را جستجو کنیم:

<span>AMIB 1</span>
<div>AMIB 2</div>
<h1>AMIB 3</h1>

برای انجام این کار، می‌توان از ارجاع به عقب بهره گرفت:

<([a-z][a-z0-9]+)>AMIB.+?</\1>

ارجاع به عقب در حقیقت استفاده‌ی مجدد از بخش‌های یافته‌شده‌ی قبلی است. در مثال بالا، عبارت ’1\’ یک ارجاع به عقب است. این ارجاع معادل متغیر یافته شده در پرانتز ابتدایی است.
هر مقداری که در پرانتز ابتدایی یافته شود، در این ارجاع نیز کپی خواهد شد. برای دسترسی به متغیرهای دوم تا نهم کافی‌است از عبارت‌های ’2\’ تا ’9\’ استفاده کنید.

به علامت سوال «?» پس از +. توجه کنید. به کار بردن این علامت سوال سبب می‌شود تا کوتاه‌ترین عبارت ممکن جستجو و در نتیجه، تگ انتهایی به درستی انتخاب شود.


منبع

ذخیره محتویات movieclip به صورت عکس

در این مطلب نحوه ذخیره محتویات یک MovieClip به صورت عکس با فرمت JPEG در Air آموزش داده می‌شود. برای این کار با استفاده از  کلاسه Adobe Encoder یک ByteArray از محتویات MovieClip می‌سازیم و در ادامه این ByteArray را با فرمت JPEG ذخیره می‌کنیم.

دانلود کلاس های مورد نیاز : corelib.zip

1- برای شروع فایل corelib.zip را دانلود کرده و آن را Extract کنید.

۲- برنامه Flash را اجرا کنید و یک پروژه جدید از نوع Air بسازید.

۳- از منوی File گزینه ActionScript Settings را انتخاب کنید.

۴- از پنل Library path روی دکمه Add New Path کلیک کنید سپس روی دکمه Browse to SWC file کلیک کنید و فایل corelib.swc را انتخاب کنید.

۵- روی دکمه OK کلیک کنید تا پنجره ActionScript Settings بسته شود.

۶- روی فریم اول کلیک کنید و پنل Actions را باز کنید.

۷- کلاسه‌های مورد نیاز را Import کنید.

import flash.display.BitmapData;
import com.adobe.images.JPGEncoder;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;

8- یک متغیر از نوع BitmapData ایجاد کنید و طول و عرض آن را به اندازه MovieClip در نظر بگیرید و با دستور Draw محتویات MovieClip را به BitmapData منتقل کنید. (به جای my_mc نام MovieClip خود را وارد نمایید)

var bd:BitmapData = new BitmapData(my_mc.width, my_mc.height);
bd.draw(my_mc);

9- یک متغیر جدید از نوع JPGEncoder ایجاد کنید. (عدد داخل پرانتز کیفیت فایل خروجی را مشخص می‌کند و ماکزیمم آن ۱۰۰ می‌باشد)، در ادامه یک متغیر ByteArray هم بسازید.

var jpgEncoder:JPGEncoder = new JPGEncoder( 100 );
var byteArray:ByteArray = jpgEncoder.encode( bd );
  • به وسیله متغیرJPGEncoder محتویات BitmapData به فرمت JPEG تبدیل می‌شود و سپس در متغیر ByteArray قرار می‌گیرد.
var file:File = new File();
file = file.resolvePath("c:/test.jpg");
var stream:FileStream = new FileStream();

11- به وسیله کدهای زیر مراحل ذخیره سازی را به اتمام برسانید. در این کدها ابتدا File به صورت FileMode.WRITE در پروژه جاری می‌شود سپس به وسیله دستور writeBytes اطلاعات تبدیل شده ByteArray ذخیره می‌شود. دستور try و catch هم به منظور نمایش خطاهای احتمالی به کار گرفته شده است.

try {
stream.open( file , FileMode.WRITE);
stream.writeBytes(byteArray);
stream.close();
} catch (e:Error) {
trace("Error: " + e.message);
}

چیدمان حلزونی با استفاده از مختصات قطبی

هرگاه نیاز به چیدمان‌های دوار و کنترل شکل‌های دایره ای باشد، بهتر است که از مختصات قطبی استفاده شود. با توجه به این که فلش از مختصات کارتزین استفاده می‌کند، باید مختصات قطبی را به مختصات کارتزین تبدیل کرد. در این درس نحوه استفاده از این تبدیل برای دستیابی به آرایش حلزونی MovieClip‌ها آموزش داده می‌شود که یک نمونه از آن در شکل۱ آمده است.

شکل ۱- آرایش حلزونی MovieClip‌ها

در شکل ۲ محورهای مختصات کارتزین و قطبی و نحوه تبدیل آن‌ها آمده است.

شکل ۲- نحوه تبدیل مختصات قطبی به کارتزین

مراحل کار به شرح زیر می‌باشد:

۱- یک پروژه جدید Action Script 3.0 ایجاد کنید و برای مثال اندازه آن را ۸۰۰ در ۶۰۰ پیکسل در نظر بگیرید.

۲- در این درس بعنوان مثال ۶۰ MovieClip ایجاد شده است و به ترتیب از mc1 تا mc60 نامگذاری شده اند. توجه کنید که نقطه مبدا این MovieClip‌ها باید در گوشه چپ و وسط باشد (به فایل sample.zip توجه کنید).

۳- پنل Actions را باز کنید.

۴- کلاسه MovieClip را Import کنید.

var holder:MovieClip = new MovieClip();

5- حالا یک آرایه از MovieClip‌ها بسازید.

var fields:Array = [mc1, mc2, mc3, mc4, mc5, mc6, mc7, mc8, mc9, mc10, mc11, mc12, mc13, mc14, mc15, mc16, mc17, mc18, mc19, mc20, mc21, mc22, mc23, mc24, mc25, mc26, mc27, mc28, mc29, mc30, mc31, mc32, mc33, mc34, mc35, mc36, mc37, mc38, mc39, mc40, mc41, mc42, mc43, mc44, mc45, mc46, mc47, mc48, mc49, mc50, mc51, mc52, mc53, mc54, mc55, mc56, mc57, mc58, mc59, mc60];

6- در ادامه سه متغیر یرای شعاع، زاویه و محور سوم (در مختصات استوانه ای) ایجاد می‌شود. در این مثال از متغیر scaleX , scaleY برای محور سوم استفاده می‌شود. مقادیر اولیه برای این ۳ متغیر را تعیین کنید.

var radius:Number = 150;
var theta:Number = 0;
var scale:Number = 1;

7- یک متغیر از نوع MovieClip بعنوان حامل ایجاد کنید.

var holder:MovieClip = new MovieClip();

8- سپس به وسیله یک حلقه، MovieClip‌ها در حامل چیده می‌شود.

for (var i:Number = 0; i < fields.length; i++) {
var item_holder:MovieClip = MovieClip(fields[i]);
var radian:Number = theta * Math.PI / 180;
item_holder.x = radius * Math.cos(radian);
item_holder.y = radius * Math.sin(radian);
item_holder.rotation = theta;
item_holder.scaleX = scale;
item_holder.scaleY = scale;
radius -= 2;
theta += 7;
scale -= 0.01;
holder.addChild(item_holder);
}

در این حلقه:

  • ابتدا item_holder بعنوان شاخص هر MovieClip تعریف شده است.
  • در خط دوم مقدار زاویه از درجه به رادیان تبدیل شده است.
  • سپس با توجه به شکل ۲ مقادیر شعاع و زاویه در مختصات قطبی به مقادیر x و y در مختصات کارتزین تبدیل شده است.
  • در ادامه اندازه هر MovieClip بعنوان محور سوم تعریف شده است.
  • در نهایت به منظور دستیابی به چیدمان حلزونی مقادیر شعاع، زاویه و اندازه تغییر کرده است تا MovieClip بعدی با مقادیر جدید چیده شود.
  • سپس MovieClip به حامل اضافه شده است.

۹- در آخر موقعیت حامل تعیین و به stage اضافه می‌شود.

holder.x = 350;
holder.y = 250;
addChild(holder);
+ منبع

استخراج فایل swf کد شده توسط Mochimedia

iflashlord.com

شاید شما هم با وب سایت mochimedia و خدمات آن آشنا باشید و شاید بارها بازی هایی که توسط این شرکت کد شده اند را دیده باشید ، بازی هایی که با متد mochimedia انتشار داده می شوند در ابتدا آنها یک نوار بارگزارنده که در کنار آن یک نماد قفل می باشد نمایش داده می شود و در این زمان در صورتی که کاربر به اینترنت متصل باشد یک تبلیغ به نمایش در می آید و در ضمن بعد از بازگزاری شدن هم مدت کوتاهی مکث برای دیده شدن تبلیغ مربوطه ایجاد می شود و نکته مهم تر این که کد و محتوای اصلی بازی شامل کدها و تصاویر ، اشیاء و تمامی مواردی که در فلش به کار گرفته شده است را با متدی خاص و قدرتمند توسط mochimedia محافظت می شوند. حال شاید بهتر باشد بگوییم محافظت می شدند!

حال برنامه ای که هم اکنون با نام MochiDecrypt در اختیار دارید (که بخشی از یک نرم افزار دیکامپایلری می باشد که در آینده منتشر خواهد شد) به شما این امکان را می دهد که این قفل را بشکنید و به منبع اصلی و در واقع فایل swf اصلی دسترسی پیدا کنید!

این نرم افزار در حال حاضر مانند یک ابزار کمکی برای دیکامپایل  (Decompile) کردن فایل های قفل شده با متد فوق الذکر می باشد و به شما فایل Swf اصلی را ارائه می دهد که توسط هر برنامه دیکامپایلری قابل دیکامپایل شدن هست!

رابط کاربری GUI برنامه بسیار ساده کار شده است ، تنها کافیست که فایل خود را Drag کنید و در محیط برنامه Drop کنید تا برنامه قفل فایل را شکسته و فایل اصلی را استخراج کند و در اختیار شما قرار دهد ، فایل استخراج شده در کنار فایل اصلی ذخیره شود. در ضمن با راست کلیک و انتخاب گزینه Browse File هم می توانید فایل مورد نظر خود را انتخاب نمایید.

توجه داشته باشید این برنامه تنها بخشی از برنامه اصلی در حال ساخت می باشد ، برنامه ای که در دست ساخت هست تعداد زیادی از متدها امنیتی موجود را می شنکد!! این برنامه و برنامه نهایی به صورت رایگان منتشر خواهد شد.

در صورتی که شما هم به روشی برای شکستن قفل های امنیتی در فلش دست پیدا کرده اید می توانید تجربه شخصی خود را با بنده برای گسترش بیشتر به اشتراک بگزارید.

در برنامه نهایی تا به حال روی بیش از ۴ – ۵ متد که تا به حال تقریبا بازگشت و شکسته شدن آنها غیر ممکن بود! ، کار شده و در حال کار می باشد تا در نهایت برنامه ای بسیار قوی در اختیار شما دوستان قرار داده شود.

ادامه مطلب ...