آموزش SWiSH از ابتدا تا بینهایت

در مورد مطالب این بخش چه نظری دارید؟


  • مجموع رای دهندگان
    45

massoudn

کاربر فعال
banner game

Scene
onSelfEvent (load) {}
onFrame (1) {
_global.leaf_score = 0;
_global.lives = 4;
for (i=1; i<= lives; i++) {
number_lifes["stroke_"+i].gotoAndStop("off");
}
stop();
}
onFrame (765) {
gotoAndStop(1);

}

plane_up
onFrame (2) { var new_frame : Number = (_parent.paper_plane._currentframe -3);
_parent.paper_plane.gotoAndStop(new_frame);
}
onFrame (1) {
stop();
}
onFrame (5) {
gotoAndPlay(2);

}

leaf_8 -
Copy_of_leaf_8
onSelfEvent (load) { var toggle : Boolean = true;
}
onSelfEvent (enterFrame) {
if (this.hitPad.hitTest(_parent._parent._parent.paper_plane.paper_plane.paper_plane.hitPad) && toggle) {
_global.leaf_score++;
_parent._parent._parent.paper_plane.paper_plane.gotoAndPlay(51);
if (leaf_score >= lives) {
//this checks the final number of lives and stops the main timeline
_parent._parent._parent.number_lifes["stroke_"+leaf_score].gotoAndStop("on");
_parent._parent._parent.gotoAndStop(1);
}
else {
_parent._parent._parent.number_lifes["stroke_"+leaf_score].gotoAndStop("on");
}
var toggle : Boolean = false;
}
else if (!this.hitPad.hitTest(_parent._parent._parent.paper_plane.paper_plane.paper_plane.hitPad)) {
var toggle : Boolean = true;
}
}
 

پیوست ها

  • banner_game.zip
    57.7 کیلوبایت · بازدیدها: 59

massoudn

کاربر فعال
Type your color code - Hex Color Value

Press Button to Change Color
on (press) { main.button.myTextField.textColor ="0x" + tes.text

}

changing Button
myTextField.textColor = 0xFFFFFF var colorful = new Color("boutoncolor");
colorful.setRGB(0x003366);
var colorful = new Color("Rectangle_rounded");
colorful.setRGB(0xFF0000);
var colorful = new Color("refection");

colorful.setRGB(0x999933);

 

پیوست ها

  • button (1).zip
    22.5 کیلوبایت · بازدیدها: 47

massoudn

کاربر فعال
Change Filters

Scene
function ShowFilter () { var sf : Array = myText.filters;
with (sf[0]) {
trace (" color: " + Number(color).toString(16) + " <" + color + ">");
trace ("strength: " + strength);
trace (" blurY: "+blurY);
trace (" blurX: "+blurX);
trace ("knockout: "+knockout);
trace (" inner: "+inner);
trace (" quality: "+quality);
trace (" alpha: "+alpha);
trace (" angle: "+angle);
trace ("distance: "+distance);
}
trace ("*********");
}


function ChangeFilterColor (fc) {
trace ("ChangeFilterColor to "+Number(fc).toString(16) + " <" + fc + ">");
var myFilterSC : Array = myText.filters;
myFilterSC[0].color = fc;
myText.filters = myFilterSC;
}


function ChangeTextColor (tc) {
trace ("ChangeTextColor to "+Number(tc).toString(16) + " <" + tc + ">");
myColor = new Color(myText);
myColor.setRGB(tc);
}
Text Green
on (release) { ChangeTextColor (0x00ff00)

}

Yellow
on (release) { ChangeFilterColor (0xffff00)

}

Blue
on (release) { ChangeFilterColor (0x0000ff)

}

Green
on (release) { ChangeFilterColor (0x00ff00)

}

Red
on (release) { ChangeFilterColor (0xff0000)

}

 

پیوست ها

  • ChangeFilters_02.zip
    6.7 کیلوبایت · بازدیدها: 48

massoudn

کاربر فعال
counter by code

Counter
onFrame (1) { //15 min 3600 seconds
var myCounter:Number = 10;
countDown = function():void {
myCounter--;
launchWin = "Launch new window in add zero"+myCounter+" seconds";
if (myCounter == 0) {
myCounter = 10;
clearInterval(Pop_timer);
gotoSceneAndPlay("vlc media player", 1);
}
}
var Pop_timer:Number = setInterval(countDown, 1000);
stop();
}
onFrame (5) {
stop();
}
 

پیوست ها

  • counter.zip
    18.6 کیلوبایت · بازدیدها: 50

massoudn

کاربر فعال
denemepos

تصویر 1. محل قرار گیری باکس آبی رنگ می باشد،
پس از اجرای (Play After Exporting swf File) فایل (تصویر 2.) محل از قبل تعیین شده برای باکس،
آن را به محل جدید هدایت میکند.
1. تصویر اول
1.jpg
2. تصویر دوم
2.jpg
Center

onSelfEvent (load) {

Stage.align = "TL";
Stage.scaleMode = "noScale";


resizeStage = new Object();
resizeStage.onResize = function (){
center._x = Stage.width/2;
center._y = Stage.height/2;
center.top_left._x = 0
center.top_left._y = 0





};

Stage.addListener(resizeStage);
resizeStage.onResize()
}
 

پیوست ها

  • denemepos.zip
    4.7 کیلوبایت · بازدیدها: 36
آخرین ویرایش:

massoudn

کاربر فعال
Drag Rotate

با کلیک و کشیدن خط (شعاع دایره) به بالا، پائین، چپ و راست ملاحظه میگردد که حول نقطه ای دوران پیدا خواهد کرد.
onSelfEvent(press){ onEnterFrame=function(){
angle = (Math.floor(180*Math.atan2(_ymouse,_xmouse)/Math.PI)+180);
_rotation+=angle;
}
}
onSelfEvent (release,releaseOutside){
delete this.onEnterFrame
}
 

پیوست ها

  • dragRotate.zip
    2.3 کیلوبایت · بازدیدها: 43

massoudn

کاربر فعال
Drawing Methods Recorder

درون کادر مشخص شده می توانید هر خط یا شکلی رسم نمائید،
این متد، هر گونه حرکتی از ابتدا تا انتها را در حافظه خود ضبط نموده و پس از فشردن دکمه Play مجدداً حرکات سیر شده را نمایش می دهد.
.
Play
on (release) { Recorder.recording = false;
Recorder.playing = true;
Recorder.upto = 0;

}

Recorder
onSelfEvent (press) { recording = true;
nlines = lines.length;
points = new Array;
lines[nlines] = points;
}
onSelfEvent (rollOut,release,dragOut,releaseOutside) {
recording = false;
}
onSelfEvent (load) {
lines = new Array();
recording = false;
playing = false;
}
onSelfEvent (enterFrame) {
if (recording) {
nlines = lines.length;
points = lines[nlines-1];
npoints = points.length;
x = _xmouse;
y = _ymouse;
p =
{
x:x, y:y}
points[npoints] = p;
lines[nlines-1] = points;
_root.t = _root.t + ("record "+p.x+","+p.y) + NEWLINE;
}
if (recording || playing) {
Canvas.clear();
Canvas.lineStyle (10, 0x00FF00, 100);
count = 0;
if (playing) {
upto++;
}
for (i = 0; i < lines.length && (! playing || count <= upto); i++) {
points = lines;
for (j = 0; j < points.length && (! playing || count <= upto); j++) {
count++;
p = points[j];
if (j == 0) {
Canvas.moveTo (p.x,p.y);
}
else {
Canvas.lineTo (p.x,p.y);
}
}
}
}

}

 

پیوست ها

  • drawing-methods-recorder.zip
    2.9 کیلوبایت · بازدیدها: 42

massoudn

کاربر فعال
Example Tornado using script

در ابتدا با مشاهده Swf File بنظر میرسد که شکل ساده ای از حرکت کار شده که با Effect و چینش چند Shape تورنادو طراحی گردیده است،
ولی این سادگی با effect انجام نشده، بلکه با Code نویسی همراه با توضیحات مختصر انجام گردیده است.

Tornado
onSelfEvent (load) { //
// We are going to make multiple copies of
// the Swirl sprite to form the funnel of
// the tornado. So we don't want to see the
// original Swirl sprite itself .. only the
// duplicate copies.
Swirl._visible=false;
//
// h will determine the height of the funnel.
// w will determin how far it can move
h = 250;
w = 400;
//
// stop is how far apart the swirls that make
// up the funnel are spaced vertically
step = 10;
//
// move controls the ammount of random movement
move = 10;
//
// narrow controls the narrowness of the funnel
// it has to be <1 to mae the funnnel become
// narrow at the bottom. The smaller the value
// the narrower the funnel
narrow = 0.9;
//
// lastx is used for moving the tornado and
// refers to the last x position of the topmost
// swirl
lastx = 0;
//
// Now we make the duplicates. To start with
// they will be stacked directly on top of each
// other with each one slightly smaller in xscale
// to form a narrowing funnel
xscale = 1;
for (y = 0; y < h; y += step) {
// make a duplicate of the (hidden) swirl
// at the given y value. Each sprite needs
// a unique name and depth, so we use the
// y value to make unique values. s will
// refer to the swirl duplicate we just made
s = Swirl.duplicateMovieClip("Swirl"+y,y+1);
//
// set the xscale of the swirl
s._xscale = xscale*100;
//
// set the position of the swirl
s._x = lastx;
s._y = y;
//
// xscale is going to be smaller each time
// to make the funnel narrow toward the bottom
xscale *= narrow;
}
}
onSelfEvent (enterFrame) {
//
// move the top of the tornado a bit. This
// formula will try to keep the tornado centred
// and it wont go outside the bounds we set
lastx += (Math.random()-0.5-lastx/w)*move;
//
// as we loop thru the swirls, x will have the
// x value of the swirl above the one we are
// moving. We use this to keep the swirls
// together so the funnel does not break apart
x = lastx;
for (y = 0; y < h; y += step) {
//
// s is the swirl we are moving
s = this["Swirl"+y];
//
// add some random movement to the
// position
x += (Math.random()-0.5-x/w)*move;
//
// we average with current value to keep
// funnel together
x = (x+s._x)/2;
//
// now move the swirl
s._x = x;
}
}
Image
onSelfEvent (load) { //
// set the speed of the swirl 'rotation'
speed = 10;
}
onSelfEvent (enterFrame) {
//
// pseudeo rottion .. we just move the image
// of the tornado swirl from left to right
// and reset back to left when finished to
// make it continuous (note that the image
// is tiled to have two images side by side
// and was chosen so that it tiles smoothly
_x += speed;
if (_x >= 100) {
_x = -100;
}

}

 

پیوست ها

  • Example-Tornado-using-script.zip
    52.7 کیلوبایت · بازدیدها: 55

massoudn

کاربر فعال
fire - and drag fire

Scene
onSelfEvent (load) { curDepth = 2;
FireParticle._visible = false;
particles = 200;
}
onSelfEvent (enterFrame, includingFirstFrame) {
spriteCreated = 0;
while (spriteCreated < 5) {
spriteName = "FireParticle" + curDepth;
FireParticle.duplicateMovieClip(spriteName,curDepth);
eval(spriteName)._x = Torch._x;
eval(spriteName)._y = Torch._y - 20;
eval(spriteName)._xscale = 100;
eval(spriteName)._yscale = 100;
eval(spriteName)._alpha = Math.random() * 50 + 30;
curDepth++;
if (curDepth > particles+2) {
curDepth = 2;
}
spriteCreated++;
}
}
Fire Particle
onSelfEvent (enterFrame, includingFirstFrame) { _x += Math.random() * 10 - 5;
_y -= Math.random() * 8 + 4;
_alpha -= Math.random() * 2 + 1;
_xscale -= Math.random() * 4 + 2;
_yscale -= Math.random() * 2 + 1;
if (_alpha < 2 || _xscale <= 0 || _yscale <= 0) {
removeMovieClip();
}
}
 

پیوست ها

  • fire.zip
    3.1 کیلوبایت · بازدیدها: 46
آخرین ویرایش:

massoudn

کاربر فعال
آموزش swish

با سلام،
تعدادی آموزش در خصوص سوئیش مکس جستجو نمودم،
(ضمن اینکه مربوط به ورژن های گذشته می باشد - آموزشها قدیمی هستند ولی Base نرم افزار در هر موضوع، همان است که آموزش داده شده)،
جهت آن دسته از دوستانی که قصد دارند مطالب بیشتری بصورت تصویری (ویدئو) فرا گیرند،
به این آدرس مراجعه نمایند،
توضیحات به همراه سرفصل های ویدئویی در ذیل قرار داده شده است،
این برنامه یکی از بهترین و حرفه ای ترین و در عین حال ساده ترین برنامه برای ساخت کلیپهای فلش و تبليغات اينترنتي ميباشد. امروزه جايگاه كليپهاي فلاش و بنر هاي تبليغاتي جاي خود را در اينترنت باز كرده است ساخت آسان و گذاشتن كلمات و تصاوير با افكتهاي خيره كننده يكي از كارهاي اين نرم افزار قدرتمند ميباشد. با استفاده از این برنامه می توانید در کلیپهای خود از متن، عکس، صدا و تصویر و .. به راحتی بهره ببرید. می توانید از آن برای ساخت دکمه های فلش و دیگر جلوه های فلش برای به کار گیری در سایت و وبلاگ خود استفاده کنید و … نرم افزار SWiSH Max مجهز به 380 افكت زيبا و جديد براي گذاردن بر روي متون و تصاوير ميباشد كه قدرت شما را در خلق اثر چندين برابر مي نمايد. مجهز بودن به بخش برنامه نويسي مانند جاوا، ساخت خودكار اشكال ساده , توانايي قدرتمند Import و Export نمودن فايلهاي SWF و همچنين توانايي بسيار جالب در كاهش فايلهاي فلش به كمترين مقدار نيز گوشه اي از ويژگي هاي اين نرم افزار قدرتمند و محبوب مي باشد. برخي از امكانات نرم افزار SWiSH Max v4 Build 2010.11.02: جلوه ها و افكتها: – بیش از 380 جلوه موجود و بسته بندی شده برای شما – جلوه ها میتوانند متنها، عکسها، گرافیکها و صداها را خیلی سریع انیمیشن سازی کنند – به سازندگان اجاره گسترش این جلوه ها را میدهد – تمام جلوه ها میتوانند روی یک شیء گذاشته شوند برنامه نویسی: نیازی به برنامه نویسی ندارد، تمام کدها از طریق یک منوی ساده در دسترس است – برنامه نویسی پیشرفته با استفاده از SWiSH Script – ویرایشگر کدها که به کاربر اجازه وارد کردن مستقیم برنامه نویسی را میدهد – غلط یاب که میتواند خطاها را در برنامه نویسی پیدا کند و آنها را ترمیم کند ابزارهای طراحی: – دارای ابزار طراحی پیشرفته با امکاناتی مانند: خط، مداد، متن، بیضی/دایره، مستطیل/مربع و اشکال آماده – دارای اجزا و قسمتهای بیشتر برای ویرایش کردن اشکال موجود – اشکال آماده که به شما اجازه ساخت و ویرایش جزئیات اشیاء مانند مکعب های سه بعدی را به آسانی میدهد – دارای ابزارهای راهنما، شبکه شطرنجی و همترازی و میزانفیلم های آموزشی – فایل های زیر را از حالت فشرده خارج کرده و با نرم افزار KM-Player مشاهده کنــیدنصب Swish
شروع کار با Swish
افکت ها
تبدیل به HTMl
حرکت ها
فعالیت ها
گالری 1
گالری 2
طراحی وبسایت 1
طراحی وبسایت 2
صفحه فرایند لودینگ
موزیک
رجیستر هاست
ارسال به هاست
فارسی نویسی در Swish
 
آخرین ویرایش:

massoudn

کاربر فعال
آموزش SWISH - آموزش ساخت ساعت در SWiSHmax

بخش اول
Swish
يك نرم افزار ساده براي درست كردن فايل هاي فلش است كه با استفاده از افكتهاي آماده اي كه در اختيار شما قرار مي دهد ، بدون نياز به نوشتن اسكريپ مي توانيد با آن فلشهاي زيبايي رو درست كنيد و با كمي ابتكار مي توان نتايجي كه با نرم افزار Macromedia Flash MX بدست مي آيد را به آساني و سريعتر در Swish توليد كنيد . البته با يك نگاه به افكتهاي اين نرم افزار به نظر مي رسد كه اين نرم افزار فقط روي متن و حركت آنها تمركز كرده و به صورت محدود فقط روي عكس ها و آبجكت هايي كه مي توان از قسمت Tools ساخت ، عمل مي كند . اما نسخه هاي جديد Swishبه غير از كامل و متنوع كردن اين افكتها نگاهي هم به اسكريپ نويسي داشته كه به نوعي انعطاف پذيري نرم افزار را ارتقا داده و به نوعي قلمرو و حوزه امكاناتش را به نرم افزار MX شركت ماكرومديا نزديك تر كرده است .
اغلب كساني كه نمي خواهند به صورت حرفه اي فلش كار كنند و وقت اضافي براي ياد گيري اين نرم افزار جالب اما پيچيده و اسكريپ محور ندارند ,SWiSHmax مي تواند چاره ساز باشد به طوريكه خيلي از كارها و امكاناتش با استفاده از افكتها و تغيير بعضي از پارامترهايش قابل انجام است و فقط در بعضي از موارد نياز به نوشتن اسكريپ هست كه خود SWiSHmax هم در اين قسمت شما را تنها نمي گذارد به طوريكه اگر به نوعي با يك زبان برنامه نويسي مثل C آشنايي داشته باشيد مي توانيد از پس همين كدهاي ريز هم بر بياييد . البته Help خود نرم افزار آموزش كاملي از دستورات ، اسكريپ ها و افكتها را در اختيار شما قرار مي دهد ودر قالب home page اين سايت از چهار فلش استفاده شده است كه همه آنها با استفاده از SWiSHmax ساخته شده اند . تنها با استفاده از افكتهاي ساده و كمي اسكريپ نويسي و ابتكار به اين ترتيب كنار هم قرار گرفتند و به سايت نماي حرفه اي تري داده اند . در اين كتگوري از سايت بدون توجه به آموزش هايي كه در ديگر سايتها درباره ساخت فلش با استفاده از وجود دارد ، به آموزش بعضي از امكانات اين نرم افزار از قبيل ساخت menu ، ساخت فرم مثل ساخت فرم لاگين ، ساخت Button و اسكريپ هاي مورد نياز آنها خواهم پرداخت كه اغلب بسياري از طراحان سايت با آن درگير هستند . اميدوارم كه مفيد واقع شود .



بخش دوم
آموزش ساخت ساعت در
SWiSHmax
در بعضي از سايت ها كه از فلش در هدر سايت استفاده مي كنند ، معمولآ در گوشه اي از آن يك ساعت ديجيتال يا تاريخ به چشم مي خورد كه شايد ساخت اون در نگاه اول كمي پيچيده به نظر برسد اما در SWiSHmax مي توان بسادگي با چند خط اسكريپ آن را ايجاد كرد ، سپس شما آن را در هر فلشي مي توانيد استفاده كنيد و فقط كافيست رنگ و افكتهاي مورد نظرتان را در آن اعمال كنيد . (سطح آموزش متوسط)
پس بي مقدمه شروع مي كنيم :
1- ابتدا يك Text به نام myClock ايجاد كنيد سپس نوع آن را به Dynamic تغيير دهيد و مقدار 1259 PM را در آن وارد كنيد . فراموش نكنيد كه تيك Target در جلوي نام Text را بزنيد . سپس با توجه به شكل تنظيمات زير را اعمال كنيد


2- در قسمت Outline ، myClock رو اتخاب كنيد و آن را به يك گروه Sprit تبديل كنيد . (Modify Menu | Grouping | Group as Sprite) سپس نام اسپريت را clock وارد كنيد .
3- از اين مرحله به بعد كار اسكريپ نويسي را آغاز مي كنيم . شايد از اين به بعد كار كمي پيچيده و ملال آور باشد اما اگر بدرستي مراحل را دنبال كنيد نتيجه كار زيباست . پس اسپريت clock را در Outline انتخاب كنيد و وارد پانل script شويد .
4- ()OnenterFrame را انتخاب كنيد (Add Script | Events | Frame | onEnterFrame) .
- ;name=expr را انتخاب كنيد (Add Script | Statements | Name=Expr). سپس با توجه به شكل تغييرات زير را اعمال كنيد



- خوب حالا آخرين خط (... extension ) را انتخاب كنيد و از آن يك كپي بگيريد سپس شرط IF را (Add Script | Conditional | IF) انتخاب كنيد . و در پايين مقدار شرط را hour >= 12 وارد كنيد . در اينجا بايد آن مقدار را Past كنيد . حال مقدار AM را به PM تغيير دهيد .حالا به روش بالا بايد چيزي شبيه به كد زير ايجاد كنيد .
-


- با توجه به شكل بالا روي آكولاد مربوطه كليك كنيد . سپس شرط IF را (Add Script | Conditional | IF) انتخاب كنيد . و در پايين مقدار شرط را minutes<10 وارد كنيد . حالا ;name=expr را از آدرس زير اضافه كنيد .
(Add Script | Statements | Name=Expr) و بعد مقدار "0" add minutes را وارد كنيد .
- تا اينجا مرحله به مرحله براي آموزش بيشتر جزئيات را همراه با شكل توضيح دادم ادامه كار را مي توانيد با كمي دقت از روي شكل زير دنبال كنيد . فقط بايد دقت كنيد كه كد ها را درست وارد كنيد .
 

massoudn

کاربر فعال
روش ساختن load درصدی در swish (بصورت تصویری - فایل word)

به فایل word ضمیمه شده مراجعه نمائید،
متن موجود در فایل را در ذیل قرار داده ام،
.
روش ساختن loadدرصدی در swish

قبل از هر چيز بايد يادتون باشه كه در
swish 2.0 امكان ساختن load به صورت يك درصد، يك درصد مهيا نيست اما در
swishmax به علت اضافه شدن قابليت اسكريپت نويسي پيشرفته، امكان ساختن اين
نوع loading هم فراهم شده. بهتره براي شروع loading رو در swish 2.0 كه ساختنش هم آسونتره ياد بگيريم.




loading
پيش
فرض من براي يك انيميشن با 500 فريم آماده شده و در 5 قسمت هست كه به صورت
%20 به %20 نمايش داده ميشه (يعني از %0 شروع ميشه، بعد %20، بعد %40 و
تا... %100) و اما روش ساختن loading:



1- نام Scene مربوط به انيميشن اصلي رو MainMovie بگذاريد. از منوي Insert يك Scene جديد اضافه كنيد. نام اين Scene را Loading بگذاريد. (شكل 1)






2- در
Scene Loading
يك مستطيل ايجاد كنيد و سپس اين مستطيل رو به 5 بخش مساوي تقسيم كنيد. هر
كدام از اين 5 بخش زماني نمايش داده مي‌شوند كه %20 از انيميشن اصلي load
شده باشد. يعني بخش اول پس از بار شدن %20 اول، بخش دوم پس از بار شدن %20
دوم و الي آخر... توجه كنيد كه اين تكه‌ها رو بايد پشت سر هم قرار دهيد تا
حالت يك نوار در حال پر شدن رو براي كاربر داشته باشه. در فريم 0 از remove براي عدم نمايش اين تكه استفاده كنيد (شكل 2).




3- يك متن با عبارت
loading... به اين scene اضافه كنيد. و سپس در فريم 1 يك افكت دلخواه (مثل transform) رو به اين متن اضافه كنيد و طولش رو 9 انتخاب كنيد.



4- حالا بايد در فريم 10 يك action به scene loading اضافه كنيد. براي اين كار در پنجره timeline يا outline بر روي loading كليك كنيد. سپس در بخش actions بر روي تب Actions كليك كنيد و پس از زدن Add Event و انتخاب فريم 10، بر روي add action كليك كرده و گزينه if frame loaded رو انتخاب كنيد. سپس در محل properties مربوط به اين Action فريم 100 و Scene Movie رو انتخاب كنيد. (شكل 3)

5- حالا بدون اينكه از روي
action if frame loaded كنار برويد دوباره بر روي دكمه add action كليك كنيد و اينبار عبارت goto frame را انتخاب كنيد. سپس در محل properties مربوط به اين action فريم 12 رو وارد كنيد. (شكل 4)





6- در فريم 11 يك
action ديگر اضافه كنيد. بر روي اين فريم كليك كنيد و بعد از انتخاب كردن گزينه add action عبارت goto frame را برگزينيد و در محل properties مربوط به اين action فريم 1 رو وارد كنيد.



7- توضيح خيلي مهم: همونطور كه احتمالا متوجه شديد تا اينجاي كار يك حلقه
درست كرده‌ايد كه تا هنگامي كه %20 اوليه انميشن اصلي (يعني 100 فريم) load نشود از اين حلقه خارج نميشويم. اولين مكاني كه بعد از load
شدن اين 100 فريم و خارج شدن از حلقه به آنجا مي‌رويم فريم 12 است. پس
بايد در فريم 12 اولين مربع مربوط به %20 اوليه رو نمايش بديم. پس براي
اين كار يك افكت place به اولين مربع در اين فريم اضافه كنيد. (شكل 5)









8- تا اينجا روش كنترل
load
شدن %20 اول يك انيميشن رو ياد گرفتيم. به همين ترتيب گفته شده (از مرحله
4 تا 7) ميتوانيد حلقه‌هايي براي %20 هاي باقيمانده بسازيد. فقط توجه
داشته باشيد كه در هر مرحله براي goto frame اعداد مناسب با اون درصد موردنظرتان را وارد كنيد.



توجه داشته باشيد كه اين تنها يك مثال ساده بود و شما پس از اينكه در ساختن loadin مهارت لازم رو پيدا كرديد ميتونيد loading هاي بهتر و زيباتري بسازيد.
ساختن Preloader در برنامه Swish
در اين آموزش قصد دارم چگونگي ساخت Loading را به وسيله Swish به شما دوستان بياموزم.

در اول Swish را اجرا كرده و يك عنصر Text به اون اضافه كنيد.

قبل از هر كار ديگري بر روي گزينه Insert برويد و Scene را انتخواب كنيد.

با اين كار يك Scene ديگر به اسم Scene2 درست مي شود.

به Scene1 بر گرديد .براي اين كار بايد روي Scene1 در قسمت Outline كليك كنيد.حالا دوباره به Loading ; Text بر مي گرديم.

Text اون رو از Text به Loading تغيير بدهيد. بعد از اون يهEffect به اون اضافه كنيد براي اين كار بايد

بر روي Loading كليك راست كرده و بعد از منوي باز شده گزينه Effect را انتخواب كنيد. و حالا از منوي Effect

يكي را به دلخواه باز كنيد به فرض Blur. بعد از اين كه روي Blur كليك كرديد يك پنجره باز مي شود اين پنجره را ببنديد.

بعد از اين كار بر روي Scene1 ; Frame1 برويد و يك كليك كنيد بعد منوي Action را انتخاب كنيد و بعد از اين قسمت بر روي

گزينه ِAdd Event كليك كنيد.

بعد آن كه بر روي اين دكمه كليك كرديد يه منوي كوچك باز مي شود كه داراي گزينه At Frame است بر روي آن كليك كنيد.

بعد از اين كار گزينه At Frame به Add Action تغيير مي كند. بر روي اين گزينه كليك كرده و منويي كه باز مي شود

گزينه If Frame Loaded كليك كنيد. بعد در پايين اين قسمت يك گزينه به اسم
Scene وجود دارد بر روي آن كليك كرده و گزينه Scene2 را انتحاب كنيد.

بعد از اين كار بر روي Scene1 ; Frame20 كليك كنيد(منظورم آخرين فريم Loading است ) . و بعد به قسمت

Action برويد و بعد دوباره بر روي Add Event برويد و بر روي At Frame كليك
كنيد. بعد روي Add Action كليك كرده و از منوي باز شده گزينه Goto Frame
را انتخاب كنيد.و نتظيمات آن را همان پيش فرضش بزاريد.

خوب تقريبا كار تمام شد حالا به Scene2 برويد و تمام طراحي خود را در اين Scene انجام دهيد. بعد تمام اين كار ها

وقتي طراحي شما تمام شد به Scene1 برگرديد و به قسمت Frame1 ; Action برويد و بر روي گزينه If frame 0 ... كه ايجاد كرديد كليك كنيد.

حالا در قسمت Number ; شماره آخرين فريم Scene2 كه طراحي كرده ايد را وارد كنيد.

بعد از اين كار در حالي گزينه If Frame 0 of ... فعال است دوباره بر روي گزينه Add Action كليك كرده و از منوي باز شده

گزينه Goto Frame را انتخواب كنيد.و نيز در قسمت Scene اين Action گزينه Scene2 را انتخاب كنيد.
 

پیوست ها

  • Swish.zip
    330.1 کیلوبایت · بازدیدها: 118
آخرین ویرایش:

massoudn

کاربر فعال
شکل ساده ای از Game Spaceship برای شروع ساخت یک بازی

inimigo1
onSelfEvent (load) { shot = false;
}
onFrame (1, afterPlacedObjectEvents) {
stop();
}
onFrame (2, afterPlacedObjectEvents) {
setLabel("Shot");
shot = true;
}
onFrame (12, afterPlacedObjectEvents) {
stop();
}
onSelfEvent (enterFrame, includingFirstFrame) {
if (! shot) {
_vx += random()*10-5;
_vy += random()*10-5;
if (_x < 0 || _x > 400) {
_vx = -_vx;
}
if (_y < 0 || _y > 200) {
_vy = -_vy;
}
if (_parent.balinha.isNearThis()) {
gotoAndPlay("Shot");
}
}
}
Navo
on (keyPress("<Right>")) { balinha._x+=5;
navo._x+=5;
}
on (keyPress("<Left>")) {
balinha._x-=5;
navo._x-=5;
}
on (keyPress("<Space>")) {
balinha.gotoAndPlay("Fire");
}
Balinha
onFrame (1, afterPlacedObjectEvents) { setLabel("ResetBullet");
_y = 260;
stop();
}
onFrame (2, afterPlacedObjectEvents) {
setLabel("Fire");
// start from bottom of screen
_y = 260;
}
onFrame (3, afterPlacedObjectEvents) {
_y -= 10;
if (_y < 0) {
// gone out top of screen so reset bullet
gotoAndPlay("ResetBullet");
}
}
onFrame (4, afterPlacedObjectEvents) {
// keep going up
gotoAndPlay(3);
}
 

پیوست ها

  • game_spaceship.zip
    4.8 کیلوبایت · بازدیدها: 34

massoudn

کاربر فعال
Two Style Gallery - Grid Transition

نمایش تصاویر به دو روش
.
grid_transition
.
Untitled.jpg
Scene
onFrame (1) {Stage.scaleMode = 'noScale';


var speed = .3;
var delay = 3;
var switchblur = 9;


var images = ["hil", "mtn", "ice"];
var index = 0;
var transbmp = new flash.display.BitmapData(300,300);
var blurfilter = new flash.filters.BlurFilter();


loadTransBitmap(images[index]);
var clips = createGrid(this, 1, transbmp, 40);
click_mc.swapDepths(2);


function onMouseDown(){
index++;
index %= images.length;
loadTransBitmap(images[index]);
startTransition(clips, transbmp, speed, delay);
}


function loadTransBitmap(id){
var tempbmp = flash.display.BitmapData.loadBitmap(id);
transbmp.copyPixels(tempbmp, tempbmp.rectangle, new flash.geom.Point(0,0));
tempbmp.dispose();
}


function createGrid(target, targdepth, sourcebmp, size){
var home = target.createEmptyMovieClip("transition_mc", targdepth);
var depth = 0;
var clips = new Array();
var row, rows = Math.ceil(sourcebmp.height/size);
var col = Math.ceil(sourcebmp.width/size);
var mc;
var offset = new flash.geom.Point(0,0);
while(col--){
row = rows;
clips[col] = new Array();
while(row--){
mc = home.createEmptyMovieClip("grid"+row+"_"+col, depth);
mc.rect = new flash.geom.Rectangle(size*col, size*row, size, size);
mc._x = mc.rect.left;
mc._y = mc.rect.top;
mc.rotate = 0;
mc.speed = 0;
mc.bitmap = new flash.display.BitmapData(mc.rect.width, mc.rect.height, true, 0);
mc.bitmap.copyPixels(sourcebmp, mc.rect, offset);
mc.attachBitmap(mc.bitmap, 1);
mc.transition = null;
clips[col][row] = mc;
depth++;
}
}
return clips;
}


function startTransition(clips, sourcebmp, speed, delay){
var row, rows = clips[0].length;
var col = clips.length;
while(col--){
row = rows;
while(row--){
clips[col][row].onEnterFrame = transOnEnterFrame;
clips[col][row].transition = sourcebmp;
clips[col][row].rotate = -(delay*(col+row)/2)/Math.PI;
clips[col][row].speed = speed;
}
}
}


function transOnEnterFrame(){


this.rotate += this.speed;

if (this.rotate < 0) return;
if (this.rotate > Math.PI){
this.rotate = Math.PI;
delete this.onEnterFrame;
}

if (this.transition && this.rotate >= (Math.PI/2)){
this.bitmap.copyPixels(this.transition, this.rect, new flash.geom.Point(0,0));
this.transition = null;
}

var sin = Math.sin(this.rotate);

var matrix = new flash.geom.Matrix();
matrix.tx = this.rect.left + sin*this.rect.width/2;
matrix.ty = this.rect.top + sin*this.rect.height/2;
matrix.b = matrix.c = -sin/2;
matrix.a = matrix.d = 1 + matrix.b;


this.transform.matrix = matrix;

blurfilter.blurX = blurfilter.blurY = Math.floor(switchblur*sin);
this.filters = [blurfilter];
}
}
.
grid_transition_up
Scene
onFrame (1) {Stage.scaleMode = 'noScale';


delay = 3;
var speed = 20;
var rate = 5;
var focallength = 250;
var maxheight = 100;
var origin = new flash.geom.Point(150, 300);
var images = ["hil", "mtn", "ice"];


var blurfilter = new flash.filters.BlurFilter(0,0,1);
var shadowfilter = new flash.filters.DropShadowFilter(0,45,0x0, .20, 0,0, 1, 1, false,false,false);


var raisedepth = 0;
var imagesindex = 0;
var basepoint = new flash.geom.Point(0,0);
var transbmp = new flash.display.BitmapData(300,300);
var transclips;




loadTransBitmap( images[imagesindex] );
var clips = createGrid(this, 1, transbmp, 10, 10);


click_mc.swapDepths(2);


function onMouseDown(){
loadTransBitmap( getNextImage() );
startTransition(clips, transbmp, speed, delay);
}


function getNextImage(){
imagesindex++;
imagesindex %= images.length;
return images[imagesindex];
}


function loadTransBitmap(id){
var tempbmp = flash.display.BitmapData.loadBitmap(id);
transbmp.copyPixels(tempbmp, tempbmp.rectangle, basepoint);
tempbmp.dispose();
}


function createGrid(target, targdepth, sourcebmp, cols, rows){
target.createEmptyMovieClip("transition_mc", targdepth);
target.transition_mc.createEmptyMovieClip("reveal_mc", 0);
var grid = target.transition_mc.createEmptyMovieClip("grid_mc", 1);
var col, row;
var refRect = new flash.geom.Rectangle(0,0,0,0);
var clips = new Array();
clips.reveal = target.transition_mc.reveal_mc;
clips.reveal.bitmap = sourcebmp.clone();
clips.reveal.attachBitmap(clips.reveal.bitmap, 1);
var mc;
var depth = 0;

for (col = 0; col < cols; col++){
refRect.top = 0;
refRect.left = refRect.right;

for (row = 0; row < rows; row++){
refRect.right = Math.round(sourcebmp.width * (col+1)/cols);
refRect.bottom = Math.round(sourcebmp.height * (row+1)/rows);

mc = grid.createEmptyMovieClip("grid"+row+"_"+col, depth);
mc.depth = depth;
mc.rect = refRect.clone();
mc._x = mc.rect.left;
mc._y = mc.rect.top;
mc.x = mc.rect.left;
mc.y = mc.rect.top;
mc.elevation = 0;

mc.bitmap = new flash.display.BitmapData(mc.rect.width, mc.rect.height, true, 0);
mc.bitmap.copyPixels(sourcebmp, mc.rect, basepoint);
mc.attachBitmap(mc.bitmap, 1);

clips.push(mc);
depth++;

refRect.top = refRect.bottom;
}
}
return clips;
}
function startTransition(clips, transbmp, speed, delay){
transclips = clips.slice();
raisedepth = 2*transclips.length;
clips.reveal.bitmap.draw(transbmp);
onEnterFrame = transOnEnterFrame;
}
function transOnEnterFrame(){
var i = rate;
var rand, clip;
while(i--) {
rand = Math.floor(Math.random()*transclips.length);
clip = transclips.splice(rand,1)[0];
clip.onEnterFrame = transClipOnEnterFrame;
clip.swapDepths(raisedepth);
raisedepth--;
if (!transclips.length){
break;
delete this.onEnterFrame;
}
}
}
function transClipOnEnterFrame(){


this.elevation += speed;
if (this.elevation > maxheight){
resetClip(this);
delete this.onEnterFrame;
}else{
renderClip(this);
}
}
function resetClip(mc){
mc.elevation = 0;
mc.x = mc.rect.left;
mc.y = mc.rect.top;
mc.bitmap.copyPixels(clips.reveal.bitmap, mc.rect, basepoint);
mc.swapDepths(mc.depth);
renderClip(mc);
}
function renderClip(mc){
var scaleratio = focallength/(focallength - mc.elevation);

mc._x = origin.x + (mc.x - origin.x)*scaleratio;
mc._y = origin.y + (mc.y - origin.y)*scaleratio;
mc._xscale = 100*scaleratio;
mc._yscale = 100*scaleratio;

blurfilter.blurX = blurfilter.blurY = Math.floor(mc.elevation/10);
shadowfilter.distance = mc.elevation;
mc.filters = [shadowfilter, blurfilter];
}
}
 

پیوست ها

  • grid_transition_up.zip
    86.9 کیلوبایت · بازدیدها: 81
  • grid_transition.zip
    86.2 کیلوبایت · بازدیدها: 70

massoudn

کاربر فعال
Lens Effect Using Script

Pics
onSelfEvent (load) { steps = 100;
istep = steps/2;
}
onSelfEvent (enterFrame, includingFirstFrame) {
if (_name=="disc") {
// master does not move
}
else {a
_x = (istep-steps/2)/steps * _width/2;
istep++;
if (istep > steps) {
istep = 0;
}
}
}
Disc
onSelfEvent (load) { ndisc = 45;
// control smoothness (large=smooth)
//
if (_name=="disc") {
// generate child discs to make lens
_visible = false;
for (i = 0; i < ndisc; i++) {
name = _name+i;
d = this.duplicateMovieClip(name,i+1);
d._visible = true;
d._xscale = d._yscale = Math.cosdeg(i/ndisc*90)*100;
}
}
else {
// scale child discs appropriately
s = _xscale/100;
f = 1/(Math.asindeg(s)/90);
fs = f/s*100;
p._xscale = p._yscale = fs;
}
}
 

پیوست ها

  • lens.zip
    81.2 کیلوبایت · بازدیدها: 68

massoudn

کاربر فعال
Line Property Prototype

Scene
onSelfEvent (load){
MovieClip.prototype.line_property = function(preference : String, color : Number) : void
{
_root.createEmptyMovieClip("line_mc", getNextHighestDepth());
with(line_mc)
{
lineStyle(1, color, 100); //set the line style - 0 pixels thick, black, 100% alpha
switch (preference)
{
case "underline" :
moveTo(this._x, (this._y + this._height)); //start drawing at this points (x and y)
lineTo((this._x + this._width), (this._y + this._height));
break;
case "overline" :
moveTo(this._x, this._y); //start drawing at this points (x and y)
lineTo((this._x + this._width), this._y);
break;
case "linethrough" :
moveTo(this._x, (this._y + (this._height / 2))); //start drawing at this points (x and y)
lineTo((this._x + this._width), (this._y + (this._height / 2)));
break;
}
}
}
Sourcegeek.line_property("underline", 0xFF0000) //preference = underline, overline, linethrough
Hello_world.line_property("overline", 0x000000)
Swishmax.line_property("linethrough", 0x0000FF)
}
 

پیوست ها

  • line_property_prototype.zip
    5.5 کیلوبایت · بازدیدها: 42

massoudn

کاربر فعال
Block Buster Scroll

Block Buster Scroll
function createPerspectiveMap(w0 : Number, h0 : Number) : BitmapData { var w = w0;
var h = h0;
var bmp = new flash.display.BitmapData(w, h, false, 0xffffff);


dx = -h;

for (y1=0;y1<h;y1++) {
k = (h-y1)/h; // goes 1..0


r = 128; // int(k*128+128);
r <<= 16; // move to red position.

for (x1=0;x1<=w/2;x1++) {
j = (w-2*x1)/w; // -1..0
offset = j*k; // -1..0
b = int(128-offset*128);
bmp.setPixel(x1,y1,b|r);
b = int(128+offset*128);
bmp.setPixel(w-x1,y1,b|r);
}
}
return bmp;
}
function ApplyPerspectiveMap (mc : MovieClip) {
const BLUE : Number = 4;
const GREEN : Number = 2;
const RED : Number = 1;


// var w : Number = mc._width;
// var h : Number = mc._height;
// var pt = new flash.geom.Point(_parent.ip5.val.text,_parent.ip6.val.text);
var pt = new flash.geom.Point(2,1.5);
// bmp = createPerspectiveMap(mc._width+2, mc._height+2);
// trace(mc._xscale);
bmpscale = new flash.display.BitmapData(mc._width*_xscale/100, mc._height*_yscale/100, true, 0x7F);
var scalematrix = new flash.geom.Matrix();
scalematrix.scale(mc._xscale/100,mc._xscale/100);
bmpscale.draw(bmp,scalematrix);
var dMapFilter = new flash.filters.DisplacementMapFilter(bmpscale, pt, BLUE, RED, 100, 0, "color",0x00FFFF,0);
mc.filters = [];
mc.filters = [dMapFilter];
}


function ApplyScale(mc, s) {
mc._xscale = s;
mc._yscale = s;
ApplyPerspectiveMap(mc);
}






onSelfEvent (load) {
var w0 = l1._width;
var h0 = l1._height;
var maskedge = l1._y+h0/2;
var vanishpoint = mask._height/3;

bmp = createPerspectiveMap(w0*_xscale/100+5, h0*_yscale/100+3);
j=0;
lines = parameters.ScrollText.split("\r");
this.l1.text = lines[0];
this.l1._x = 0;
this.l1._y = mask._y+mask._height/2+h0/2;
var p:MovieClip;

for (i=2;i<=lines.length;i++) {
p = l1.duplicateMovieClip("l" add i, i);
p.text = lines[i-1];
}
var div=1;
}


function MoveIt(i:Number) {
var p:MovieClip;
p = this["l" add i];
s = p._xscale;
if (s < parameters.FinalScale) {
// too small, just disable it.
p._visible = false;
return -100000; // show this point hidden
}
p._visible = true;
// trace("MoveIt(" add i add "):" add p._name);
s *= .995;
p._alpha = (p._y + vanishpoint); // start reducing alpha < 100 when 3/4 of the way to p._y=-180
p._y -= s/75;
ApplyScale(p, s);
// trace(p._y);
return p._y;
}
onFrame(1) {
if (parameters.Wait)
stop();
}
onFrame(2) {
setLabel("PlayText");
if (0 != div) {
// process the movement
r = MoveIt(1);
i = 2;
while (r < mask._y+mask._height/2-h0/3 && i <=lines.length) {
r = MoveIt(i);
i++;
}
}
if (++div == int(parameters.Speed)) {
div = 0;
}
}
onFrame(3) {
if (i <= lines.length || r != -100000)
this.gotoAndPlay("PlayText");
}
onFrame(5) {
Event(true);
if (parameters.Repeat)
gotoAndPlay("ShowText");
else
stop();
}
onFrame(10) {
setLabel("ShowText");
for (i=1;i<=lines.length;i++) {
p = this["l" add i];
p._y = mask._y+mask._height/2+h0/2;
p._xscale = 100;
p._yscale = 100;
p._alpha = 100;
}
gotoAndPlay("PlayText");
}


function Progress()
{
// this script added by component script apply before function
}


function Event(txt)
{
// button has changed state, send event information.
// if button is not togle, then information sent will always be true.
var eventfunction = parameters.EventFunction;
var eventvar = parameters.EventVariable;
if ("" != eventfunction)
{
// call the user specified event function
_parent[eventfunction].call(_parent,_name,txt);
}

var gotoscene = parameters.GotoScene;


if (gotoscene != "Disabled")
{
// goto event is enabled. Use Progress() to goto required frame
Progress();
}
}
 

پیوست ها

  • Block Buster Scroll.zip
    40.2 کیلوبایت · بازدیدها: 66

massoudn

کاربر فعال
تست نمودن سرعت نمایش یک پروژه در سطح اینترنت با سرعتهای مختلف

به تصویر ذیل توجه فرمائید،
Untitled2.jpg
.
ضمناً فایل ضمیمه شده است.
 

پیوست ها

  • LightBox.zip
    529.4 کیلوبایت · بازدیدها: 67

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

بالا