خانه » برنامه نویسی » اکشن اسکریپت » اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲

اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲

اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲

سلام این بار یک مقاله کامل که از نوشته دوستان در انجمن جمع آوری شده رو می زارم این ماله چندیدن روزه شما به صورت یک جا بخونید ، مربوط به اکشن اسکریپت ۳ می باشد
خوندن و آزمایش و تمرین این مقاله رو برای اونایی که هنوز جرات نکردن وارد دنیای جدید برنامه نویسی قدرتمند فلش بشن بسیار بسیار توصیه میکنم اگه این مقاله رو بخونید حتما دیگه ترسی از سختی یا جدیدی این زبان نخواهید داشت

اول از همه چیز اینه که AS3 از کد پایه دوباره نوشته شده و قاعدتا با AS2 تفاوت خواهد داشت . این باز سازی کد ها باعث افزایش چشمگیر سرعت اجرای دستورات شده و البته همین مزیت امکان ترکیبAS3 با ورژن های قبلی این زبان را در یک فایل سلب کرده است . قبل از شرع AS3 توجه داشته باشید که هر تغییری نیاز به صرف زمان داره همچنین از جدید بودن قالب این زبان نترسید چون تجربه نشون داده یادگیری اون برای افراد مبتدی از نسخه های قبلی آسون تر بوده.

بد نیست برای اینکه علت بوجود اومدن اون رو بفهمیم یه نگاه به تفاوت های این دوتا و قابلیت های جدید AS3 بندازیم :

  1. گزارش دقیقتر خطا ها
  2. ارتقای دستور زبان
  3. معماری جدید سیستم نمایش(display)
  4. معماری جدید مدیریت اتفاقات (events)
  5. ارتفای امکانات ارتباط با XML
  6. قابلیت جدید کار با text ها
  7. امکانات جدید مدیریت صدا ها
  8. قابلیت جدید دسترسی به داده ها : می تونید به داده ها در حین دانلود دسترسی داشته باشید!
  9. ارتقای برنامه نویس شی گرا

کاربران AS3 علاوه بر کار در محیط فلش می تونند برای پلتفرم های جدید فلش مثل Flex و adobe AIR هم برنامه نویسی کنند . اگر چه یک پروژه AIR میتونه شامل HTML ، PDF و Java Script هم باشه اما AS3 ابزار اصلی و جامع این نوع اپلیکشن هاست.

شروع :
بخش اول :

۱- تعریف متغیر ها به همون شکل AS2 است و تغییری نکرده :

کد:

var myVariable:Number = 1;

2- همچنین عملگر های شرطی و کنترلی :

کد:

if (a == 1 && b == "goodbye") {
trace("options a and b");
}

for (var i:Number = 0; i < 3; i++) {
trace("hello");
}

switch (a) {
case 1 :
trace("one");
case 2 :
trace("two");
break;
}

while (num < .5) {
num = Math.random();
}

3- آریه ها هم :

کد:

var myArray:Array = new Array();
myArray.push(1);
trace(myArray)
// 1 appears in the Output panel
myArray.push(2);
// the array now has two items: 1, 2
trace(myArray.pop());
// the pop() method removes the last item, displaying its value of 2
trace(myArray)
// the lone remaining item in the array, 1, is displayed

4- فانکشن ها هم:

کد:

function showMsg(){
trace("hello");
}
showMsg();

5- اشیا :

کد:

var plane:Object = new Object();
plane.pitch = 0;
plane.roll = 5;
plane.yaw = 5;

6- تریگر ها :

کد:

this.mc.width;

7- تعریف جدید تر مفاهیم Properties وMethods و Events:

Properties: شامل ویژگی های یک شی است مثل طول ، عرض ، شفافیت .
Methods: شامل کارهایی که یک شی می تونه انجام بده مثلا :play, stop,getUrl
Events: شامل همه اتفاقاتی که ممکنه برای یک شی بیفته مثلا کلیک شدن ، لود شدن ، درگ شدن و… . این اتفاقات هنگام واقع شدن باعث اجرا شدن یک سری دستورات که ما تعیین می کنیم می شوند .
EventHandlers واسته ای هست برای اینکه اتفاقات را به فانکشن ها مرتبط کنه . این ویژگی چند تا تغییر کوچولو با AS2 داره :

کد:

rotate_right_btn.addEventListener(MouseEvent.MOUSE_UP,onRotateRight);
function onRotateRight(evt:MouseEvent):void {
box.rotation += 20;
}

متود addEventListener()برای تعریف یک event به کار میره و شیئی را که قرار است listening کنه رو به یک function وصل می کنه . در مثال بالا دکمه rotate_right_btn قراره منتظر بمونه تا یه mouseUp (کلیک که می کنی نه وقتی ول می کنی می گن mouseUp ) اتفاق بیفته و وقتی این اتفاق می فته فانکشن onRotateRight اجرا می شود . addEventListener()دو تا پارامتر داره. پارامتر اول می گه که دکمه قراره منتظر چه event یی باشه . پارامتر دوم اسم فانکشنی هست که هنگام اتفاق افتادن event باید صدا زده بشه . مثال زیر هم کاربرد پارامتر ورودی فانکشن onStartDrag هست که می تونه خیلی کاربردی باشه . evt.target آبجکتی را که event در مورد اون اتفاق افتاده تریگر می کنه. evt یک شیئ MouseEvent هست که target یک Propertie از اون هست .

کد :

myMovieClip.addEventListener(MouseEvent.MOUSE_DOWN, onStartDrag);
myMovieClip.addEventListener(MouseEvent.MOUSE_UP, onStopDrag);
function onStartDrag(evt:MouseEvent):void {
evt.target.startDrag();
} function onStopDrag(evt:MouseEvent):void {
evt.target.stopDrag();
}

Frame Events :مثال بدون شرح

کد :

stage.addEventListener(Event.ENTER_FRAME,onFrameLoop);
function onFrameLoop(evt:Event):void {
cycle.x = mouseX;
cycle.wheel.rotation = mouseX;
}

Timer Events :
همون طور که می دونید enterFrame به علت ثابت بودن فریم ریت در بازه های زمانی ثابت اتفاق می افته . Timer Eventاین اجازه رو میده تا یک فانکشن را در یک بازه زمانی دینامیک و دلخواه صدا بزنیم . این قابلیت در AS2 بوسیله تابع setInterval() قابل پیاده سازی بود .

کد :

var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(evt:TimerEvent):void {
watch.hand.rotation +=5;
}

بخش دوم :
یک مفهوم جدید واساسی : DisplayList

سلام ماه رمضون مبارک اگه آنتن داد ما اموات رو هم یاد کنید .
پیچیدگی ، پراکندگی و بی نظمی هایی که در AS2 برای ایجاد در حال اجرای (runTime ) اشیای گرافیکی (مثل متن ها ، عکس ها ، مووی کلیپ ها و … ) وجود داشت باعث شد تا تو AS3 یه حال اساسی به این مقوله داده بشه ، نتیجه این تغییرات بنیادی ، شده Display list .
برای اینکه مفهوم Display list رو خوب بفهمید اول خوب به فایل فلش توجه کنید و دقیقا پیش خودتون مشخص کنید چه چیزایی رو میبینید و اون ها رو دسته بندی کنید . به قول این کتاب این همه نصف راهه .

Display list بخش نگهدارنده همه اشیاء بصری داخل فایل شماست . بوسیله Display list می تونید یک شیء گرافیکی را اضافه یا حذف کنید ، اون ها را کنار هم قرار بدید و ارتباط اونها رو با هم تعیین کنید . برای نمونه توی فایل مثلا زیر – شکل ۱ – ما یک shape داریم ، یک Text و یک Movie Clip که داخل اون یک تصویر بیت مپ قرار داره . اما AS3 فایل ما رو به شکلDisplay list متناظرش–شکل ۲- می بینه .

واضح و مبرهن است که Display list یک شیء است و هر شیئی را کلاسی اندر است . نوع داده های کلاس display object به صورت زیر است :

یه سری توضیح برای اشیاء جدیدالورود :
DisplayObject : هر چیزی که در display list می تواند وجود داشته باشد .
Shapes : یک مستطیل ، بیضی ، خط و یا هر چیز دیگری که بوسیله ابزار ها کشیدی می شوند .
Bitpam : تنها بیت مپ هایی در این قسمت جا می گیرند که بوسیله کلاس bitmap data و در حال اجرا بوسیلهAS3 ساخته شده باشند . توجه داشته باشید عکس های jpg که که وارد فایل می شوند در این نوع از bitmap دسته بندی نمی شند و در گروه shape ها قرار می گیرند .
Video : یک شی video display که حداقل ش اینه که یک ویدیو رو پخش کند . بطور استاندارد یک کامپوننت player .
InteractiveObject : این کلاس همه اشیاء display Object رو که بوسیله کاربر و توسط موس و صحفه کلید قابل تغییرند رو شامل می شه .
این کلاس به طور دستی به display list اضافه نمی شه . ما فقط می تونیم با زیر مجموعه هاش کار کنیم .
DisplayObjectContainer : این کلاس شبیه display object است با این تفاوت که این یکی میتونه داخلش چند تا display object داشته باشه که به این display object داخلیش می گن بچه –children – . مثلا video یک display object هست اما نمی تونه داخلش یک display object داشته باشه اما Movie clip با اینکه خودش هم display object هست اما می تونه داخل خودش display object داشته باشه پس Movie clip یک DisplayObjectContainer است .AS3 چند مدل DisplayObjectContainer داره :
Stage : تقریبا همون root خودمونه و display object های زیر مجموعه اش هم با همین اسم می تونند آدرس دهی بشن . البته توجه کنید که خودش بخشی از Display list هست .
Sprite : این یکی خیلی جدیده . sprite یک مووی کلیپ بدون تایم لاینه .
Loader : برای لود swf یا bitmap ها .
AVM1Movie: این کلاس برای کار با swf هایی که با AS1 یا AS2 ساخته شدند و قراره لود بشند به کار می ره . مخفف ActionScript Virtual Machine 1 هست . swf لود شده با فایل اصلی هیچ رابطه ندارند . البته احتمالا با local conection قابل پیاده سازی باشه .

root_در برابر root :
در AS2 کلمه _root به تایم لاین swf اصلی اشاره می کرد . چون _root یک متغیر global و همیشه ثابت بود اگر فایلی رو لود می کردین که توی اون به _root اشاره می شد _root فایل اصلی در نظر گرفته می شد . در AS3 کلمه root یک متغیر متعلق به display object است و معمولا به تایم لاین اصلی اشاره نمی کند .

بخش سوم :

چینش اجرای Display list

addChild() :

برای اضافه کردن یک display object به display list دو گام ساده نیاز هست :
۱-ساختن یک display object (در مثال اینجا یک MC ) :

کد :

var mc:MovieClip = new MovieClip();

این دستور یک مووی کلیپ می سازه ام ، اونو نمایش نمی ده .
۲- برای نمایش این MC باید اونو به display list اضافه کنیم :

کد :

addChild(mc);

اگر شما یک displayObjectContainer داشته باشید و بخواید MC تون توی اون باشه می تونید دستور addChild() رو به صورت زیر بنویسید :

کد :

navBar.addChild(mc);

دو تا مثلا برای انواع دیگه display Object :

کد :

var sp:Sprite = new Sprite();
addChild(sp);
var sh:Shape = new Shape();
addChild(sh);

توی AS2 مووی کلیپ ها یه خصوصیت دیگه هم به اسمdepthداشتند که لایه بندی اونها رو مشخص می کرد . display list این کار رو به طور خودکار انجام میده و هر شیئی که add میشه رو به بالا ترین سطح z موجود میبره و البته بطور دستی هم می شه اونو تعیین کرد .

اضافه کردن یک symbol به display list :
توی کتابخانهگزینه linckage مووی کلیپ مورد نظرتون رو کلیک کنید و گزینه Export for ActionScript رو هم فعال کنید کنید :

در جعبه Base class کلاسی که قراره symbol مورد نظرتون وارثش بشه رو مشخص کنید .

و حالا :

کد:

var cycle:MovieClip = new Unicycle();
addChild(cycle);

در اینجا قدرت شی گرایی فلش رو دیدیم در ادامه بیشتر به این موضوع می پردازیم

بخش چهارم : ( برنامه نویسی شی گرا)Object-oriented programming

به طور مختصر برنامه نویسی شی گرا یک روش برای حل مسئله های بزرگ که نیاز به استفاده از قانون تفرقه بنداز و حکومت کن داره هست . توی این روش مسئله بزرگ به زیر مسئله های کوچک خرد می شند که ریز حلال های این ریز مسائل رو می شه با کمی مسامحه به همون اسم کلاس صدا زد .
البته گروهی از برنامه نویسان این روش بسار خوب رو به کشتن پشه با چکش تشبیه می کنن واقعا همین جوره البته برای کار های کوچک ولی برای پروژه های بزرگ واقعا کار رو راحت می کنه مخصوصا پر کار برد ترین بخش شی گرا که واثت کلاس ها از یکدیگری که با استفاده از روشهای تک خال single ton و دیگر روشهای موجود میشه از حجم کد نویسی اضافه زیادی جلوگیری کرد

قالب کلی یک کلاس ساده :

کد :

package {
import flash.display.MovieClip;

public class Main extends MovieClip {
public function Main() {
trace("Flash");
}
}
}

کلمه package کلاس و همه اجزای مرتبط با اون رو توی خودش بسته بندی می کنه . و البته کاربردهای دییگه هم داره که می بینیم . خط دوم به اصطلاحا کامپایلر می گه که می خوایم شی ما تمام متود ها ، پروپرتی ها و ایونت های MovieClip رو هم داشته باشه .
کلمه extends MovieClip استفاده از مفهوم وراثت توی بحث OOP است . وراثت یعنی صرفه جویی در کد . با این کار شما کلاس MovieClip رو توسعه می دین بدون اینکه از محتویاتش اطلاع داشته باشید .
حالا کد بالا رو توی پوشه فایل FLA جاری با نام Main.as ذخیره کنید و توی فریم اول کد زیر رو بنویسید و اجرا کنید :

کد:

var main:Main = new Main();

Class Paths :
برای استفاده از کلاس ها چند روش وجود داره . اول اینکه خود فلش همه فایل های .as داخل پوشه خودش رو به طور خودکار import می کنه مثل مثال بالا . دوم ؛ بعضی مواقع لازم می شه تا کلاس ها داخل پوشه ها قرار بگیرند تا دسته بندی دقیق تری انجام بشه . توی این حال برای دسترسی به فایل های داخل پوشه ها برای هر پوشه از یک نقطه استفاده می کنیم :

کد:

import myapp.effects.Water;

توی این مثال ما کلاس myapp>effects>Water.as رو import می کنیم . البته باید توی خود Water.as هم باید تغییراتی رو بدیم :

کد:

package myapp.effects {

public class Water {
public function Water() {

}
}
}

سوم می شه از Publish settings هم کلاس ها رو به پروژه اضافه کرد .

یه مثلا برای تکمیل و تفریح :

کد:

package {
import flash.display.MovieClip;
import flash.display.Graphics;
import flash.events.Event;

public class Box extends MovieClip {
public var color:uint = 0x000099;
public function Box() {
//draw a shape at runtime
this.graphics.lineStyle(1, 0x000000);
this.graphics.beginFill(color);
this.graphics.drawRect(0, 0, 100, 100);
this.graphics.endFill();
this.addEventListener(Event.ENTER_FRAME, onLoop, false,0, true);
}
private function onLoop(evt:Event):void {
this.x += 5;
}
}
}

addChild() یادتون نره پایان کار باید اسفاده بشه ها .

به نظرم تا اینجا یه Action Scrip 2.0 کار می تونه با Action Script 3.0 کار کنه . البته این چرند و پرند هایی که من گفتم حتما ناقص هست ؛ ام ، به نظرم برای یه AS2 کار یکفی بالاشاره . بقیه چیزها به سادگی حین کار یاد گرفته می شند مثلا اینجا لازم نیست که من از ()gotoAndStop چیزی بگم در صورتی که شاید برای یک AS3 کار دونستنش از نون شب هم واجب تره و باز هم البته AS3 یک هوا از AS2سره و تکنیک ها و خروجی هایی که می شه از کشید بیرون در حد معجزه ست .
تا حدی که هم اکنون متورهای پردازش سه بعدی زیادی باین ورژن نوشته شده که با اونا میشه بازی سه بعدی کامل با فلش ساخت استفاده کمتر از رم و نیز کمتر به پردازش از حسن ها اصلی این ورژن می باشد تقریبا تا جایی که تونستن از قابلیتهای برتر دیگر زباهای برنامه نویسی برای بهتر شدنش کمک گرفتن به زودی در ادامه آموزش ها به بحث سه بعدی سازی با AS3 هم خواهیم پرداخت

::یک توضیح ضروری::
برای اشاره کردن به اجزای یک فایل توی AS2 معمولا از _parent , _root استفاده می شه . توی AS3 وقتی از این قابلیت استفاده کنید .

مثلا :

کد:

parent.gotoAndStop(20);

هنگام اجرا با خطا مواجه می شید

Access of possibly undefined property gotoAndStop through a reference with static type flash.displayisplayObject

این به خاطر اینه که فلش نمی دونه جنس parent از چیه . واسه حل این مشکل به این روش عمل می کنیم :

کد :

MovieClip(parent).gotoAndStop(20);

با این کار برای فلش مشخص می کنید که parent از چه جنسی می باشد.

در پایان چند ابزار مفید برای برنامه نویسی با AS3 رو براتون می زارم تا تقریبا مقاله تکمیل بشه ;)

تبدیل اکشن اسکریپت ۲ به اکشن اسکریپت ۳ (AS2 to AS3 convertor)
برای اجرا به جاوا ران تایم احتیاج داره و می بایست جاوا رو روی سیستم نصب کرده باشید. این هم یه قسمت از توضیحات هست.

Installation and usage:
To use this application you must first install the JRE. Then you must modify ‘run.bat’ with a text editor. Finally, you just double-click run.bat to run it.
1.) Install the Java Runtime Environment (JRE) – http://java.sun.com
2.) Open run.bat with a text editor.
3.) Modify the path variable to point the ‘bin’ directory of your JRE installation.
4.) Modify the 3 directories on the line that looks like the line below. In order, the directories are the AS2 source directory, the AS2 output directory, and the AS3 output directory.
java -jar As3CodeUpdater.jar “C:codeAs2Source” “C:codeAs2Output” “C:codeAs3Output”
۵.) Save it. Double-click run.bat

توضیحات و فایل مروطه به صورت زیپ شده برای دانلود :
http://www.electrotank.com/junk/jobe/AS2_to_AS3.zip

جدول تطبیق دستورات as2 با as3

این جدولی که توی پیوست هاست فکر کنم خیلی مفید باشه واسه اینکه ببینید حدودا چقد as2 با as3 فرق کرده و یه دسته بندی خوب هم داره …حتما ببینید. این جا رو هم ببینید که حتما مفیده برای درک بهتر فلش …

این هم به صورت فایل زیپ می تونید از اینجا دانلود کنید

وای چقدر زیاد شد خسته شدم
دوستان هر سوال یا مشکلی بود در خدمتم
امیدوارم بستری را برای مهاجرت برنامه نویسان از AS2 به AS3 فراهم اورده باشم بقیش دیکه به تلاش و پشتکار خودتونه
انشاء الله موفق و پیروز و سربلند باشید ، بهروز

پ.ن : پاسخ به یک سوالاتی که از طرف کاربران پرسیده شده است به دلیل کاربردی بود :

۱-علی رضا

سوال :

اگر میشه در مورد متدهای Stage هم مطلبی بنویسید.

جواب :

جا به صورت خلاصه مفید ترین هاشو در AS2 به صورت زیر میباشد

Stage.align = "T";
Stage.scaleMode = "noscale";
Stage.showMenu = false;
Stage.addListener(listener);
Stage.fullScreenWidth()
Stage.fullScreenHeight()
Stage.fullScreenSourceRect()

البته تفاوت کوچکی در AS3 وجود دارد که بهتره برای لیست کامل به راهنمای فلش مراجعه کنید

۲- هاجر

سوال :

سلام روزتون به خیر. اگر اجازه دهید چند سوال در مورد اکشن اسکریپت ۳ و فلش ۱۰ بپرسم.
۱- من یک فیلم فلش ساخته ام که سه لایه صوتی دارد. که هر یک در برگیرنده صدای یک خواننده است. می خواستم فرمی طراحی کنم که کاربر خودش خواننده مورد نظر را انتخاب کند. پس از انتخاب توسط کاربر دیگر لایه های صوتی غیر فعال شوند. لطفا من را راهنمایی کنید.

۲- آیا راهی هست که به شماره لایه های یک فیلم فلش و یا شماره لایه های یک فیلم فلش که در فیلم اصلی لود شده است دسترسی پیدا کرد و آن ها را کنترل کرد.

۳-فکر می کنم تفاوت هایی بین لود کردن چند فیلم فلش در یک فیلم اصلی در as3 و as2 وجود دارد. آیا در as3 هم مانند as2 بحث سطوح مختلف (سطح صفر برای فیلم اصلی و سطوح ۱ به بعد برای فیلم های بعدی) وجود دارد؟آیا می توان کاری کرد که یک فیلم فلش خارجی در زیر برخی عناصر (مثلا یک shap) فیلم اصلی قرار بگیرد؟ آیا راهی وجود دارد که در فیلم اصلی دکمه هایی برای لود کردن فیلم های مختلف قرار دهیم که هر یک فیلم خاصی را لود می کنند و فقط یک دکمه stop وجود داشته باشد که فیلم های لود شده متوقف کند؟
در ضمن از آشنایی با سایتتون خیلی خوشحال شدم. اگر ممکن است مطالب آموزشی عملی را بیشتر قرار دهید.
متشکرم

جواب :

۱ – نکته ای رو در اول بگم اگه به صورت اکسترنال اکشن و یا پکیج برنامه نویسی می کنید و صدا ها تون هم از بیرو بارگزاری می کنید از این دو ورودی استفاده نمایید(در ابتدای کد)

code>import flash.media.Sound;
import flash.net.URLRequest;

شما نیازی نیست که هر صدا را در یک لایه قرار دهید فقط کافیت آنها را وارد library کنید

و بعد بر روی هر صدا راست کلیک می کنید و linkage را انتخاب نمایید کادرس شبیه به عکس زیر باز می شه در قسمت class برای هر کدام ار صدا ها یک نام بگذارید

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

var mySound:Sound = new MyFavSong();
var mySound2:Sound = new MyFavSong2();
var mySound3:Sound = new MyFavSong3();

خوب تا اینجا فقط صدا ها رو تعریف کردیم حالا برای پخش و ایشت هر کدوم کافیه از play براشون استفاده کنیم

mySound.play();

این ها که گفتن به صورت کلی بود برای این موضوع یک فایل سورس مثال میزارم تا استفاده کنید
برای دانلود سورس استفاده صدا در اکشن اسکریپت ۳ کلیک کنید

برای کنترل بر بیشتر بر روی صدا ها می بایست چنل تعریف کنید که البته توی کد سورس بالا وجود دارد

۲ – در واقع نه به این منظور از لایه ها ولی به سطوح depth ها می شود دسترسی پیدا کرد و آنها را بالا و پایین برد

۳ – بله در کد و روش و نوع کار
بله ولی با تعرفی جدید
بله این کار هم توسط depth امکان پذیر می باشد
بله مانند مثال صدا شما یک شی برای پخش ویدئو ایجاد می کنید و تنها با دکمه های ارجاع برای پخش را عوض می کنید و با یک دکمه ایست شدن هر فیلمی را در این شی ایست می کنید
متاسفانه به دلیل طولانی بودن و البته یه کم پیچیده بود امکان نوشتنش در اینجا نیست ؛ انشاء الله در مقاله ای دیگر…

در مورد depth در اکشن اسکریپت ۳ می بایست از روشهای زیر استفاده کنید

setChildIndex(example,0);

که به جای صفر می تونید عدد مورد نظرتون برای سطح رو وارد نمایید

برای بدست آوردن آخرین سطح منهای یک از کد زیر استفاده می کنیم ، در واقع numChildern تعداد فرزند های موجود در والد می باشد

setChildIndex(example,numChildren - 1);

برای بالا بردن سطح نسبع به یک شی دیگر ابتدا سطح شی دیگر رو می گیریم و به اضافه یک به شی جدید خودمون اضافه می کنیم

var otherindex = getChildIndex(theotherthing);
//Behind that thing:
setChildIndex(example, otherindex)
//^ pushes the other thing forward
//In front:
setChildIndex(example, otherindex + 1);

3- پریسا

سوال:

ممکن است در مورد ساختن نواری که مدت زمان سپری شده از یک فیلم را نشان می دهد توضیح دهید.(فکر می کنم اسمش playback bar است).

جواب:

در واقع به این موارد playback bar و یا seek bar گفته میشه که به عنوان یک کامپوننت آماده در بخش کاموننت های فلش موجود می باشد و تنها کافیست آدرس فیلم و تنظیمات خود را وارد نمایید
ساخت این موارد یه کم توضیحشون طولانی می شه
ولی در کل اینه که طول فلیم رو بر اساس زمانش در یافت می کنیم و حالا می بایست به نسبت به عرض نواری که داریم تبدیلش کنیم و یک مووی کلیک مانند نوار بارگزاری اگه دیده باشید ایجاد کنیم و حالا می بایست یک مووی کلیپ با سایز مورد نظر ثابت برای نوار خالی بسازیم و با فرمان مختصات موس روی محورهای ایکس محل کلیک رو دریافت کنیم و فیلم و مووی کلیپ دوم که نمایش گر فیلم تا محل نمایش داده شده است رو حرکت بدهیم
البته این کار توسط یک EnterFrame هم می بایست در زمان پخش فیلم انجام شود
البته یه نوار به یک رنگ دیگر نیز برای زمان بارگزاری فیلم استفاده میشه

اینها که گفتم تقریبا اصول کلی بود که هم برای ویدئو و صدا و هم پیمایش فایل swf استفاده میشه و نیاز به برنامه نویسی زیادی داره
با توجه به این که شما می تونید قالب بندی پلیرهای آماده درون کامپوننت های فلش رو خودتون تغییر بدید به صرفه تر این است که از کامپوننت ها استفاده کنید
ولی در هر حال من یک نمونه کد براتون میزارم تقریبا کامله و برای اسختن دستی این موضوع میباشد

var mediaURL:String = "http://files.fliiby.com/streamVideo.php?file=u25u74oigj.flv";
var duration:Number;
var video:Video = new Video(320, 240);
addChild(video);
setChildIndex(video,1);
var nc:NetConnection = new NetConnection();
nc.connect(null);
var ns:NetStream = new NetStream(nc);
var stransform:SoundTransform = new SoundTransform();
ns.soundTransform = stransform;
video.smoothing = true;
ns.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);
function onStatusEvent(stat:Object):void
{
trace(stat.info.code);
if(stat.info.code == "NetStream.Buffer.Full") {
bufferClip.visible = false;
}
if(stat.info.code == "NetStream.Buffer.Empty") {
bufferClip.visible = true;
}
if(stat.info.code == "NetStream.Play.Stop") {
ns.seek(0);
}
}
var meta:Object = new Object();
meta.onMetaData = function(meta:Object) {
duration = meta.duration;
}
ns.bufferTime = 0.1;
ns.client = meta;
video.attachNetStream(ns);
ns.play(mediaURL);
playButton.addEventListener(MouseEvent.MOUSE_UP, playButton_Release);
function playButton_Release(event:MouseEvent) {
ns.togglePause();
}
rewindButton.addEventListener(MouseEvent.MOUSE_UP, rewindButton_Release);
function rewindButton_Release(event:MouseEvent) {
ns.seek(0);
}
var videoInterval:uint = setInterval(videoStatus,100);
function videoStatus() {
var amountLoaded:Number = ns.bytesLoaded / ns.bytesTotal;
loader.loadbar.width = amountLoaded * 208.9;
loader.scrub.x = ns.time / duration * 208.9;
}
var scrubInterval:uint;
loader.scrub.addEventListener(MouseEvent.MOUSE_DOWN, loaderScrub_click);
function loaderScrub_click(event:MouseEvent) {
clearInterval(videoInterval);
scrubInterval = setInterval(scrubit,10);
loader.scrub.startDrag(false,new Rectangle(0, loader.scrub.y, 208, loader.scrub.y));
}
loader.scrub.addEventListener(MouseEvent.MOUSE_UP, loaderScrub_Release);
loader.scrub.stage.addEventListener(MouseEvent.MOUSE_UP, loaderScrub_Release);
function loaderScrub_Release(event:MouseEvent) {
clearInterval(scrubInterval);
videoInterval = setInterval(videoStatus,100);
loader.scrub.stopDrag();
}
function scrubit() {
ns.seek(Math.floor((loader.scrub.x/208)*duration));
}
var playerMenu:ContextMenu = new ContextMenu();
playerMenu.hideBuiltInItems();
var item1:ContextMenuItem = new ContextMenuItem("::::: Video Controls :::::");
var item2:ContextMenuItem = new ContextMenuItem("Play / Pause Video");
var item3:ContextMenuItem = new ContextMenuItem("Replay the Video");
var item4:ContextMenuItem = new ContextMenuItem("© ۲۰۰۹ IFLashLord.Com");
item2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, pauseIt);
item3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, restartIt);
playerMenu.customItems.push(item1, item2, item3, item4);
contextMenu = playerMenu;
function pauseIt(event:ContextMenuEvent):void {
trace("pauseIt()");
ns.togglePause();
}
function stopIt(event:ContextMenuEvent):void {
trace("stopIt()");
ns.seek(0);
ns.pause();
}
function restartIt(event:ContextMenuEvent):void {
trace("restartIt()");
ns.seek(0);
}
function setVolume(val):void {
stransform.volume = val;
ns.soundTransform = stransform;
}
function getVolume():Number {
return stransform.volume;
}
function soundOff():void {
setVolume(0);
}
function soundOn():void {
setVolume(1);
}
mute.addEventListener(MouseEvent.MOUSE_OVER, mute_Mouseover);
function mute_Mouseover(event:MouseEvent) {
if(getVolume() == 1) {
mute.gotoAndStop("onOver");
}
else {
mute.gotoAndStop("muteOver");
}
}
mute.addEventListener(MouseEvent.MOUSE_OUT, mute_Mouseout);
function mute_Mouseout(event:MouseEvent) {
if(getVolume()== 1) {
mute.gotoAndStop("on");
}
else {
mute.gotoAndStop("mute");
}
}
mute.addEventListener(MouseEvent.MOUSE_UP, mute_Click);
function mute_Click(event:MouseEvent) {
if(getVolume() == 1) {
setVolume(0);
mute.gotoAndStop("muteOver");
}
else {
setVolume(1);
mute.gotoAndStop("onOver");
}
}

4 – هاجر

سوال :

مشکل من فارسی نوشتن روی این کامپوننت هاست . مخصوصا در مورد comboboxها. در ضمن من اصلا فونتی که فلش برای فارسی استفاده می کند دوست ندارم چطور می توانم آن را تغییر دهم.

. اگر بخواهیم با زدن یک دکمه یکی از سطرهای comboboxظاهر شود آیا باید از prompt استفاده کنیم؟ (من استفاده کرده ام ولی جواب نمی دهد)
یک سوال دیگر من می خواهم یک شکل نامنظم را که در فتوشاپ طراحی کرده ام به عنوان ماسک روی صفحه قرار دهم ولی وقتی آن را در فتوشاپ paste می کنم یک پس زمینه سفید در کنار آن قرار می دهد. حتی اگر خود شکل را انتخاب کرده باشم. به نظر شما بهترین کار برای طراحی شکل های پیچیده چیست؟ و این که وقتی در فتوشاپ یک شکل را (مثل یک ابر )انتخاب می کنم و feather ان را تنظیم می کنم و آن را در فلش paste می کنم خطی در اطراف شکل می اندازد که نمی توان آن را از بین برد راه حل آن چیست؟

پاسخ :

مشکل فارسی در فونت می باشد که با کد زیر می توانید فونت و فرمت مورد نظر خود را تعیین نمایید :

my_listBox.setStyleProperty("textFont", "Tahoma");

این خصوصیت استایل می باشد که برای قالب بندی به کار می رود

و یا

my_listBox.setStyle("fontFamily", "Tahoma");

اگر از اکشن اسکریپ ۳ استفاده می کنید با کد زیر میتوانید به تمامی کامپوننت های فعال در پروژتون فونت و استایل مورد علاقتون رو اعمال کنید

//set Style to all
var ff:TextFormat = new TextFormat();
ff.font="Tahoma";
ff.size=12;
ff.color=0x000000;
ff.align="right";
import fl.managers.StyleManager;
StyleManager.setStyle("textFormat", ff);

نه نیازی به این کار نمی باشد ،اگه منظورتون از ظاهر شدن انتخاب شدن یک گزینه میباشد!؟ برای این کار می بایست مقدار selected را تغییر دهیدبهترین راه برای ورود تصویر به فلش استفاده از نرم افزار fireworks می باشد که ارتباط قوی با فلش دارد
در مورد ماسک گذاری یک تصویر در صورتی که حتی پس زمینه نداشته باشد نمی توان به عنوان ماسک در فلش استفاده نمود و می بایست طرحی وکتور و در فلش برای ماسک از روی طرح مورد نظر خود بکشید(طراحی نمایید)

در مورد آخر هم با استفاده از نرم افزار fireworks مشکل حل می شود ولی در غیر این صورت می بایست خروجی تصویر را png بگیرید و بعد تصویر را وارد فلش کنید ، در صورتی که لازم داشته باشید در نرم افزار فلش امکان فشرده سازی تصویر وجود دارد

سوال :

این کد که در action script 2.0 عمل میکنه اگر بخواهیم در action script 3.0 بنویسم باید چطور نوشته بشه؟

Stage.align =''C'';
Stage.scaleMode=''noSclee'';
Stage.showMenu=false; false;setProperty('''',_quality, ''best'');

جواب:
به جای اون کد ها می بایست از کدهای زیر در اکشن اسکریپت۳ استفاده نمایید

import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.StageQuality;
import  flash.ui.ContextMenuItem;

stage.scaleMode = StageScaleMode.SHOW_ALL;
stage.align = StageAlign.TOP_LEFT;
stage.quality =StageQuality.BEST;

var cm:ContextMenu= new ContextMenu();
cm.hideBuiltInItems();
this.contextMenu = cm;

Print Friendly, PDF & Email
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

329 نظر

  1. با سلام خدمت استاد محترم آقای پولاد رگ عزیز
    امیدوارم خسته نباشید
    از اینکه لطف فرموده و جواب سوالم رو دادین واقعا متشکرم

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

    بیشتر سوالم در مورد این است که این نام را در بیس کلاس چگونه وارد کنم در صورت امکان اگر با مثالی توضیح بفرمایین فک کنم قابل مفهوم تر باشه یعنی کل سوالم در مورد اول کار است که برای یک شی در کتابخانه ، برای بیس کلاسش چه نامی باید وارد کنم اگر با مثالی لطف بفرمایین ممنون میشم

    از اینکه لطف کرده و سوالم رو بی جواب نمیگذارید نهایت تشکر و قدر دانی را دارم

    ارادتمند رضا

    • سلام دوست عزیز
      برای این مورد فکر می کنم این آموزش تقریبا کامل این موضوع را توضیح داده است با یک نمونه که ایجاد دود در فلش می باشد
      http://asgamer.com/2009/game-graphic-design-smoke-flash
      موفق و پیروز باشید

      • سلام
        چجوری میتونم از مووی کلیپ فلش با اکشن اسکریپت ۲ خروجی عکس بگیرم یا از صفحه فلش اجرایی یه عکس بگیرم و ذخیره کنم؟؟؟؟؟؟
        پروژم تحت دسکتاپ است و وب نیست
        ممنون

        • سلام
          برای اکشن ۲ این کار می بایست توسط بیتمپ دیتا انجام شود ولی به دلیل این که اکشن ۲ بایت اری را پشتیبانی نمی کند می بایست از رابط های کمکی مثل برنامه هایی از قبیل MDM Zinc و… برای انجام این کار کمک بگیرید
          لازم به ذکر هست این کار در اکشن اسکریپت سه به راحتی قابل انجام است
          موفق و پیروز باشید

  2. با سلام خدمت استاد محترم آقای پولادرگ عزیز

    امیدوارم خسته نباشید
    رضا هستم که کامنت میگذارم
    خواستم بدین وسیله از لطفی که کردین و جواب سوالمو دادین ازتون تشکر کنم خیلی ممنونم از این همه لطفتون

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

    حال باز میخواهم که از شما استدعا کنم که مرا راهنمائی کنین مراحل اولیه کار باید به چه صورت باشد ، آیا برایتان این امکان است که مراحل اولیه را با مثالی ساده برایم توضیح دهید از مرحله باز کردن برنامه فلش که هنوز هیچ کاری در فلش انجام نشده و بعد ساختن فایل اسکریپت و نحوه نام گذاری فایل اسکریپت و محل ذخیره آن، تا، چه نامی باید به کادر بیس کلاس یا کلاس در کادر لینکیج در کتابخانه باید وارد کنم تا موفق به ساختن سیستم ذره ای گردم، نمیدانم آیا این امکان برایتان مقدور است؟؟؟

    لطفا مرا راهنمائی کنید که چه باید بکنم قبلا از راهنمائی که میکنید نهایت تشکر را دارم

    ارادتمند رضا

    • سلام دوست گرامی
      برای پارتیکل ها کلاس ها و روش های متفاوتی موجود می باشد ، موردی که می خواهید از آن استفاده کنید را بفرمایید تا در صورتی که اطلاعی از نحوه کار با آن داشتم در اختیار شما قرار دهم
      موفق و پیروز باشید

  3. با سلام خدمت استاد محترم آقای پولادرگ عزیز

    امیدوارم که خسته نباشید

    رضا هستم که کامنت میگذارم

    خواستم بدین وسیله از لطفی که کردین و منو بی جواب نذاشتین ازتون تشکر کنم ممنونم از لطفتون

    با توجه به راهنمائی که کردین خواستم به عرضتان برسانم که این شیی که میخواهم به سیستم ذره ای تبدیل کنم به این خاطر است که : میخواهم یک سیستم ذره ای بسازم که مانند توپهائی که به هوا پرتاب میشوند و در هوا منفجر میشوند یعنی مثل منور های نورانی که در جشنها کاربرد دارد بسازم اگر لطف بفرمایین و مرا راهنمائی کنین که چه طور میتوانم شیئم را به سیستم ذره ای اینگونه تبدیل کنم ممنون میشم

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

    لطفا ،مرا راهنمائی بفرمائین که چکار باید کرد تا یک پروانه اینجوری ویک نقاط نورانی بسیار جالب ویک سیستم اینجوری ساخت، قبلا از لطفی که میکنین نهایت تشکر را دارم
    ضمنا من سه تا سوال از خدمتتون کردم که اولی سوال خودم است و دومی و سومی موردهائیست که امیدوارم که حمل بر زیاده خواهی نشود آخه واقعا جالب هستند و آرزو میکنم که من هم روزی بتوانم مثل آنها را بسازم ایکاش میشد!!…

    باز هم از لطفی که میکنین نهایت تشکر و قدردانی را دارم
    ارادتمند رضا

  4. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    رضا هستم که کامنت میگذارم
    امیدوارم خسته نباشید

    غرض از مزاحمت اینکه امروز داشتم با اکشن اسکریپت به اشیا مورد نظرم حرکت میدادم که توسط راهنمائیهای شما توانستم این کار را انجام بدم بخاطر همین هم بر خود واجب دیدم که از شما تشکر کنم
    خلاصه استاد محترم خواستم بدین وسیله هم جویای احوالتون بشم و هم اینکه به خاطر همه الطافتان از شما متشکرم
    امیدوارم همیشه سالم و سلامت و شاد باشین تا افرادی مثل بنده از راهنمائیهای شما بهره مند گردند

    باز هم از همه لطفهائیکه کردین نهایت تشکر را دارم

    ارادتمند رضا

  5. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    امیدوارم خسته نباشید
    رضا هستم که کامنت میگذارم
    خواستم بدین وسیله از این همه لطفی که کردین ازتون تشکر کنم واقعا ازتون بخاطر این همه بزرگواری ممنونم
    همیشه اگر کامنت میگذاشتم برای سوال از خدمتتون بود ولی اینبار به این خاطر کامنت میگذارم که از بابت راهنمائیهاتون در سال گذشته ازتون تشکر کنم و همچنین سال نو را تبریک عرض کنم

    امیدوارم سال جدید هزاران بار شادتر و خوبتر و بهتر از سال ۸۹ براتون باشه ، امیدوارم در سال ۹۰ به هر آنچه آرزو دارین برسین و همیشه شاد و خوش باشین وسلامت، امیدوارم که سال نو براتون سالی پر از موفقیت باشه
    خلاصه غرض از نوشتن کامنت تشکر و عرض تبریک سال نو بود دیگه زیاده عرضی نیست

    سال نو مبارک ارادتمند رضا

    • سلام رضا ی عزیز
      اگر بنده خدمت کوچکی کرده ام ، تنها و تنها انجام وظیفه بوده است.
      سال نوی شما هم مبارک باشه ، سالی سرشار از خوبی و شادی و سلامی و عفو و عافیت برای شما و خانواده گرامیتان آرزومندم..
      موفق و پیروز باشید.

  6. سلام دوستم .
    یک سوال :
    من یک فلش دارم که یک چک باکس در فریم ۱ دارم و می خواهم وقتی رفتم فریم ۲۰ چک باکس چک بشه و در یک متغییر بریزه که مثلا در فریم ۲۰ توی کدش از اون مقدار استفاده بشه من نمی دونم چه متغییری به کار ببرم در اکشن اسکریپت ۳ . مرسی .

    • سلام شاهین عزیز
      این طور که بنده متوجه شدم
      شما در فریم مربوطه (۲۰) می بایست با این کد چک باکس را تک زده کنید

      yourCheckBox.selected =true;
      

      و یک متغیر را در فریم اول تعریف کتید و مقدار مثلا صفر به آن بدهید بهتر هست در لایه ای جدا باشد (البته خیلی فرقی ندارد)
      و با این کار شما در تمامی طول پروژه به آن متغییر دسترسی دارید و می توانید آن را مقدار دهی و در بخش های مختلف استفاده کنید

      موفق و پیروز باشید

      موفق و پیروز باشید.

  7. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    رضا هستم که کامنت میگذارم

    ایمیلی از طرف شما دریافت کردم که حاوی کدها و مثالهای جالبی بود و بسیار راهگشا ، خواستم از لطفی که کردین ازتون تشکر کرده باشم و نیز حال و احوالی ازتون جویا بشم امیدوارم که سلامتی و خوشی برقرار و پردوام باشه و همیشه در این سال جدید خوشحال و سلامت باشین تا افرادی مثل بنده از راهنمائیهایتان بهره مند شوند

    باز هم لطفتون نهایت تشکر را دارم
    ارادتمند رضا

  8. سلام
    من دارم روی یک تمپلیت سایت فلش کار میکنم و می خوام یک سایت به زبان فارسی درست کنم . اصل این تمپلیت انگلیسی هست من اون را به فارسی تبدیل میکنم با نرم افزار فارسی ساز و فونت رویا و قتی فایل رو save میکنم روی یک سیستم دیگه فایل swf رو باز میکنم فونت های فارسی همه به هم می ریزه و قابل خوندن نیست . چکار کنم که فونت فارسی رویا رو داشته باشم و حجم فایلم هم بالا نره ؟
    ممنون

    • سلام دوست گرامی
      شما از نرم افزارهایی مثل فارسی نویس مریم استفاده کنید برای محتوا هایی که پویا نیستند و ثابت هستند
      متن رو توی اونها تایپ کنید و کپی کرده و در فلش پیست نمایید ، حال می بایست فونت text Field را روی یکی از فونت های فارسی نویس قرار دهید در این مثال فارسی نویس مریم فونتهایس با F_ شروع می شود
      برای متونی که در پروژه شما بارگزاری می شود می بایست از روشهایی که برای فارسی نویسی مثل فارسی استایل ، موجود هست استفاده کنید
      http://www.farsistyle.com/
      استفاده کنید ، نمونه هایی که در سایت قرار داده شده است را چک کنید

      در مورد فونت دلیل به هم ریختگی این می باشد که فونت هایی که انتخاب می کنید در صورتی که فیلد متنی داینامیک هست می بایست embed باشد و در صورتی که نیست آن را روی static قرار دهید.

      موفق و پیروز باشید.

  9. سلام
    من دارم روی یه تمپلیت سایت فلش کار می کنم و ۲ تا سئوال دارم
    ۱- چطوری یه فرم contact us درست کنم تا کاربرها بتونن پیغامشون رو برای ما بفرستند . در ضمن من با زبان php , asp ,…. آشنا نیستم
    ۲ – وقتی پروژه رو publish می کنم html اش درست کار نمی کنه . یعنی توی سیستم های مختلف درست نمایش داده نمی شه بعضی جا ها ، بخشی از سایت خارج از کادر می افته
    چکار کنم ؟
    ممنون

    • سلام
      ۱- نمونه های بسیاری برای این مورد در وب موجود می باشد شما کافیست فایل php همراه آن را با ویرایشگر متنی ویرایش کنید و جای ایمیلی که در آن هست ایمیل خود را وارد کنید
      البته این فایل می بایست حتما روی سرور باشد.
      ۲ – امکان دارد مربوطه به رزولوشن های مختلف باشد احتمال دارد شما مثلا پروژه را در مانیتورهای واید کار کرده باشد و در مانیتورهای ساده کمی بیرون بزند که طبیعی می باشد
      می توانید از تکنیک های شناور سازی در فلش برای عمکرد درست تمام صفحه برای همه رزولوشن های استفاده کنید.
      و کد های جاوا اسکریپت که برای فیت کردن پروژه در مرورگر به کار می روند..
      موفق و پیروز باشید

  10. سلام
    لطفا من را راهنمایی نمایید. من یک سایت با فلش درست کردم یک مشکلی دارم و اونم اینه که در سیستم های مختلف درست نشان داده نمی شود . یعنی در بعضی جاها بعضی از قسمت های سایت خارج از صفحه قرار می گیرند .
    و لطفا راهنمایی نمایید که چطور یک فرم contact us درست کنم . درضمن من با زبان asp,php , … نیستم
    ممنون

  11. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    رضا هستم که کامنت میگذارم

    خواستم بدین وسیله از لطفی که کردین و جوابمو دادین ازتون تشکر کنم

    استاد محترم یه سوال هم در مورد اکشن اسکریپت داشتم که میخواستم با اجازتون ازتون بپرسم و اون هم اینکه در سیستم ذره ای چطور میتونم رنگ ذره هام رو عوض کنم اگه براتون امکان داشته باشه توضیح لطف بفرمایین ممنون میشم
    آخه با توجه به راهنمائیهای چنابعالی بالاخره با تلاش فراوان در به کار بردن راهنمائیتان و فهم درست راهنمائیتان ، تونستم سیستم ذره ای رو بسازم و مشکلی که در دادن نام در کادر بیس کلاس داشتم رو رفع کنم و ذره دلخواهم رو از توی کتابخانه به کلاسم وصل کنم و سیستم ذره ای رو بسازم و به این خاطر یه مدتی کم سعادت شده بودم حالا امروز خواستم هم از بابت جوابتون تشکر کرده و جویای احوالتون بشم و هم اینکه سوالم رو از خدمتتون بپرسم

    امیدوارم همیشه سالم و سلامت باشین ، منتظر جوابتون هستم
    ارادتمند رضا

  12. سلام
    من یه مشکلی که دارم اینه که در پروژه ام با اکشن ۲ دکمه SAVE نیاز دارم که که قسمت از فایل اجرا شده رو به صورت عکس ذخیره کنه
    باید چکار کنم
    ممنون

  13. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    رضا هستم که کامنت میگذارم

    امیدوارم خسته نباشید
    خواستم بدین وسیله حالی ازتون جویا بشم امیدوارم که سلامتی برقرار باشه و خوش باشین
    همچنین یه سوالی برام پیش اومده بود که میخواستم از خدمتتون بپرسم و اون هم اینکه میخواستم به یک شی چند حرکت مختلف بدم طوری که به محض اینکه حرکت اول تمام شد حرکت دوم انجام بشه و به محض پایان حرکت دوم حرکت بعدی شروع بشه در ضمن هیچکدوم از حرکات با تویین نباشه یعنی var tween خود فلش نباشه و همچنین این حرکات جزو پلاگین تویین مکس نباشه tween max .

    خلاصه اینکه بدون اینکه از پلاگینtween max استفاده کنم و یا از tween خود فلش چطور میتوان حرکات شی را کنترل کرد طوری که شی به صورت ساده و بدون تویین حرکت کنه طوری که بعد از اتمام حرکت اول حرکت دوم اتفاق بیافته و بعد از آن هم حرکت سوم الخ ….
    میخواستم به صورت ساده چند حرکت به شی ام بدم به دور از تویین خود فلش و یا تویین مکس مثلا از طرف چپ وارد بشه در وسط بایسته و مثلا حول محور y چن دور بزنه و بایسته و از طرف راست بیرون بره امیدوارم که بنده رو راهنمائی بفرمایین

    منتظر راهنمائیتان هستم
    باز هم از لطفتون نهایت تشکر را دارم
    ارادتمند رضا

    • سلام دوست عزیز
      می بایست از کلاس های دیگر مثل GTween و… استفاده کنید یا کلا فقط از enterFrame استفاده کنید البته کمی سخت تر هست ولی امکانش وجود دارد
      می توانید از کلاس تایمر Timer و Interval هم در صورتی که نمی خواهید از کلاس های آماده استفاده کنید بهره ببرید
      می توانید برای پی بردن به روشی که در هر کلاس استفاده شده کد آن را مشاهده کنید و برای پروژه خود ایده بگیرید

      موفق و پیروز باشید

  14. با سلام خدمت استاد محترم آقای پولادرگ عزیز

    امیدوارم خسته نباشید و سلامتی و خوشی برقرار و پر دوام

    رضا هستم که کامنت می گذارم

    خواستم از بابت لطفی که کردین و بنده رو راهنمائی کردین ازتون تشکر کنم
    ممنونم از این همه بزرگواری

    ضمنا میخواستم ازتون درخواست کنم که در مورد راهنمائی بالا ازتون بخوام که در صورت امکان توضیح لطف بفرمایین تا بهتر متوجه منظورتون بشم یا اگه این امکان باشه که با یه مثالی توضیح بدین که نحوه کار چطور باید نوشته بشه واقعا لطف بزرگی میکنین منظورم نمونه کدی است که اگه راهنمائیم کنین ممنون میشم

    باز هم از لطفی که میکنین نهایت تشکر را دارم
    ارادتمند رضا

  15. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    امیدوارم که خسته نباشید
    رضا هستم که کامنت میگذارم

    بدین وسیله خواستم که احوالی ازتون جویا بشم امیدوارم که خوشی و سلامتی برقرار باشه

    ضمنا در مورد سوالم میخواستم ازتون بخوام که در صورت امکان بنده رو راهنمائی کنین که چطوری باید به یک شی در خود اکشن اسکریپت فلش بدون استفاده از توین مکس ویا بدون استفاده از var tween خود فلش چجوری باید چند حرکت مختلف رو بدم مثلا شی از طرف چپ وارد بشه بایسته در وسط صفحه ، و سپس مثلا بچرخه و بعد از طرف راست خارج بشه

    ضمنا ازتون استدعا میکنم که اگر با مثال یا نمونه کدی راهنمائیم کنین واقعا ممنون میشم

    با تشکر از لطفتون
    ارادتمند رضا

    • سلام
      راهایی زیادی برای این کار هست….
      برای مثال این کد را مشاهده کنید که شی test_mc را توسط EnterFrame حرکت می دهد

      addEventListener(Event.ENTER_FRAME, action);
      
      function action(evt:Event):void{
        test_mc.x + = 5;
      }
      

      نمونه برای استفاده از Timer

      var timer:Timer = new Timer(3000, 1);
          timer.addEventListener(TimerEvent.TIMER, action);
          timer.start();
      
      function action(evt:TimerEvent):void{
        test_mc.x + = 5;
      }
      

      این هم یک نمونه کد دیگر :

      // actionscript 3.0
      // the ENTER_FRAME event can be removed and re-added via buttons 
      // in this case, that stops and starts the motion of the square 
      
      var reverse:Boolean = false;
      
      // a Boolean variable creates a "switch"; see below
      
      // below are the listeners for the two buttons
      start_btn.addEventListener(MouseEvent.CLICK, startMove);
      stop_btn.addEventListener(MouseEvent.CLICK, stopMove);
      
      // below are the functions for the two buttons
      function startMove(event:MouseEvent):void {
      	clip_mc.addEventListener(Event.ENTER_FRAME, moveClip); 
      }
      function stopMove(event:MouseEvent):void {
      	clip_mc.removeEventListener(Event.ENTER_FRAME, moveClip); 
      }
      
      
      // this listener makes the square move
      clip_mc.addEventListener(Event.ENTER_FRAME, moveClip);
      
      function moveClip(e:Event){
      	if (!reverse) { // this says: if the value of "reverse" is "false" ...
      		clip_mc.x += 10; // move the object 10 pixels to the right
      		if (clip_mc.x > 540) {
      			reverse = true;
      		}
      	} else {
      		clip_mc.x -= 10; // move the object 10 pixels to the left
      		if (clip_mc.x < 0) {
      			reverse = false;
      		}
      	}
      }
      
      

      این نمونه هم در این مورد مفید هست :
      http://www.kirupa.com/developer/flashcs3/animating_dynamic_movieclips_AS3_pg2.htm

      موفق و پیروز باشید

  16. با سلام خدمت استاد محترم آقای پولادرگ عزیز
    امیدوارم خسته نباشید

    رضا هستم که کامنت میگذارم

    استاد باید به عرضتان برسانم که خیلی بزرگوارید خیلی ، موندم چه جوری ازتون تشکر کنم انتظار نداشتم ولی باز هم این بزرگواری شما بود که شرمنده ام کرد
    از بابت این همه بزرگواری ممنونم . اینبار بیشتر از هر دفعه دیگر متشکرم ، با نوشتن کدها بنده را بیش از هر بار دیگر شرمنده کردین واقعا متشکرم

    در ضمن با اجازتون یه سوالی در مورد کدهای بالا داشتم که بدین وسیله با اجازتون میخواستم بپرسم
    خدمتتون باید عرض کنم که در مورد نمونه کد اول که لطف کرده بودین بنده این نمونه کد را کپی و به یک شی با نام اینستانس test_mc دادم حتی یک نمونه شی با نام اینستانس ball_mc دادم ولی هر چه کپی و پیست کردم وهر چه تلاش کردم متاسفانه پیغام خطای زیر را میدهد:

    Scene 1, Layer ‘Layer 2’, Frame 1, Line 6 1084: Syntax error: expecting identifier before assign.

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

    آیا چطور میتوان کدی را بنویسم که شی از طرف چپ وارد و در وسط صفحه بایستد و بعد از ایستادن شروع به چرخش کند و سپس بایستد و بعد از آن از طرف راست خارج شود یعنی چند حرکت مستقل که هر یک بعد از دیگری به ترتیب اجرا میشود

    از اینکه بنده را مورد لطف قرار میدهید نهایت تشکر را دارم

    ارادتمند رضا

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

    رضا هستم که کامنت میدم

    خواستم بدین وسیله از لطفتون تشکر کنم به خدا خیلی بزرگوارین !!!! نمیدونم چجوری از لطفتون تشکر کنم خیلی بزرگوارین!!!!! خیلی از این همه لطفی که کردین ازتون متشکرم بینهایت متشکرم

    راهنمائی که کردین بسیار بسیار مفید و راهگشا بود و تا اینجا تونستم پنجاه درصد مشکلم را حل کنم منتها یه مشکلی در کد نویسی داشتم که خواستم بدین وسیله از راهنمائیتون بهره مند شم با توجه به راهنمائیتون و مثالهای کاربردی ، بنده به یک شی با نام ball کدهای زیر را دادم که شی در اول از سمت چپ وارد و سپس ایستاده و بعد شروع به چرخش میکند ولی مشکلم اینجاست که بعد از آن را نمیدانم چکار کنم که شی از چرخش بایستد و بعد از ایستادن از طرف راست خارج بشه کدهایی که دادم اینه :

    ball.addEventListener(Event.ENTER_FRAME , moveBall);
    
    function moveBall(e:Event)
    {
    	if (ball.x >= stage.stageWidth / 2)
    	{
    		ball.rotationX +=  10;
    	}
    	else
    	{
    		ball.x +=  10;
    	}
    	
    	if(ball.rotationX ==  360)
    	{
    		ball.stop();
    		}
    
    }
    

    حال طبق نمونه و راهنمائیتون از چهار حرکت مد نظرم دو تاشو یعنی ورود از چپ و بعد چرخش را داده ام ولی نمیدونم چرخش را چگونه متوقف کنم و بعد از توقف چگونه حرکت بعدی که خروج از طرف راست است را بدم

    حال ازتون استدعا میکنم که بنده را راهنمائی کنین که چه بنویسم تا این مشکل را حل کنم

    باز منتظر لطفتون هستم
    باز از این همه لطف و بزرگواری نهایت تشکر را دارم

    ارادتمند رضا

  18. با سلام خدمت استاد گرانقدر آقای پولادرگ عزیز
    امیدوارم که خسته نباشید
    رضا هستم که کامنت میدم

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

    باز هم از لطفی که میکنین نهایت تشکر را دارم

    ارادتمند رضا

  19. با سلام خدمت استاد گرانقدر آقای پولادرگ عزیز
    امیدوار م خسته نباشید

    رضا هستم که کامنت میدم
    خواستم از بابت بزرگواریتون ازتون تشکر کنم از این همه لطفی که کردین نهایت تشکر را دارم خیلی لطف کردین بی نهایت متشکرم

    ضمنا میخواستم به عرضتون برسانم که استاد محترم به لینک معرفی شده رفتم ولی نمیدونم چجوری بگم اما با عر ض تاسف به زبان انگلیسی هستش منم که تازه کار ، بالاخره سر در نیاوردم چی میگه ، ماشالاه بزنم به تخته شما خودتون حرفه ای هستین و فک میکنین که ما هم مث شماییم ولی چی بگم که متاسفانه دست ما کوتاه و خرما بر نخیل

    خلاصه بیشتر از این مصدع اوقاتتون نمیشم

    باز هم از لطفی که کردین نهایت تشکر را دارم
    ارادتمند رضا

  20. سلام
    برای ساخت دکمه در اکشن اسکریپت ۳ باید چطور لینک داد به یک عکس

    همینطور دکمه ای که فایل ویندوزی رو بار کنه مثلا پنجره ی my picture؟؟

    • برای لینک دادن باید از navigateToURL استفاده کرد که قبلا در مطالب سایت توضیح داده شده است

      movieClipName.addEventListener(MouseEvent.CLICK, callLink);
      function callLink:void {
        var url:String = "http://blog.iflashlord.com";
        var request:URLRequest = new URLRequest(url);
        try {
          navigateToURL(request, '_blank');
        } catch (e:Error) {
          trace("Error occurred!");
        }
      }
      

      و برای بازکردن مواردی مثل پوشه ها باید از برنامه های کمکی مثل MDM Zinc کمک بگیرید یا خروجی شما AIR باشد تا همچنین دسترسی هایی داشته باشید به صورت معمول و برای وب این امکان وجود ندارد

      موفق و پیروز باشید

  21. سلام
    ممنون از مطالب قشنگتون ازتون میخوام تا کد نحوه فراخونی فیلم از خارج از فلش رو همراه با یک پیوست از یک فایل نمونه رو برام بگذارید
    اگر امکانش هست منابعی رو که خودتون ازش استفاده می کنید رو برام اسم ببرید چیزی رو می خوام که پابه پاش که میری خواسته هاتو براورده کنه………..
    فقط خیلی فوریه بازم مرسی…….

    • سلام
      منابع مهم : ۱- وب سایت های زیادی که در زمینه فلش و اکشن اسکریپت وجود دارد (به زبان انگلیسی) نحوه یافتن جستجو توسط گوگل…
      ۲- ویدئوهای آموزشی شرکت لیندا
      ۳ – کتاب های الکترونیکی انگلیسی و چاپ شده فارسی

      در مورد بارگزاری و پخش فیلم از خارج فلش هم طبق روش اول این متن را جستجو کنید Load External Video in flash AS3 مطالب و مثال های زیادی خواهید یافت ، انشاء الله
      به عنوان مثال :
      http://www.quip.net/blog/2007/flash/how-to-load-external-video-as3
      و
      http://www.leebrimelow.com/?p=233

      موفق و پیروز باشید

  22. سلام
    ممنون دوست عزیز
    میتونی لینکی رو مبنی بر embed کردن دکمه برای پخش ویدیو رو بگذاری
    برای کنترل جایگاه و اندازه اشیا هم یه نمونه می خواستم
    بازم از جوابتون ممنون

    • سلام
      منظورتون رو از مورد اول متوجه نشدم برای سوال دومتون
      به طور مثال نام شی ما myMc هست :

      //برای کنترل جایگاه روی محورهای مختصات
      myMc.x = 100;
      myMc.y = 110;
      
      //برای تغییر سایز طول و عرض
      myMc.width= 20;
      myMc.height = 40;
      
      //برای scale
      myMc.scale = 2; // تغییر سایز دو برابر
      

      برای دیگر متدها به راهنمای فلش و یا دیگر مطالب مربوطه مراجعه کنید
      موفق و پیروز باشید

  23. سلام
    منظورم اینه که وقتی یه دکمه رو روی صفحه کاری قرار میدم بعلاوه ظرف ویدیو که با زدن دکمه ویدیو ۱ و با زدن دکمه ای دیگر ویدیو دیگر پخش بشه حالا بدون دکمه ها و on کردن autoPlay اون ایرادی نمیگیره و لی همینکه برنامه ی دکمه رو که میدونم بدون هیچ ایرادیه توی run کردن خروجی رو این طوری بهم میگه که دکمه ی خودتو embed کن توی آموزشای مجیدآنلاین “از صفر تا صد”این مبحث اومده ولی برای دکمه دستوری نوشته کمااینکه برای عکس و فلش خارجی وصدا بیان شده
    پروژم واقعا فقط گیر همینه خواهش میکنم کمکم کنید…………………..

  24. با سلام لطفا توضیح بدید در فلش as3 چطوری میشه بدون bottm دستور fullscreen رو نوشت و همچنین چطوری میشه دگمه خروج براش نوشت
    مرسی

    • سلام ، اگر منظورتان در مورد وبسایت خودتان هست
      می بایست در بخش HTML سایتتان اجازه تمام صفحه شدن را فعال کنید توسط افزودن این بخش به تگ Object

      <param name="allowFullScreen" value="true" />
      

      و برای تمام صفحه کردن و بازگشت از تمام صفحه :

      //۱.
      function setFullScreen():void {
      if (stage.displayState== "normal") {
      stage.displayState="fullScreen";
      stage.scaleMode = StageScaleMode.NO_SCALE;
      } else {
      stage.displayState="normal";
      }
      }
      
      //2.
      button1.addEventListener(MouseEvent.CLICK, goFull);
      
      //3.
      function goFull(event:MouseEvent):void {
      setFullScreen();
      }
      

      این کد به تنهای برای مرورگر جواب نمی دهد و می بایست توسط تگی که گفتم حتما در فایل HTML اجازه تمام صفحه شدن داده شود

      موفق و پیروز باشید

  25. ببخشید میشه بگید برای خروج چکار باید کرد؟

  26. sharmande ye soal dashtam karborde set property chist?

    • سلام
      این دستور در اکشن اسکریپت ۲ برای اعمال یک مقدار به یک خصوصیت به طور مثال _alpha استفاده می شود
      البته راه دیگر به جای این استفاده mc._alpha هست که بیشتر کاربرد دارد و در اکشن سه کاملا به همین صورت هست البته این مثالی که زدم در اکشن ۳ به صورت mc.alpha هست
      موفق و پیروز باشید

  27. با سلام حضور استاد گرانقدراگر امکان دارد یک دستور اکشن اسکریپت فلش ۹ رادر مورد ساخت سوال زیر ارسال فرمایید:کدام گزینه در مورد بتائین صحیح میباشد.-ویتامین b4 – ویتامین b5 – اسید آمینه – هیچ کدام – به صورت چهار گزینه ایی و در صورت تیک صحیح امتیاز یک داده شود. گزینه صحیح ۱ میباشد. متشکرم

    • سلام
      کد مورد نیاز این موضوع یک شرط if ساده است که در صورتی که روی گزینه مورد نظر شما کلید شد مثلا متغیری که برای امتیاز در نظر گرفته شده افزایش پیدا می کند و به فیلد متنی مورد نظر شما وارد می شود
      شما در کدام بخش مشکل دارید؟
      موفق و پیروز باشید

  28. لطفا راهنمایی کنید
    من با کلاسهای اکشن مشکل دارم
    در فراخوانی کلاسها با import باگ بوجود می اید
    میدانم اشکال از برنامه فلش است
    ولی نمیدانم چطور درست میشود

  29. با سلام
    بسیار از لطف شما سپاسگذارم.
    شاید کمی منظور خودم را بد رساندم.

    اگه قطعه کد زیر را در نظر بگیرید.

    import flash.text.TextFieldAutoSize;
    
    import fl.controls.Label;
    
    
    var testString:String = "Lorem ipsum dolor sit amet.";
    
    var label1:Label = new Label();
    
    var label2:Label = new Label();
    
    var label3:Label = new Label();
    
    label1.move(10,10);
    
    label2.move(10,50);
    
    label3.move(10,90);
    
    label1.width = stage.stageWidth - 20;
    
    label2.width = stage.stageWidth - 20;
    
    label3.width = stage.stageWidth - 20;
    
    label1.text = testString;
    
    label2.text = testString;
    
    label3.text = testString;
    
    label1.autoSize = TextFieldAutoSize.LEFT;
    
    label2.autoSize = TextFieldAutoSize.CENTER;
    
    label3.autoSize = TextFieldAutoSize.RIGHT;
    
    addChild(label1
    );
    addChild(label2);
    
    addChild(label3);
    

    تا یک لیبل به کتابخانه اضافه نکنیم کد بالا جواب نمیدهد.
    میخواهم بدون اضافه کردن لیبل به کتابخانه کد بالا جواب بدهد و در استفاده از addchild لیبل به صحنه اضافه شود.
    در مورد پکیجها وضع بدتر است.
    و حتی اگر لیبل به کتابخانه اضافه شود باز هم هیچ گونه اتصالی بین اکشن اسکریپت و لیبلها بوجود نمی اید.
    به طوری که کوچکترین تغییراتی را در وضعیت لیبل نمیتوانیم انجام بدهیم.
    امیدوارم منظور خود را به درستی رسانده باشم.
    در ضمن برروی دو سیستم مختلف هم این کار شده است ولی نتیجه یکسان است.

    کد خطا هم ۱۱۷۲ میباشد
    با تشکر از شما دوست عزیز

    • شما می باسیت به کتابخانه لیبل اضافه کنید در غیر این صورت این فراخوانی بی معنا هست
      می بایست ابتدا برای یک شی در کتابخانه Linkage ایجاد کنید تا بتوانید از آنها استفاده کنید
      البته یک راه دیگر هم هست که بیشتر در FlashBuilder کاربرد دارد و آن هم استفاده از تگ Embed هست به صورت زیر

      [Embed(source="../media/graphics/bgWelcome.jpg")]
      public static const BgWelcome:Class;
      

      موفق و پیروز باشید

  30. با سلام
    من یک فایل swf را () به fla تبدیل کردم و با Adobe Flash Professional CS5.5 اون رو ویرایش کردم ولی در هنگام اجرا این خطاها رو تولید می کنه. (Symbol=sprite 95 (mcIwaArbeidsIntegratieLogo), layer=Layer 1, frame=1, Line 1 The class or interface ‘mcIwaArbeidsIntegratieLogo’ could not be loaded.) البته با as2.
    و هنگامی که با as3 اکسپورت می کنم این خطا رو میده و می افته تو loop.
    (Symbol ‘sprite 538’, Layer ‘Action Layer’, Frame 1, Line 1 1131: Classes must not be nested.
    )

    متن کد اسپرایت ۵۳۸ هم در زیر می گذارم لطفا راهنمایی کنید چه کنم؟

    class objScrollBar
    {
        var mcBtnDrag, mcBar, mcTxtContent, mcBtnDown, mcBtnUp;
        _global.objScrollBar = new ScrollBar();
        _global.objScrollBar.init(this.mcTxtContent, 63, 262, 2, this.mcBar, this.mcBtnDrag);
        _global.objScrollBar.registerButtons(this.mcBtnUp, this.mcBtnDown, this.mcBtnDrag);
    } // end if
    _global.objCalderMenu.nextContent();
    this.mcBtnDrag.gotoAndPlay(1);
    this.mcBtnDown.gotoAndPlay(1);
    this.mcBtnUp.gotoAndPlay(1);
    this.mcTxtContent._y = 63;
    this.mcBtnDrag._visible = this.mcBtnDown._visible = this.mcBtnUp._visible = this.mcTxtContent._height &gt; 198;
    
    • سلام
      شما نمی بایست کدهایی که با اکشن اسکریپت ۲ نوشته شده اند با اکشن اسکریپت ۳ خروجی بگیرید ، با این کار هیچ وقت خطا رفع نخواهد شد ، کدنویسی این دو ورژن اکشن اسکریپت ساختار متفاوتی دارند
      می بایست با همان اکشن ۲ خروجی بگیرید ، مشکلی در لود شدن mcIwaArbeidsIntegratieLogo وجود دارد آن را برسی نمایید
      موفق و پیروز باشید

    • در کد فوق می بایست
      خطوط اول و دوم و خط هفتم را حذف نمایید مشکل حل می شود
      موفق و پیروز باشید

  31. سلام:
    من چه جوری میتونم در اکشن ۳ یک متغییر سراسری یا عمومی تعریف کنم؟
    روش اکشن ۲ تو اکشن۳ کاربردی نیست.
    ممنون

    • برای این کار می بایست از متغیرهای Static استفاده کنید ، برای این مورد می توانید جستجو کنید و نمونه ها را مشاهده کنید.
      در ضمن می توانید مقدار خود را مثلا به عنواه خصوصیت به یک شی بدهید که همیشه در دسترس هست و از آن دریافت کنید
      البته مورد اول اصولی تر هست که مقداری نیاز به مطالعه شی گرایی و کار با static ها در اکشن اسکریپت ۳ دارد.
      موفق و پیروز باشید

  32. سلام ببخشید من چجوری می تونم یه فایل exe رو به برنامم لینک کنم؟؟؟!!!

  33. چگونه در برنامه فلش یک حدیث نویس بسازیم که تعداد زیادی حدیث را ساپورت کرده و در هر بار اجرای برنامه حدیث جدیدی نمایش داده شود و سپس به احادیث بعدی بپردازد.
    ممنون میشم کمکم کنید

    • سلام
      بعد از وارد کردن احادیث حال از فایل خارجی و یا … آنها را به صورت یک آرایه تبدیل کنید
      حال می توانید با ایجاد یک عدد رندوم بر اساس تعداد احادیث موجود به اندیسی از آرایه اشاره کرده و حدیث مورد نظر را نمایش دهید

      Math.random() * HadisNumbers;

      موفق و پیروز باشید

  34. سلام و وقتتون بخیر
    من یه پروژه حجیم و بزرگ با اکشن اسکریپت ۳ دارم که امکان خروجی گرفتن ازش برام فراهم نیست و خطای کمبود حافظه رو در زمان کامپایل میده . jvm.ini و مقدار حافظه داخل اون رو هم تغییر دادم اما بازم نتیجه ای حاصل نشد . راهی به ذهنتون می رسه؟
    راجع به پروژه هم مجبور بودم از یه سری صدای استریم استفاده کنم و کد نویسی و کیفریم هم خیلی زیاد داره . بخاطر همین حجمش خیلی بالاست . پروژه با cs5.5 کار شده بود . با cs6 هم امتحان کردم زمان کامپایل همچنان مشکل برقراره . متاسفانه فلش توی پروژه های بزرگ و یک پارچه مشکلات زیادی داره .

    متشکر

  35. سلام . من می خوام که از یک مووی کلیپ که پروژه ی فلش دارم خروجی تصویر و صدا بگیرم . فرض کنید یک بازی فوتبال درست کردم و می خوام که بازیکن صحنه ی گلش رو برای خودش توی یک فایل جداگانه flv یا حر فرمت دیگه ذخیره کنه .

    توی سرچ هایی که انجام دادم به روش زیر رسیدم ولی مشکل اینه که صدارو ذخیره نمی کنه و دنبال یک روش بهتر هستم.

    http://www.lecrabe.net/wordpress/?p=196

    • سلام
      راه اول نوشتن سیستمی است که با یک سری داده مختصاتی و حرکتی همان حرکت را با کاراکترها باز سازی کند و در واقع یک نمایش دهنده می بایست ایجاد کنید ، در این حالت مثلا حجم فایل هر گل ۲۰ تا ۳۰ کیلوبایت می شود ولی می بایست با فایل نمایش دهنده شما که فایل دوم را دریافت می کند نمایش انجام شود

      برای این روش می بایست کلاس flv توسعه داده شود و متدهای صوت هم به آن افزوده شود ، البته کار ساده ای نیست ولی امکان پذیر هست.

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

      موفق و پیروز باشید

      • ممنونم از راهنماییتون . اگه باز یه موقعی یه راه حل درست و حسابی مثل یک انجین به چشمتون خورد منو بی خبر نذارید .

  36. lمحمد ابراهیم سپهر

    سلام
    فلش خودش می تونه تو شبکه های ad hoc با یک فلش دیگه ارتباط برقرار کنه؟
    چیزی شبیه به localConnection ولی فلش ها هر کدام در یک سیستم قرار دارند.
    نهایتا برای Android-IOS device ها میخوام استفاده کنم.
    ممنون از کمکتون

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

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

    • سلام
      انشاالله در آینده در مورد بازی های پلتفرم هم آموزش و مقلاتی قرار می دهم
      کار خیلی سختی نیست و ابزارها و کلاس هایی هم برای تسریع این کار وجود دارد
      موفق و پیروز باشید

  38. باسلام وخسته نباشید
    یک سوال داشتم واون اینکه من با اکشن اسکریپت ۳ یک سری فلشهای آموزشی ساختم وپابلیش کردم این فلشها در کامپیوتر خودم نمایش داده میشه اما در کامپیوترهای دیگه با وجود این که فلش پلیر ۱۰ را نیز وحتی flashcs5رانصب کرده ام امه نمایش نمی دهند اگه زودتر مرا راهنمایی کنید از شما ممنون می شم

    • سلام احتمالا این فلش ها به فایل دیگری وابسته هستند که به صورت مطلق در سیستم شما آدرس دهی شده اند
      اگر نمونه را برای بنده ارسال کنید ، می توانم مساله را دقیق تر چک کنم
      موفق و پیروز باشید

  39. باسلام وتشکر از راهنماییتون می خواستم بدونم این نمونه فلش را باید چگونه برای شما ارسال کنم

  40. سلام
    من تازه با سایت شما آشنا شدم خوشحالم اطلاعات خوبی گذاشید
    من یه پروژه ساختم که در آن کلیپ f4v استفاده کردم و از flvPlayer آن (flashcs5)
    استفاده نمودم وقتی از فرمان فول اسکرین fscomand استفاده میکنم برنامه تا جایی که flvplayer رو روی timeline قرار دادم خوب اجرا می شود بعد کل صفحه سیاه میشه و هنگ میکنه لطفا راهنماییم کنید

  41. سلام می خواستم ببینم من ۵ inputbox دارم و می خواهم برای آن serch tree(درختی) قرار بدهم لطفا کد بدهید با تشکر

  42. با سلام خدمت اساتید
    من دنبال کد as3 برای ساخت seek bar برای فایل صوتی هستم
    خیلی خیلی از سایتتون استفاده کردم وممنونم

    • سلام ، یک نمونه کد را برای شما قرار دادم که راهنمای کاملی برای این کار هست

      package 
      {
          import flash.display.Sprite;
          import flash.events.Event;
          import flash.events.MouseEvent;
          import flash.geom.Rectangle;
          import flash.media.Sound;
          import flash.media.SoundChannel;
          import flash.net.URLRequest;
      
          public class Main extends Sprite 
          {
              private var _trackBar:Sprite;
              private var _sound:Sound;
              private var _soundChannel:SoundChannel;
      
              public function Main():void 
              {
                  if (stage) init();
                  else addEventListener(Event.ADDED_TO_STAGE, init);
              }
      
              private function init(e:Event = null):void 
              {
                  removeEventListener(Event.ADDED_TO_STAGE, init);
      
                  _trackBar = new Sprite();
                  _trackBar.graphics.beginFill(0);
                  _trackBar.graphics.drawRect(-10, 0, 20, 40);
                  _trackBar.graphics.endFill();
                  addChild(_trackBar);
      
                  graphics.lineStyle(2);
                  graphics.moveTo(_trackBar.x - 10, _trackBar.y);
                  graphics.lineTo(_trackBar.x - 10, _trackBar.y +_trackBar.height);
                  graphics.moveTo(_trackBar.x + 200, _trackBar.y);
                  graphics.lineTo(_trackBar.x + 200, _trackBar.y + _trackBar.height);
      
                  _sound = new Sound();
                  _sound.addEventListener(Event.COMPLETE, onLoaded);
                  _sound.load(new URLRequest("[mp3 url goes here].mp3"));
              }
      
              private function onLoaded(e:Event):void 
              {
                  _soundChannel = _sound.play();
                  stage.addEventListener(Event.ENTER_FRAME, onTick);
                  _trackBar.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
                  _trackBar.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
              }
      
              private function onTick(e:Event):void 
              {
                  if (!_soundChannel)
                  {
                      return;
                  }
                  _trackBar.x = 200 * (_soundChannel.position / _sound.length);
      
              }
      
              private function onMouseUp(e:MouseEvent):void 
              {
                  _trackBar.stopDrag();
                  _soundChannel = _sound.play(_sound.length * (_trackBar.x  / 200));
      
              }
      
              private function onMouseDown(e:MouseEvent):void 
              {
                  _soundChannel.stop();
                  _soundChannel = null;
                  _trackBar.startDrag(false, new Rectangle(0, 0, 200, 0));
              }
      
          }
      
      }
      

      موفق و پیروز باشید

  43. واقعا متشکرم ازتون خیلی با ارزش ومفید بود. نهایت استفاده رو بردم.
    أقای بهروز به یه مشکلی برخوردم.
    خیلی جستجو کردم ولی به نتیجه نرسیدم.
    من برای گوشی اندروید برنامه میسازم.
    من میتونم برای یک فایل صوتی اکسترنال یا امپورت شده یه پلیر بسازم وهمچنین برای یه فیلم اکسترنال میتونم پلیر بسازم. سوالم دو بخشه:
    ۱- من برای اندروید برنامه می نویسم. چطور میشه یه فیلم رو امپورت کنم (نمیخوام اکسترنال باشه ولود بشه میخوام امبد باشه) و براش پلیر بسازم. میتونم flvرو به صوت مووی کلیب امپورت کنم واون رو فراخوانی کنم اما چطور میشه براش پلیر ساخت؟
    ۲- طبق دونسته هام نمیشه برای برنامه ی اندروید از فیلم وصوت اکسترنال استفاده کرد چون امتحان کردم تو گوشی اجرا نشد. ایا میشه برای برنامه اندروید از فیلم وصوت اکسترنال استفاده کرد که تو گوشی لود شن؟ راهش چیه؟
    اگه با کد توضیح بدین ممنون میشم.

    • سلام

      برای این کار باید ویدئو را در قالب یک مووی کلیپ وارد کنید حال دیگر دستورات پیمایشی ویدئو نیازی نیست می بایست با دستورات پیمایش فریم یک پلیر ایجاد کنید
      دستور stop برای pauas کردن و play برای پخش کردن همان طور که با یک مووی کلیپ کار می کنید… به همین سادگی..

      در مورد بارگزاری اکسترنال هم باید امکان پذیر باشد ولی بنده به صورت عملی روی دستگاه ها تست نکرده ام…

      موفق و پیروز باشید

  44. واقعا؟ چطور یک مووی کلیپ رو play یا PAUSE کنیم. اصول کار رو فهمیدم اگه زحمت نمیشه فقط یه یه play یا pause رو بهم بگو بقیه شو متوجه میشم. ظاهرا با دستورات پیمایش فریم یک پلیر آشنا نیستم.
    راستی برای این Seek bar این مووی کلیپ میشه مثل همون روش فایل صوتی امپورت شده عمل کرد؟
    واقعا ممنونم ازت. کاش راه مناسبی برای جبران لطفت بود.

  45. سلام استاد بهروز
    من یه فیلم رو به قالب مووی کلیپ امپورت کردم وبراش یه پلیر ساختم. play و pause ش کار میکنه ولی sop و seek bar کار نمیکنه. به نظر میاد کدها درستن ولی یه جاهاش ایراد داره. ممنون میشم اگه تشخیص بدی وبهم بگی.

  46. سلام خدمت دوست عزیزم
    من یک سایت دارم که تلفیقی از xml و اکشن اسکریپت هست
    ولی مشکلی دارم و اون این که به هیچ وجهی فونت فارسی رو نمیتونم بشناسونم

    تو سندای xml هم رو هم روی utf 8 نوشتم و فونتهای فارسی هم در فولدر مربوط به فونتها هم گذاشتم ولی در صورت انشاء جملات فارسی هیچ چیزی رو نمایش نمیده !!!

    لطفا کمک کنید
    با تشکر فراوان

    • سلام اگر از اکشن اسکریپت ۳ استفاده می کنید می بایست فیلدهای متنی را TLf استفاده کنید و اگر از ورژنهای قبلی استفاده می کنید از کلاس های فارسی ساز مثل FarsiStyle استفاده کنید
      موفق و پیروز باشید

      • با سلام خدمت شما و تشکر از راهنماییتون

        کلا مشکلی که وجود داره اینه که من به فلش مسلط نیستم هر چی کلنجار رفتم نتونستم درستش کنم
        ن
        دیگه حسابی کلافم کرده
        میخواستم ببینم در صورت امکان کار رو براتون ارسال کنم

        تا ببینید چشه ؟؟؟

        با تشکر فراوان

    • سلام
      مورد را برسی کردم
      این مورد توسط اکشن اسکریپت ۲ هست
      شما می بایست از کامپوننت پارسی فلش استفاده کنید یا فارسی استایل (Farsi Style)…
      یا فارسی نویس و انتخاب فونت آن در فلش…

      موفق و پیروز باشید

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

    import flash.display.MovieClip;
    import flash.media.SoundChannel;
    import flash.events.MouseEvent;
    import flash.media.SoundTransform;
    import flash.geom.Rectangle
    var mySound1:Class = getDefinitionByName("mc1") as Class;
    var mySound:MovieClip = new mySound1();
    addChild(DisplayObject(mySound));
    
    
    var mySound:MySound = new MySound();
    var myChannel:SoundChannel = new SoundChannel();
    var myTransform:SoundTransform = new SoundTransform();
    var lastPosition:Number = 0;
    var isPlay:Boolean = true;
    var width_bar:Number = seek_bar.bar.width;
    var re:Rectangle = new Rectangle(0,0,width_bar,0);
    mySound.play();
    play_btn.visible = false;
    myTransform.volume = 0.5;
    myChannel.soundTransform = myTransform;
    mySound.x = 200;
    mySound.y = 100;
    	
    pause_btn.addEventListener(MouseEvent.CLICK , onClickPause);
    function onClickPause(e:MouseEvent)
    {
    	play_btn.visible = true;
    	pause_btn.visible = false;
        lastPosition = myChannel.position;
        mySound.stop();
        isPlay = false;
    }
      
    play_btn.addEventListener(MouseEvent.CLICK , onClickPlay);
    function onClickPlay(e:MouseEvent)
    {
    	play_btn.visible = false;
    	pause_btn.visible = true;
            if (! isPlay)
            {
                    mySound.play();
                    mySound.soundTransform = myTransform;
                    isPlay = true;
            }
    }
      
    stop_btn.addEventListener(MouseEvent.CLICK, onClickStop);
      
    function onClickStop(e:MouseEvent):void
    {
    		play_btn.visible = true;
    		pause_btn.visible = false;
            mySound.stop();
            lastPosition = 0;
            isPlay = false;
    }
    
    stage.addEventListener(Event.ENTER_FRAME, update);
    seek_bar.entekhab.addEventListener(MouseEvent.MOUSE_DOWN, start_drag);
    
    
    function update(e:Event)
    {
    	seek_bar.bar.width =  mySound.position / mySound.length * width_bar;
    	seek_bar.entekhab.x = seek_bar.bar.width;
    	seek_bar.current_time.text = convertToHHMMSS(Math.round(mySound.position / 1000));
    	seek_bar.totall_time.text = convertToHHMMSS(Math.round(mySound.length / 1000));
    }
    
    function start_drag(e:MouseEvent)
    {
    	mySound.stop();
    	seek_bar.entekhab.startDrag(false, re);
    	stage.removeEventListener(Event.ENTER_FRAME, update);
    	stage.addEventListener(MouseEvent.MOUSE_UP, stop_drag);
    	
    }
    function stop_drag(e:MouseEvent)
    {
    	mySound.play();
    	seek_bar.entekhab.stopDrag();
    	stage.addEventListener(Event.ENTER_FRAME, update);
    	stage.removeEventListener(MouseEvent.MOUSE_UP, stop_drag);
    	play_btn.visible = false;
    	pause_btn.visible = true;
    }
    
    function convertToHHMMSS($seconds:Number)
    {
    	var s:Number = $seconds % 60;
    	var m:Number = Math.floor(($seconds % 3600 ) / 60);
    	var h:Number = Math.floor($seconds / (60 * 60));
    
    	var hourStr:String = (h == 0) ? "" : doubleDigitFormat(h) + ":";
    	var minuteStr:String = doubleDigitFormat(m) + ":";
    	var secondsStr:String = doubleDigitFormat(s);
    
    	return (hourStr + minuteStr + secondsStr);
    }
    
    function doubleDigitFormat($num:uint)
    {
    	if ($num &lt; 10)
    	{
    		return (&quot;0&quot; + $num);
    	}
    	return ($num);
    }
    
  48. سلام من شروع کردم به یاد گرفتن فلشCS6
    به فایل های آموزشی ترجیحاً تصویری برای یادگیری ActionScript3 نیاز دارم.
    ممنون میشم اگه مجموعه آموزشی به من معرفی کنید.
    با تشکر

  49. سلام و خسته نباشید.عبادات قبول باشه.میخواستم لطف کنید چگونگی لود صدا و ویدئو را در as2 بیان کنید.من پروژه ای دارم که روی کادر مورد نظرم دکمه ویدئو و صدا دارم که با زدن انها باید ویدئو و صدا بخش بشه ولی چون حجم فایلهام زیاده باید به صورت خارجی استفاده کنم.میخواستم لطف کنید طریقه لود کردن یک فایل swf را در پروژم بفرمائید.

  50. سلام !! من یک ماهه که با یه پروژه درگیرم !! و عمده مشکل من روش استفاده از کامپوننت های List و غیرست !! مشکل اصلی اینه که من میخوام یه کامپوننت List در اکشن اسکریپت ۳ استفاده کنم و با انتخاب هر کدوم از اعضاء لیست به فریم خواصی هدایت بشه !! متاسفانه اطلاعات خیلی کمی دارم !!

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه