اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲ ۱۵۲
سلام این بار یک مقاله کامل که از نوشته دوستان در انجمن جمع آوری شده رو می زارم این ماله چندیدن روزه شما به صورت یک جا بخونید ، مربوط به اکشن اسکریپت ۳ می باشد
خوندن و آزمایش و تمرین این مقاله رو برای اونایی که هنوز جرات نکردن وارد دنیای جدید برنامه نویسی قدرتمند فلش بشن بسیار بسیار توصیه میکنم اگه این مقاله رو بخونید حتما دیگه ترسی از سختی یا جدیدی این زبان نخواهید داشت
خوب برای این مقاله می بایست از سجاد عزیز هم تشکر کنم :d
اول از همه چیز اینه که AS3 از کد پایه دوباره نوشته شده و قاعدتا با AS2 تفاوت خواهد داشت . این باز سازی کد ها باعث افزایش چشمگیر سرعت اجرای دستورات شده و البته همین مزیت امکان ترکیبAS3 با ورژن های قبلی این زبان را در یک فایل سلب کرده است . قبل از شرع AS3 توجه داشته باشید که هر تغییری نیاز به صرف زمان داره همچنین از جدید بودن قالب این زبان نترسید چون تجربه نشون داده یادگیری اون برای افراد مبتدی از نسخه های قبلی آسون تر بوده.
بد نیست برای اینکه علت بوجود اومدن اون رو بفهمیم یه نگاه به تفاوت های این دوتا و قابلیت های جدید AS3 بندازیم :
- گزارش دقیقتر خطا ها
- ارتقای دستور زبان
- معماری جدید سیستم نمایش(display)
- معماری جدید مدیریت اتفاقات (events)
- ارتفای امکانات ارتباط با XML
- قابلیت جدید کار با text ها
- امکانات جدید مدیریت صدا ها
- قابلیت جدید دسترسی به داده ها : می تونید به داده ها در حین دانلود دسترسی داشته باشید!
- ارتقای برنامه نویس شی گرا
- …
کاربران 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 فراهم اورده باشم بقیش دیکه به تلاش و پشتکار خودتونه
انشاء الله موفق و پیروز و سربلند باشید ، بهروز
پ.ن : پاسخ به یک سوالاتی که از طرف کاربران پرسیده شده است به دلیل کاربردی بود :
۱-علی رضا
سوال :
اگر میشه در مورد متدهای 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;
















با سلام خدمت استاد محترم آقای پولاد رگ عزیز
امیدوارم خسته نباشید
از اینکه لطف فرموده و جواب سوالم رو دادین واقعا متشکرم
در مورد راهنمائی که کردین این سوال برام پیش اومده که استاد محترم در مورد یک شی با نام mc در کتابخانه را اگر بخواهم به یک سیستم ذره ای تبدیل کنم چگونه باید این کار را انجام دهم آیا این امکان وجود ندارد که بیشتر توضیح لطف بفرمایین طوری که این مراحل گام به گام چگونه باید باشد ؟ خواهشا فرض را برا این بگیرید که من تازه کارم و مثل شما کار بلد نیستیم که؟ و ثانیا از اول یک شی را ایجادنموده و نحوه تبدیل آن به سیستم ذره ای را به صورت مرحله به مرحله در صورت امکان لطف بفرمایین اگر این لطف را بفرمایین واقعا ممنون میشم
بیشتر سوالم در مورد این است که این نام را در بیس کلاس چگونه وارد کنم در صورت امکان اگر با مثالی توضیح بفرمایین فک کنم قابل مفهوم تر باشه یعنی کل سوالم در مورد اول کار است که برای یک شی در کتابخانه ، برای بیس کلاسش چه نامی باید وارد کنم اگر با مثالی لطف بفرمایین ممنون میشم
از اینکه لطف کرده و سوالم رو بی جواب نمیگذارید نهایت تشکر و قدر دانی را دارم
ارادتمند رضا
سلام دوست عزیز
برای این مورد فکر می کنم این آموزش تقریبا کامل این موضوع را توضیح داده است با یک نمونه که ایجاد دود در فلش می باشد
http://asgamer.com/2009/game-graphic-design-smoke-flash
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید
رضا هستم که کامنت میگذارم
خواستم بدین وسیله از لطفی که کردین و جواب سوالمو دادین ازتون تشکر کنم خیلی ممنونم از این همه لطفتون
همچنین نیز استاد گرانقدر خواستم به عرضتان برسانم با توجه به سایتی که معرفی کرده بودین با مراجعه به آن سایت با نمونه بسیار بسیار جالبی برخوردم که برایم تازگی داشت و خیلی جالب بود دستتون درد نکنه خیلی ازتون ممنونم ولی استاد عزیز باید به عرضتان برسانم که متاسفانه و صد افسوس مطالب به زبان انگلیسی بود و آنگونه که باید ، مطلب موجود در سایت را به خوبی درک نکرده و علارغم اینکه خیلی تلاش کردم تا آن را باتوجه به توضیحاتش ، تا حد فهم اینجانب مطلب را درک کنم و سعی در ساختن این سیستم کنم ، ولی با نهایت تاسف موفق نشدم و از این بابت بسیار تاسف میخورم که نتوانستم به درستی به مطلب و مفهوم آن پی ببرم ، و انرا به طور صحیح درست کنم واقعا جای تاسف دارد.
حال باز میخواهم که از شما استدعا کنم که مرا راهنمائی کنین مراحل اولیه کار باید به چه صورت باشد ، آیا برایتان این امکان است که مراحل اولیه را با مثالی ساده برایم توضیح دهید از مرحله باز کردن برنامه فلش که هنوز هیچ کاری در فلش انجام نشده و بعد ساختن فایل اسکریپت و نحوه نام گذاری فایل اسکریپت و محل ذخیره آن، تا، چه نامی باید به کادر بیس کلاس یا کلاس در کادر لینکیج در کتابخانه باید وارد کنم تا موفق به ساختن سیستم ذره ای گردم، نمیدانم آیا این امکان برایتان مقدور است؟؟؟
لطفا مرا راهنمائی کنید که چه باید بکنم قبلا از راهنمائی که میکنید نهایت تشکر را دارم
ارادتمند رضا
سلام دوست گرامی
برای پارتیکل ها کلاس ها و روش های متفاوتی موجود می باشد ، موردی که می خواهید از آن استفاده کنید را بفرمایید تا در صورتی که اطلاعی از نحوه کار با آن داشتم در اختیار شما قرار دهم
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم که خسته نباشید
رضا هستم که کامنت میگذارم
خواستم بدین وسیله از لطفی که کردین و منو بی جواب نذاشتین ازتون تشکر کنم ممنونم از لطفتون
با توجه به راهنمائی که کردین خواستم به عرضتان برسانم که این شیی که میخواهم به سیستم ذره ای تبدیل کنم به این خاطر است که : میخواهم یک سیستم ذره ای بسازم که مانند توپهائی که به هوا پرتاب میشوند و در هوا منفجر میشوند یعنی مثل منور های نورانی که در جشنها کاربرد دارد بسازم اگر لطف بفرمایین و مرا راهنمائی کنین که چه طور میتوانم شیئم را به سیستم ذره ای اینگونه تبدیل کنم ممنون میشم
دو سوال دیگه هم داشتم که با اجازتون میخواستم از خدمتتون بپرسم و اون این که استاد محترم این نقاط نورانی بالای سایتتان که در پشت شخص کارتونی دیده میشود بسیار بسیار جالب است آیا آنها هم سیستم ذره ای است ؟ و آیا چگونه میتوان آن را ساخت؟
دوم اینکه این پروانه موجود روی کلمه در بالای سایتتان نیز خیلی خیلی خیلی جالب است آیا آن پروانه ساخته شده در فلش است ؟و یا نه ، و چگونه میتوان یک پروانه اینجوری ساخت مراحل کار برای ساختش چگونه است این دو مورد در بالای سایتتان طوری است که آدم رو خواه ناخواه جذب میکنه باید از بابت این دو مورد زیباو استادانه بهتون تبریک عرض کنم دستتون درد نکنه واقعا عالیه
لطفا ،مرا راهنمائی بفرمائین که چکار باید کرد تا یک پروانه اینجوری ویک نقاط نورانی بسیار جالب ویک سیستم اینجوری ساخت، قبلا از لطفی که میکنین نهایت تشکر را دارم
ضمنا من سه تا سوال از خدمتتون کردم که اولی سوال خودم است و دومی و سومی موردهائیست که امیدوارم که حمل بر زیاده خواهی نشود آخه واقعا جالب هستند و آرزو میکنم که من هم روزی بتوانم مثل آنها را بسازم ایکاش میشد!!…
باز هم از لطفی که میکنین نهایت تشکر و قدردانی را دارم
ارادتمند رضا
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم
امیدوارم خسته نباشید
غرض از مزاحمت اینکه امروز داشتم با اکشن اسکریپت به اشیا مورد نظرم حرکت میدادم که توسط راهنمائیهای شما توانستم این کار را انجام بدم بخاطر همین هم بر خود واجب دیدم که از شما تشکر کنم
خلاصه استاد محترم خواستم بدین وسیله هم جویای احوالتون بشم و هم اینکه به خاطر همه الطافتان از شما متشکرم
امیدوارم همیشه سالم و سلامت و شاد باشین تا افرادی مثل بنده از راهنمائیهای شما بهره مند گردند
باز هم از همه لطفهائیکه کردین نهایت تشکر را دارم
ارادتمند رضا
سلام دوست عزیز
انجام وظیفه است
موفق و پیروز باشید.
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید
رضا هستم که کامنت میگذارم
خواستم بدین وسیله از این همه لطفی که کردین ازتون تشکر کنم واقعا ازتون بخاطر این همه بزرگواری ممنونم
همیشه اگر کامنت میگذاشتم برای سوال از خدمتتون بود ولی اینبار به این خاطر کامنت میگذارم که از بابت راهنمائیهاتون در سال گذشته ازتون تشکر کنم و همچنین سال نو را تبریک عرض کنم
امیدوارم سال جدید هزاران بار شادتر و خوبتر و بهتر از سال ۸۹ براتون باشه ، امیدوارم در سال ۹۰ به هر آنچه آرزو دارین برسین و همیشه شاد و خوش باشین وسلامت، امیدوارم که سال نو براتون سالی پر از موفقیت باشه
خلاصه غرض از نوشتن کامنت تشکر و عرض تبریک سال نو بود دیگه زیاده عرضی نیست
سال نو مبارک ارادتمند رضا
سلام رضا ی عزیز
اگر بنده خدمت کوچکی کرده ام ، تنها و تنها انجام وظیفه بوده است.
سال نوی شما هم مبارک باشه ، سالی سرشار از خوبی و شادی و سلامی و عفو و عافیت برای شما و خانواده گرامیتان آرزومندم..
موفق و پیروز باشید.
سلام دوستم .
یک سوال :
من یک فلش دارم که یک چک باکس در فریم ۱ دارم و می خواهم وقتی رفتم فریم ۲۰ چک باکس چک بشه و در یک متغییر بریزه که مثلا در فریم ۲۰ توی کدش از اون مقدار استفاده بشه من نمی دونم چه متغییری به کار ببرم در اکشن اسکریپت ۳ . مرسی .
سلام شاهین عزیز
این طور که بنده متوجه شدم
شما در فریم مربوطه (۲۰) می بایست با این کد چک باکس را تک زده کنید
و یک متغیر را در فریم اول تعریف کتید و مقدار مثلا صفر به آن بدهید بهتر هست در لایه ای جدا باشد (البته خیلی فرقی ندارد)
و با این کار شما در تمامی طول پروژه به آن متغییر دسترسی دارید و می توانید آن را مقدار دهی و در بخش های مختلف استفاده کنید
موفق و پیروز باشید
موفق و پیروز باشید.
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم
ایمیلی از طرف شما دریافت کردم که حاوی کدها و مثالهای جالبی بود و بسیار راهگشا ، خواستم از لطفی که کردین ازتون تشکر کرده باشم و نیز حال و احوالی ازتون جویا بشم امیدوارم که سلامتی و خوشی برقرار و پردوام باشه و همیشه در این سال جدید خوشحال و سلامت باشین تا افرادی مثل بنده از راهنمائیهایتان بهره مند شوند
باز هم لطفتون نهایت تشکر را دارم
ارادتمند رضا
سلام دوست عزیز
انجام وظیفه است
موفق و پیروز باشید
سلام
من دارم روی یک تمپلیت سایت فلش کار میکنم و می خوام یک سایت به زبان فارسی درست کنم . اصل این تمپلیت انگلیسی هست من اون را به فارسی تبدیل میکنم با نرم افزار فارسی ساز و فونت رویا و قتی فایل رو save میکنم روی یک سیستم دیگه فایل swf رو باز میکنم فونت های فارسی همه به هم می ریزه و قابل خوندن نیست . چکار کنم که فونت فارسی رویا رو داشته باشم و حجم فایلم هم بالا نره ؟
ممنون
سلام دوست گرامی
شما از نرم افزارهایی مثل فارسی نویس مریم استفاده کنید برای محتوا هایی که پویا نیستند و ثابت هستند
متن رو توی اونها تایپ کنید و کپی کرده و در فلش پیست نمایید ، حال می بایست فونت text Field را روی یکی از فونت های فارسی نویس قرار دهید در این مثال فارسی نویس مریم فونتهایس با F_ شروع می شود
برای متونی که در پروژه شما بارگزاری می شود می بایست از روشهایی که برای فارسی نویسی مثل فارسی استایل ، موجود هست استفاده کنید
http://www.farsistyle.com/
استفاده کنید ، نمونه هایی که در سایت قرار داده شده است را چک کنید
در مورد فونت دلیل به هم ریختگی این می باشد که فونت هایی که انتخاب می کنید در صورتی که فیلد متنی داینامیک هست می بایست embed باشد و در صورتی که نیست آن را روی static قرار دهید.
موفق و پیروز باشید.
سلام
من دارم روی یه تمپلیت سایت فلش کار می کنم و ۲ تا سئوال دارم
۱- چطوری یه فرم contact us درست کنم تا کاربرها بتونن پیغامشون رو برای ما بفرستند . در ضمن من با زبان php , asp ,…. آشنا نیستم
۲ – وقتی پروژه رو publish می کنم html اش درست کار نمی کنه . یعنی توی سیستم های مختلف درست نمایش داده نمی شه بعضی جا ها ، بخشی از سایت خارج از کادر می افته
چکار کنم ؟
ممنون
سلام
۱- نمونه های بسیاری برای این مورد در وب موجود می باشد شما کافیست فایل php همراه آن را با ویرایشگر متنی ویرایش کنید و جای ایمیلی که در آن هست ایمیل خود را وارد کنید
البته این فایل می بایست حتما روی سرور باشد.
۲ – امکان دارد مربوطه به رزولوشن های مختلف باشد احتمال دارد شما مثلا پروژه را در مانیتورهای واید کار کرده باشد و در مانیتورهای ساده کمی بیرون بزند که طبیعی می باشد
می توانید از تکنیک های شناور سازی در فلش برای عمکرد درست تمام صفحه برای همه رزولوشن های استفاده کنید.
و کد های جاوا اسکریپت که برای فیت کردن پروژه در مرورگر به کار می روند..
موفق و پیروز باشید
سلام
لطفا من را راهنمایی نمایید. من یک سایت با فلش درست کردم یک مشکلی دارم و اونم اینه که در سیستم های مختلف درست نشان داده نمی شود . یعنی در بعضی جاها بعضی از قسمت های سایت خارج از صفحه قرار می گیرند .
و لطفا راهنمایی نمایید که چطور یک فرم contact us درست کنم . درضمن من با زبان asp,php , … نیستم
ممنون
جواب در نظر قبلی داده شد.
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم
خواستم بدین وسیله از لطفی که کردین و جوابمو دادین ازتون تشکر کنم
استاد محترم یه سوال هم در مورد اکشن اسکریپت داشتم که میخواستم با اجازتون ازتون بپرسم و اون هم اینکه در سیستم ذره ای چطور میتونم رنگ ذره هام رو عوض کنم اگه براتون امکان داشته باشه توضیح لطف بفرمایین ممنون میشم
آخه با توجه به راهنمائیهای چنابعالی بالاخره با تلاش فراوان در به کار بردن راهنمائیتان و فهم درست راهنمائیتان ، تونستم سیستم ذره ای رو بسازم و مشکلی که در دادن نام در کادر بیس کلاس داشتم رو رفع کنم و ذره دلخواهم رو از توی کتابخانه به کلاسم وصل کنم و سیستم ذره ای رو بسازم و به این خاطر یه مدتی کم سعادت شده بودم حالا امروز خواستم هم از بابت جوابتون تشکر کرده و جویای احوالتون بشم و هم اینکه سوالم رو از خدمتتون بپرسم
امیدوارم همیشه سالم و سلامت باشین ، منتظر جوابتون هستم
ارادتمند رضا
سلام رضا ی عزیز
با تشکر از لطف شما
شما از چه روشی استفاده کرده اید ، بفرمایید تا در مورد آن توضیح بدهم
موفق و پیروز باشید
سلام
من یه مشکلی که دارم اینه که در پروژه ام با اکشن ۲ دکمه SAVE نیاز دارم که که قسمت از فایل اجرا شده رو به صورت عکس ذخیره کنه
باید چکار کنم
ممنون
سلام دوست گرامی
پیشنهاد می کنم این موارد را مشاهده کنید
http://www.actionscript.org/forums/showthread.php3?t=90159
و
http://www.sephiroth.it/tutorials/flashPHP/print_screen/
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم
امیدوارم خسته نباشید
خواستم بدین وسیله حالی ازتون جویا بشم امیدوارم که سلامتی برقرار باشه و خوش باشین
همچنین یه سوالی برام پیش اومده بود که میخواستم از خدمتتون بپرسم و اون هم اینکه میخواستم به یک شی چند حرکت مختلف بدم طوری که به محض اینکه حرکت اول تمام شد حرکت دوم انجام بشه و به محض پایان حرکت دوم حرکت بعدی شروع بشه در ضمن هیچکدوم از حرکات با تویین نباشه یعنی var tween خود فلش نباشه و همچنین این حرکات جزو پلاگین تویین مکس نباشه tween max .
خلاصه اینکه بدون اینکه از پلاگینtween max استفاده کنم و یا از tween خود فلش چطور میتوان حرکات شی را کنترل کرد طوری که شی به صورت ساده و بدون تویین حرکت کنه طوری که بعد از اتمام حرکت اول حرکت دوم اتفاق بیافته و بعد از آن هم حرکت سوم الخ ….
میخواستم به صورت ساده چند حرکت به شی ام بدم به دور از تویین خود فلش و یا تویین مکس مثلا از طرف چپ وارد بشه در وسط بایسته و مثلا حول محور y چن دور بزنه و بایسته و از طرف راست بیرون بره امیدوارم که بنده رو راهنمائی بفرمایین
منتظر راهنمائیتان هستم
باز هم از لطفتون نهایت تشکر را دارم
ارادتمند رضا
سلام دوست عزیز
می بایست از کلاس های دیگر مثل GTween و… استفاده کنید یا کلا فقط از enterFrame استفاده کنید البته کمی سخت تر هست ولی امکانش وجود دارد
می توانید از کلاس تایمر Timer و Interval هم در صورتی که نمی خواهید از کلاس های آماده استفاده کنید بهره ببرید
می توانید برای پی بردن به روشی که در هر کلاس استفاده شده کد آن را مشاهده کنید و برای پروژه خود ایده بگیرید
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید و سلامتی و خوشی برقرار و پر دوام
رضا هستم که کامنت می گذارم
خواستم از بابت لطفی که کردین و بنده رو راهنمائی کردین ازتون تشکر کنم
ممنونم از این همه بزرگواری
ضمنا میخواستم ازتون درخواست کنم که در مورد راهنمائی بالا ازتون بخوام که در صورت امکان توضیح لطف بفرمایین تا بهتر متوجه منظورتون بشم یا اگه این امکان باشه که با یه مثالی توضیح بدین که نحوه کار چطور باید نوشته بشه واقعا لطف بزرگی میکنین منظورم نمونه کدی است که اگه راهنمائیم کنین ممنون میشم
باز هم از لطفی که میکنین نهایت تشکر را دارم
ارادتمند رضا
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم که خسته نباشید
رضا هستم که کامنت میگذارم
بدین وسیله خواستم که احوالی ازتون جویا بشم امیدوارم که خوشی و سلامتی برقرار باشه
ضمنا در مورد سوالم میخواستم ازتون بخوام که در صورت امکان بنده رو راهنمائی کنین که چطوری باید به یک شی در خود اکشن اسکریپت فلش بدون استفاده از توین مکس ویا بدون استفاده از 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
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید
رضا هستم که کامنت میگذارم
استاد باید به عرضتان برسانم که خیلی بزرگوارید خیلی ، موندم چه جوری ازتون تشکر کنم انتظار نداشتم ولی باز هم این بزرگواری شما بود که شرمنده ام کرد
از بابت این همه بزرگواری ممنونم . اینبار بیشتر از هر دفعه دیگر متشکرم ، با نوشتن کدها بنده را بیش از هر بار دیگر شرمنده کردین واقعا متشکرم
در ضمن با اجازتون یه سوالی در مورد کدهای بالا داشتم که بدین وسیله با اجازتون میخواستم بپرسم
خدمتتون باید عرض کنم که در مورد نمونه کد اول که لطف کرده بودین بنده این نمونه کد را کپی و به یک شی با نام اینستانس test_mc دادم حتی یک نمونه شی با نام اینستانس ball_mc دادم ولی هر چه کپی و پیست کردم وهر چه تلاش کردم متاسفانه پیغام خطای زیر را میدهد:
Scene 1, Layer ‘Layer 2′, Frame 1, Line 6 1084: Syntax error: expecting identifier before assign.
حال نمیدانم اشکال کار کجاست بنابراین برای حل این اشکال خواستم از شما راهنمائی بخواهم تا باز مثل همیشه بنده را مورد لطف قرار بدین و اشکال کارم را رهنمون بشین
ضمنا من یک نمونه با راهنمائی و لطف شما ساخته ام و به ایمیلتون میفرستم که در آن یک تایمر مطابق راهنمائیتان به آن داده ام شی از طرف چپ وارد میشود و کد را طوری نوشته ام که وقتی شی به وسط صفحه رسید بچرخد ولی متاسفانه شی در هنگام ورود از سمت چپ میچرخد در حالیکه منظور بنده این است که شی بعد از رسیدن به وسط صفحه بایستد و بعد از ایستادن مثلا چن دور بچرخد و سپس بایستد و بعد از ایستادن از چرخش مثلا از طرف راست بیرون برود آیا راهی برای رسیدن به این منظور وجود دارد
آیا چطور میتوان کدی را بنویسم که شی از طرف چپ وارد و در وسط صفحه بایستد و بعد از ایستادن شروع به چرخش کند و سپس بایستد و بعد از آن از طرف راست خارج شود یعنی چند حرکت مستقل که هر یک بعد از دیگری به ترتیب اجرا میشود
از اینکه بنده را مورد لطف قرار میدهید نهایت تشکر را دارم
ارادتمند رضا
می بایست از شرط استفاده کنید
این نمونه ها را هم دانلود و چک کنید
http://flashjournalism.com/CS4examples/onEnterFrame/
موفق و پیروز باشید
با سلام خدمت استاد بزرگوار که همیشه بنده رو مورد لطف قرارمیدن
امیدوارم که خسته نباشید
رضا هستم که کامنت میدم
خواستم بدین وسیله از لطفتون تشکر کنم به خدا خیلی بزرگوارین !!!! نمیدونم چجوری از لطفتون تشکر کنم خیلی بزرگوارین!!!!! خیلی از این همه لطفی که کردین ازتون متشکرم بینهایت متشکرم
راهنمائی که کردین بسیار بسیار مفید و راهگشا بود و تا اینجا تونستم پنجاه درصد مشکلم را حل کنم منتها یه مشکلی در کد نویسی داشتم که خواستم بدین وسیله از راهنمائیتون بهره مند شم با توجه به راهنمائیتون و مثالهای کاربردی ، بنده به یک شی با نام 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(); } }حال طبق نمونه و راهنمائیتون از چهار حرکت مد نظرم دو تاشو یعنی ورود از چپ و بعد چرخش را داده ام ولی نمیدونم چرخش را چگونه متوقف کنم و بعد از توقف چگونه حرکت بعدی که خروج از طرف راست است را بدم
حال ازتون استدعا میکنم که بنده را راهنمائی کنین که چه بنویسم تا این مشکل را حل کنم
باز منتظر لطفتون هستم
باز از این همه لطف و بزرگواری نهایت تشکر را دارم
ارادتمند رضا
با سلام خدمت استاد گرانقدر آقای پولادرگ عزیز
امیدوارم که خسته نباشید
رضا هستم که کامنت میدم
خواستم از بابت لطفی که کردین ازتون تشکر کنم واقعا راهنمائی بسیار راهگشایی بود ازتون متشکرم بزرگواری کردین
ضمنا استاد عزیز میخواستم ازتون تقاضا کنم در صورت امکان بنده رو راهنمائی کنین که برای اینکه شی ام که در سوال قبلی برای اینکه از چرخش بایستد و بعد از ایستادن از طرف راست خارج شود کد را باید چگونه بنویسم و چکار باید بکنم
کدها را با توجه به راهنمائیتان در سوال قبلی توضیح داده ام که تا آنجا که از طرف چپ وارد و در وسط صفحه بایستد و شروع به چرخش کند نوشته ام ولی نمیدانم چطور باید بنویسم تا بعد از چن دور چرخیدن بایستد و بعد از ایستادن از طرف راست خارج شود آیا کدهایی که نوشته ام مشکل دارد که این کار انجام نمیشود یا اینکه اشکال دیگری دارد لذا استدعا میکنم که بنده رو راهنمائی بفرمایین که چکار باید بکنم تا این مشکل حل شود
باز هم از لطفی که میکنین نهایت تشکر را دارم
ارادتمند رضا
یک راهکار خوب در این آموزش توضیح داده شده است به همراه مثال که فکر می کنم برای شما راه گشا باشد.
http://active.tutsplus.com/tutorials/workflow/thinking-in-commands-part-2-of-2/
موفق و پیروز باشید
با سلام خدمت استاد گرانقدر آقای پولادرگ عزیز
امیدوار م خسته نباشید
رضا هستم که کامنت میدم
خواستم از بابت بزرگواریتون ازتون تشکر کنم از این همه لطفی که کردین نهایت تشکر را دارم خیلی لطف کردین بی نهایت متشکرم
ضمنا میخواستم به عرضتون برسانم که استاد محترم به لینک معرفی شده رفتم ولی نمیدونم چجوری بگم اما با عر ض تاسف به زبان انگلیسی هستش منم که تازه کار ، بالاخره سر در نیاوردم چی میگه ، ماشالاه بزنم به تخته شما خودتون حرفه ای هستین و فک میکنین که ما هم مث شماییم ولی چی بگم که متاسفانه دست ما کوتاه و خرما بر نخیل
خلاصه بیشتر از این مصدع اوقاتتون نمیشم
باز هم از لطفی که کردین نهایت تشکر را دارم
ارادتمند رضا
سلام
برای ساخت دکمه در اکشن اسکریپت ۳ باید چطور لینک داد به یک عکس
همینطور دکمه ای که فایل ویندوزی رو بار کنه مثلا پنجره ی 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 باشد تا همچنین دسترسی هایی داشته باشید به صورت معمول و برای وب این امکان وجود ندارد
موفق و پیروز باشید
سلام
ممنون از مطالب قشنگتون ازتون میخوام تا کد نحوه فراخونی فیلم از خارج از فلش رو همراه با یک پیوست از یک فایل نمونه رو برام بگذارید
اگر امکانش هست منابعی رو که خودتون ازش استفاده می کنید رو برام اسم ببرید چیزی رو می خوام که پابه پاش که میری خواسته هاتو براورده کنه………..
فقط خیلی فوریه بازم مرسی…….
سلام
منابع مهم : ۱- وب سایت های زیادی که در زمینه فلش و اکشن اسکریپت وجود دارد (به زبان انگلیسی) نحوه یافتن جستجو توسط گوگل…
۲- ویدئوهای آموزشی شرکت لیندا
۳ – کتاب های الکترونیکی انگلیسی و چاپ شده فارسی
در مورد بارگزاری و پخش فیلم از خارج فلش هم طبق روش اول این متن را جستجو کنید 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
موفق و پیروز باشید
سلام
ممنون دوست عزیز
میتونی لینکی رو مبنی بر embed کردن دکمه برای پخش ویدیو رو بگذاری
برای کنترل جایگاه و اندازه اشیا هم یه نمونه می خواستم
بازم از جوابتون ممنون
سلام
منظورتون رو از مورد اول متوجه نشدم برای سوال دومتون
به طور مثال نام شی ما myMc هست :
برای دیگر متدها به راهنمای فلش و یا دیگر مطالب مربوطه مراجعه کنید
موفق و پیروز باشید
سلام
منظورم اینه که وقتی یه دکمه رو روی صفحه کاری قرار میدم بعلاوه ظرف ویدیو که با زدن دکمه ویدیو ۱ و با زدن دکمه ای دیگر ویدیو دیگر پخش بشه حالا بدون دکمه ها و on کردن autoPlay اون ایرادی نمیگیره و لی همینکه برنامه ی دکمه رو که میدونم بدون هیچ ایرادیه توی run کردن خروجی رو این طوری بهم میگه که دکمه ی خودتو embed کن توی آموزشای مجیدآنلاین “از صفر تا صد”این مبحث اومده ولی برای دکمه دستوری نوشته کمااینکه برای عکس و فلش خارجی وصدا بیان شده
پروژم واقعا فقط گیر همینه خواهش میکنم کمکم کنید…………………..
سلام
خطا و یا پیغامی که برنامه می دهد را برای بنده ارسال نمایید تا چک کنم
موفق و پیروز باشید
با سلام لطفا توضیح بدید در فلش as3 چطوری میشه بدون bottm دستور fullscreen رو نوشت و همچنین چطوری میشه دگمه خروج براش نوشت
مرسی
سلام ، اگر منظورتان در مورد وبسایت خودتان هست
می بایست در بخش HTML سایتتان اجازه تمام صفحه شدن را فعال کنید توسط افزودن این بخش به تگ Object
و برای تمام صفحه کردن و بازگشت از تمام صفحه :
//۱. 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 اجازه تمام صفحه شدن داده شود
موفق و پیروز باشید
سلام
مرسی از اینکه جواب دادید من برای صفحه وب نمی خوام برای stand alone می خوام یعنی یک دکمه برای فول شدن در خود فلش exe
مرسی
سلام
در اکشن اسکریپت ۳ همین فرامین برای نمونه standalone نیز استفاده می شوند و جواب می دهد
در اکشن اسکریپت ۲ برای این کار از fscommand استفاده می شود
موفق و پیروز باشید
مرسی مشکل حل شد خیلی لطف کردید
ببخشید میشه بگید برای خروج چکار باید کرد؟
برای یادگیری بهتر این موضوع این مقاله بنده را مطالعه نمایید
تمام صفحه در اکشن اسکریپت ۳
موفق و پیروز باشید
sharmande ye soal dashtam karborde set property chist?
سلام
این دستور در اکشن اسکریپت ۲ برای اعمال یک مقدار به یک خصوصیت به طور مثال _alpha استفاده می شود
البته راه دیگر به جای این استفاده mc._alpha هست که بیشتر کاربرد دارد و در اکشن سه کاملا به همین صورت هست البته این مثالی که زدم در اکشن ۳ به صورت mc.alpha هست
موفق و پیروز باشید
با سلام حضور استاد گرانقدراگر امکان دارد یک دستور اکشن اسکریپت فلش ۹ رادر مورد ساخت سوال زیر ارسال فرمایید:کدام گزینه در مورد بتائین صحیح میباشد.-ویتامین b4 – ویتامین b5 – اسید آمینه – هیچ کدام – به صورت چهار گزینه ایی و در صورت تیک صحیح امتیاز یک داده شود. گزینه صحیح ۱ میباشد. متشکرم
سلام
کد مورد نیاز این موضوع یک شرط if ساده است که در صورتی که روی گزینه مورد نظر شما کلید شد مثلا متغیری که برای امتیاز در نظر گرفته شده افزایش پیدا می کند و به فیلد متنی مورد نظر شما وارد می شود
شما در کدام بخش مشکل دارید؟
موفق و پیروز باشید