اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲ ۱۵۲
سلام این بار یک مقاله کامل که از نوشته دوستان در انجمن جمع آوری شده رو می زارم این ماله چندیدن روزه شما به صورت یک جا بخونید ، مربوط به اکشن اسکریپت ۳ می باشد
خوندن و آزمایش و تمرین این مقاله رو برای اونایی که هنوز جرات نکردن وارد دنیای جدید برنامه نویسی قدرتمند فلش بشن بسیار بسیار توصیه میکنم اگه این مقاله رو بخونید حتما دیگه ترسی از سختی یا جدیدی این زبان نخواهید داشت
خوب برای این مقاله می بایست از سجاد عزیز هم تشکر کنم :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;

















salam
man ye moshkele asasi daram ba tarahi web sitam va khili sary ehtiaj be komak daram.
man yek flv ro be sorat external varede fla flash kardam va hame chiz ok hast ama nemidonam chera faghat to pc man dide mishe.chejori mishe yek flv ro be sorat external dar cs4 vared kard.
mer30
ممنون از نظرتون مریم عزیز
این موضوع flv ها دو جنبه داره ، یکی ورارد کردن به ساده که با درگ کردن فایل مربوطه در فلش و یا Ctrl+r انجام می شه که بعد از انتخاب فایل تصویری در گزینه اکسترنال و اینترنال برای شما داره که میتونید نوع پوسته برای پلیر هم مشخص کنید و…
و اگر این کار رو کردید و در سیستم دیگری مشکل دارد به احتمال زیاد از فلش پلیر ۱۰ در تنظیمات فلش CS4 استفاده کرده اید و سیستم دیگری که فایل رو بر روی آن تست کرده اید دارای فلش پلیر در این ورژن نبوده است
در این صورت می بایست از پانل Proprieties تنظیمات مربوط به فلش پلیر را تغییر دهید و دوباره پروژه را بسازید و یا فلش پلیر جدید رو بر روی سیستم دیگر نصب نمایید.
اصولا پخش ویدئو های جدید FLV که On2 VP6 می باشند فقط با فلش پلیر هشت و بالا تر امکان پذیر می باشد که میتونه مشکل از اینجا هم باشه (برای پخش نشدن در سیستمی دیگر)
در آخر برای اطلاعات بیشتر :
صفحه از راهنمای نرم افزار فلش با آموزش مرحله به مرحله ورود FLV به صورت External با اکشن اسکریپت
یک آموزش ساده در این ضمینه به همراه فایل سورس
فلش ویدئوها به نقل از ویکی پدیا
موفق و پیروز باشید
سلام.چه جوری یک فایل swf رو در یک فایل fla بارگذاری کنیم.
البته با فشار دادن یک دکمه
سلام خدمت علی عزیز
این کار در as2 و as3 متفاوت است
برای این کار در actionScript2
می تونید توی رویداد on (release) {} دکمه مربوطه از فرمان های زیر استفاده کنید
loadMovie();
loadMovieNum();
البته بین () می بایست آرگمان های تابع وارد شود ، مثل آدرس فایل swf که با کلیک بین دو پرانتز در فلش و فشردن کلیدهای Ctrl+Space راهنمایی مربوطه را مشاهده خواهید نمود
راهنمایی بیشتر درباره این ها می توانید با جستجو در راهنمای فلش پیدا نمایید (F1).
اگه برای as3 می خواهید هم بگید که در اون مورد هم بگم…
موفق و پیروز باشید
سلام .
ممکن است یک آموزش بزارید به همراه سورس آموزشی آن .
برای اینکه من یک فایل فلش دارم که یکسری متن و عکس داخل آن است برای اینکه حجم فایل پایین تر بیاد میخوام صدا ها رو از داخل یک فولدری در کامپیوتر فراخوانی کنم . میخواهم وقتی که فایل Swf اجرا شد همزمان اون فایل صدا را هم فراخوانی کند و صدا را اجرا نماید .
لطفا راهنمایی کنید .
هدف من از این کار اینکه فایل فلش رو روی اینترنت بزارم که اجرا بشه و صدا ها رو هرکس بصورت جداگونه دانلود کنه و داخل فولدری در کامپیوتر خود کپی کند .
با اجرای فلش در اینترنت صدا ها از داخل کامپیوتر کاربر لود بشه و فلش سریعتر اجرا بشه .
آیا این کار ممکن است . لطفا اگر کد خواستی داره برام بگذارید .
با تشکر .
ممنون از نظرتون محمد عزیز
سورس چه موضوعی رو می خواهید؟
سورس در مورد صدا در آدرس زیر موجود است
http://www.republicofcode.com/tutorials/flash/as3sound/pause-play-buttons.fla
در مورد صدا ها
برای این کار در اکشن اسکریپت ۲ از کد زیر استفاده کنید :
mySound = new Sound(); mySound.loadSound("audios/iflashlord.mp3", true); my_sound.onSoundComplete = function(){ my_sound.start(0,999); };برای اکشن اسکریپت ۳ :
var soundReq:URLRequest = new URLRequest("audios/iflashlord.mp3"); var sound:Sound = new Sound(); var soundControl:SoundChannel = new SoundChannel(); sound.load(soundReq); sound.addEventListener(Event.COMPLETE, onComplete); function onComplete(event:Event):void { //اینجا به دکمه ها کنترل آدرس بدید در صورتی که نیاز ندارید دو خط زیر را حذف و //playSound() از این استفاده کنید drums1_mc.addEventListener(MouseEvent.CLICK, playSound); drumsStop_mc.addEventListener(MouseEvent.CLICK, stopSound); } function playSound(event:MouseEvent=null):void { soundControl = sound.play(); soundControl.addEventListener(Event.SOUND_COMPLETE,handleSoundComplete) } function handleSoundComplete(event:Event){ playSound() } function stopSound(event:MouseEvent):void { soundControl.stop(); }البته راه های دیگه ای هم وجود دارد….
موفق و پیروز باشید
سلام بهروز جان از راهنماییتون واقعا سپاسگذارم .
ولی این کدی که برای اکشن اسکریپت ۳ دادین ارور میده . فایل صدای من اسمش ۱.mp3 می باشد .
من فقط تو کد بجای audios/iflashlord.mp3 لینک ۱.mp3 رو گذاشتم و صدا رو کنار فایل فلش گذاشتم .
اون لینک آموزشی هم که دادین کار نمیکنه آموزشش پاک شده .
من تو این کار مبتدی ام اگه ممکنه یک کد کامل به همراه سورس آموزشی ( fla ) برای دانلود بزارید . خیلی ممنونم .
بهروز جان با اکشن اسکریپت ۲ مشکلم حل شد واقعا سپاسگذارم .
حالا من می خوام همین کار رو برای تصویر و متن هم انجام بدم به این صورت که تصاویر در یک فولدر و متن ها در یک فایل xml قرار داشته باشد .
سپس برای کل فلش یک loader که شامل دکمه ایست و پخش و پخش مجدد و نوار کنترل برای جلو و عقب کشیدن فلش و تنظیم ولوم صدا داشته باشه توسط اکشن اسکریپت ۲ می خوام .
اگه راهنمایی کنید ممنون میشم .
خواهش می کنم دوست عزیز ، در مورد اکشن ۳ می بایست تغییراتی نسبت به پروژه اعمال می کردید ، به هر حال خوشحالم که به نتیجه رسیدید…
برای این موضوع شما می تونید از این سورس ها استفاده کنید
http://schoolofflash.com/files/freebies/jukebox-flash8.zip
و این آموزش هم مربوط به همین موضوع می باشد که شما می خواهید
http://www.bezzmedia.com/swfspot/samples/flash8/Mp3_Player_with_XML_Playlist
موفق و پیروز باشید
با سلام .
من یک فایل exe بازی مار و پله دارم . که وقتی روی مار میری یک سوال ازت می پرسه اگه اشتباه جواب بدی میری سر دم مار . حالا می خوام بانک سوالات این فایل رو ویرایش کنم . ممکنه راهنماییم کنید . با فلش دیکامپایلر سورس رو میگیرم ولی خراب سورس رو میده و فلش خرابه ؟
اگه نمونه مال سایت خاصی هست می تونید نسخه swf ش رو گیر بیارید تا بهتر دیکامپایل بشه
البته اگه با نرم افزار های محافظتی قفل نشده باشه
میشه یه کاری کرد….
موفق و پیروز باشید.
سلام و خسته نباشید
توی اکشن ۳ می خوام یک دکمه replay درست کنم که با زدنش به فریم اول برگرده ، یه راهنمایی می کنین
ممنونم
دکمه ای با instance name با مقدار mybtn بسازید
و از کد زیر استفاده نمایید
mybtn.addEventListener(MouseEvent.CLICK , replay ); function replay(e:MouseEvent) { gotoAndPlay(1); }سلام لینکی که برای جدول تبدیل AS2 ,AS3 گذاشتید کار نمی کند لطفا یک لینک جدید قرار دهید. متشکرم
بله فایل حذف شده است…
لینک ویرایش شد
از نمونه زیر استفاده نمایید
ببخشید من زیاد با فلش آشنایی ندارم .( یعنی یه مختصر با اکشن اسکریپت آشنایی دارم و چند تا کتاب خوندم . ولی روی یک برنامه مشکل داریم )
من یک فیلم با پسوند mpeg به فلش ایمپورت کردم و می خوام به وسیله یک مالتی مدیا کنترلش کنم . دکمه های pley و…. را بلدم بسازم اما seek را نمی تونم بسازم ( نواری که نشان دهنده میزان پیشرفت فیلم هست )
از mediacontroler و mediapleyback هم استفاده کردم اما کار نمی کنند. ( یا بهتر بگم کد اکشن که بتونه به اون فایل بچسبه را بلد نیستم!)
اگر بتونید راهنماییم بکنید ممنون می شم.
وحید عزیز
ابتدا فایل ویدئویی خود را به FLV تبدیل نمایید توسط نرم افزارهایی مثل Adobe Media Encoder
و مرحله بعد با کمک mediapleyback و یا کامپوننت های دیگر مربوط به پخش ویدئو به راحتی با تعیین مقدار آدرس و نام فایل مورد نظرتون که در صورتی که کنار فایل فلش شما باشد فقط نام و پسوند فایل کافی می باشد
حال به راحتی می تواند این ویدئو را پخش و بر آن در حال نمایش کنترل داشته باشید
ساختن با کد اکشن این مورد کد زیاد و زمان زیادی خواهد برد ، ولی با استفاده از کامپوننت فقط می بایست آدرس فایل تبدیل شده به flv را وارد نمایید
موفق و پیروز باشید
vaghean kareton ali hast.thanka a lot.tabrik migam khili mokhi bache ahhhhhh az sitet khosham omad baba aval
لطف دارید دوست گرامی
با سلام و خسته نباشید خدمت نویسنده وبلاگ
اینجانب یکی از علاقمندان به اکشن اسکریپت ۳ هستم ولی چون تازه کار هستم مشکلی داشتم که میخواستم راهنماییم کنین
سوالم اینه که میخواستم بپرسم چطور میشه در اکشن اسکریپت به یک شی بیشتر از یک حرکت داد مثلا از طرف راست یا چپ وارد بشه و بعددر وسط صفحه بایسته وبعد بچرخه یعنی سه بعدی مثلا حول محور y وبعد به طرف راست حرکت کنه طوری که وقتی چرخید بعد از اتمام چرخش بایسته و به طرف راست یا چپ بره و از صفحه خارج بشه در ضمن این حرکات نیاز به دکمه و زدن ماوس نداشته باشه به صورت خود کار و اینتر فریم باشه و در یک فریم میخواستم این حرکات رو برای شی بنویسم
و سوال دومم هم اینه که چطور میشه یک حرکت رو کنترل کرد مثلا در مثال بالا وقتی که شی از طرف راست یا چپ وارد میشه در حال چرخش نباشه و بعداز ایستادن شی شروع به چرخش کنه یعنی باکد تعریف کنیم که بعد از رسیدن شی به مثلا وسط صفحه بایسته وبعد شروع به چرخش کنه و این چرخش مثلا ۴ دور باشه و بعد بایسته
لطفا راهنماییم کنین خیلی به این راهنمایی احتیاج دارم قبلا از لطفتون متشکرم
منتظر جوابتون هستم
سلام دوست عزیز
جواب تمامی سوالات شما رو میشه با استفاده از TweenLite و یا TweenMax داد.
این مجموعه کلاس اکشن اسکرپیت که هم برای نسخه ۲ و هم ۳ وجود دارد به شما امکان ایجاد انیمیشن ، ایجاد وقفه ، رویداد پایان هر مرحله برای نمایش مرحله بعد و اجرای کدهای مربوطه به بخش دیگر متحرک سازی و… همه و همه را تنها با نوشتن چد خط کد ساده یه شما می دهد.
برای دریافت و مطالعه آموزش های مربوطه توصیه می کنم در موتورهای جستجو این دو کلمه را جستجو نمایید (TweenMax و TweenLite ).
در ضمن برای این کار کلاس های متفاوتی نوشته شده است که می توانید از آنها نیز استفاده نمایید ، البته امکان انجام این کار توسط Timerو یا interval و یا EnterFrame نیز هست که کمی کار را پیچیده تر می کند…
موفق و پیروز باشید
با سلام خدمت آقای پولادرگ عزیز
از اینکه سوال منو بی جواب نذاشتید واقعا از لطفتون متشکرم
راستیاتش اصلا فکر نمیکردم جواب بدین
اما میخواستم بدین وسیله از خدمتتون تشکر کرده و همچنین بپرسم که این دو کلمه پیشنهادی شمارو که سرچ کردم به سایتهایی برای دانلود راهنمایی شدم ویکی از اونها رو از سایت http://www.greensock.com/tweenlite/ دانلود کردم حال میخواهم بپرسم که من وقتی اونو اجرا کردم در نمونه های مثالیش در پایین پنجره کدهایی رو میده که نمیدونم با کپی این کدها و پیست آن در اکشن اسکریپت ۳ میتونم اونو اجرا کنم و به یک شی نسبت بدم یا نه ، این پلاگین چطوری به اکشن اسکریپت ۳ وصل و نصب میشه
به طور کلی این پلاگین رو چطوری باید نصب کنم ویا چطوری باید از این کدها استفاده کنم و من برای دادن بیش از یک حرکت به یک شی چطور باید از اون استفاده کنم
اگه امکانش باشه منو راهنماییم کنین در صورت امکان توضیح لطف کنین تا بیشتر مطلب رو دریافت کنم منتظر راهنماییتون هستم باز هم از لطفی که کردین ومنو بی جواب نذاشتین
کمال تشکر رو دارم
با تشکر رضا
سلام دوست عزیز
بنده تا جایی می تونم، در سطح دانش محدودی که دارم ، سعی می کنم هر کاری از عهده ام بر بیاید انجام دهم.
در مورد سوال شما ، در کل کلاس ها در اکشن اسکریپت دو حالت compiled که با فرمت SWC می باشد و non-compiled که به صورت یه پوشه که درون آن فایل ها اکشن اسکریپت با فرمت as می باشد
در این مورد شما یک پوشه با نام gs دارید که می بایست در کنار پروژه خود قرار دهید و آنها را با دستور import وارد نمایید ، نمونه ای که به شما کد راهنما می دهد بسیار مفید است و کار شما را راحت می کند
البته اگر مستندات پروژه را در سایت و یا آموزش های توی وب را هم مشاهده کنید خوب می باشد
حال موردی که به کاری که شما می خواهید انجام دهید رابطه دارد :
۱ – خصوصیت delay » توسط این خصوصیت و قرار دادن آن مانند یکی از مشخصه ها مانند x در کد و مقدار دهی آن بر حسب ثانیه می توانید به کلاس بگویید که مثلا بعد از ۲ ثانیه حرکتی را انجام دهد
TweenLite.to(iflashlord_mc , 1 ,{delay: 0 ,x:100, ease:Bounce.easeOut}); TweenLite.to(iflashlord_mc , 2 ,{delay: 1 ,x:200,y:20, ease:Bounce.easeOut}); TweenLite.to(iflashlord_mc , 3 ,{delay: 3 ,rotation:180, ease:Bounce.easeOut});کد بالا نمونه ساده ای است که در ابتدا در زمان یک ثانیه شی را به موقعیت ۱۰۰ در محور x انتقال می دهد ، و بعد از یک ثانیه کد خط ۲ اجرا می شود و موقعیت x را به ۲۰۰ و y را به ۲۰ جا به جا می کند در مدت زمان ۲ ثانیه و خط سوم بعد از ۳ ثانیه گذشتن از اجرا ، فعال می شود و ۱۸۰ درجه چرخش ایجاد می کند
۲ – راه دیگر با استفاده از رویداد onComplete هست که بعد از اتمام می توان هر Tween ، یک تابع را فراخوانی کرد.
امیدوارم که این آموزش کوتاه راه گشای شما باشد ، موفق و پیروز باشید
با سلام خدمت آقای پولادرگ عزیز
خواستم بدین طریق از لطفی که کردین تشکر کنم و از اینکه منو بی جواب نذاشتین نهایت تشکر رو از شما دارم
با توجه به اظهاراتتون یه سوالی برام پیش اومد که خواستم با شما در میان بزارم و اون اینکه طبق گفته تون فایل gs رو که گفته بودین ، با دستور ایمپورت خواستم وارد اکشن اسکریپت کنم ولی خطای زیر رو میده
۱۱۷۲: Definition gs could not be found. نمیدونم چرا این خطا رو میده ولی ، کدی رو که من نوشتم از خود نرم افزار TweenLite کپی و در اکشن اسکریپت پیست کردم اینه:
import gs.TweenLite;
TweenLite.to(mc, 1, {x:46, y:43}); مثل اینکه اونطور که نشون میده نتونستم کلاس رو به طور صحیح وارد کنم وحتی در یک مورد دیگر که یک کد دیگری را دادم
پیغام خطای زیر را داد که کمی با قبلی فرق میکنه پیغام خطا این بود:
۵۰۰۱: The name of package ‘gs.easing’ does not reflect the location of this file. Please change the package definition’s name inside this file, or move the file. C:\flash 3d\gs\easing\Elastic.as
حال اینبار هم از شما استدعا میکنم که بنده را راهنمایی کنید که چه کار کنم تا بتوانم فایلهای این نرم افزار رو به اکشن اسکریپت وارد کنم ودر صورت امکان اگر ممکن باشد توضیحاتی لطف بفرمایین تا مطلب را بطور کامل و خوب دریافت کنم
باز هم از لطفی که کردین و بنده رو راهنمایی کردین نهایت تشکر و قدردانی را دارم
ارادتمند رضا
دوست عزیز به نکات زیر دقت کنید
مواردی که بنده گفتم برای اکشن اسکریپت ۳ می باشد و می بایست پروژه شما بر روی فلش پلیر ۹ به بالا و اکشن ۳ تنظیم شده باشد ، در بخش publish setting
شما می بایست یک پوشه که حاوی کلاس مربوطه می باشد در کنار فایل .fla خود قرار داده باشید (که فکر می کنم این مورد را انجام نداده اید)
به ورژن کلاس دریافتی دقت کنید که مربوطه به اکشن ۳ باشد
سپس نمونه هایی مثل نمونه ای که خودتان نوشته اید را تست نمایید
در صورتی که کارهای بالا را درست انجام داده باشید می بایست بدون خطا اجرا شود
موفق و پیروز باشید
با سلام خدمت آقای پولادرگ عزیز
خواستم تا از شما بخاطر لطفتون تشکر کنم و نیز سوال پیش آمده را با شما مطرح کنم
سوال بنده اینه که همونطور که گفته بودین خواستم از طریق publish setting این کار رو انجام بدم مسیری که رفتم رو در زیر میارم: در این قسمت که رفتم
file/publish setting/flash فلش پلیر روی ۱۰ و اکشن اسکریپت روی ۳ تنظیم بود
و بعد از آن برای قرار دادن فایل fla دکمه settings جلوی script که بر روی action script 3 تنظیم شده بود رو زدم و در پنجره باز شده از قسمت source path
روی علامت + کلیک و روی دکمه فولدر کلیک و مسیر فایل رو که مثلا روی دسکتابم بود رو بهش دادم یعنی به طور کلی:
file/publish setting/flash/script setting/source path/gs folder adress
ولی با رفتن این مسیر باز هم پیغام خطای زیر رو میده:
۵۰۰۱: The name of package ‘gs’ does not reflect the location of this file. Please change the package definition’s name inside this file, or move the file. D:\Documents and Settings\reza\Desktop\lite\gs\TweenLite.as
حال نمیدانم که آیا مسیر رفته شده درست بوده یا نه و اگر درست بوده چرا باز همان خطا را میدهد واینکه شما فرمودین که فایل پوشه حاوی کلاس مربوطه رو در کنار فایل fla خود قرار بدهم چگونه باید این کار رو انجام بدم ،و چگونه مسیر قرار دادن این فایل در کنار فایل fla را طی کنم و مسیر آن چگونه است
لذا استدعا دارم که بنده رو راهنمایی بفرمایین و در صورت امکان لطفا مسیر رو دقیقا بنویسین که از کدام مسیر بروم تا مسیر رو اشتباه نرم ونیز چون من تازه کارم این خواهش رو میکنم که توضیح لطف بفرمایین تا من مطلب رو خوب دریافت کنم منتظر راهنماییتون هستم
باز از لطفتون نهایت تشکر رو دارم
ارادتمند رضا
روشی که بنده گفتم بسیار ساده است ، پوشه gs را پیدا کنید همین پوشه را کپی (copy) نمایید و در کنار فایل .fla خود پیست (paste) نمایید
البته روش دیگر همان روشی می باشد که شما انجام دادید که بیشتر بنده برای مدل compiled آن را توصیه می کنم ، احتمالا مشکلی در این آدرس دهی وجود داشته باشد.
شما از همان روش اولیه این کار را انجام دهید.
در صورتی که موفق نشدید بفرمایید تا یک نمونه برای شما قرار دهم
موفق و پیروز باشید
با سلام خدمت آقای پولاد رگ عزیز
از این که این مدت بهتون زحمت دادم بنده رو ببخشین
خواستم از این طریق از شما به خاطر زحماتتون تشکر کنم
خدا شاهده دیگه روم نمیشه دوباره سوالم رو مطرح کنم ولی گفتم که ، باز همون خطا رو میده :
The name of package ‘gs’ does not reflect the location of this file. Please change the package definition’s name inside this file, or move the file. D:\Documents and Settings\reza\Desktop\lite\gs\TweenLite.as
با عرض پوزش میخواستم عرض کنم من آخرش منظورتون رو از کنار فایل fla پیست کنین رو نفهمیدم منظورتون کجاست ، آیا باید در کتابخانه پیست کنم، ویا در صفحه stage پیست کنم ، ویا در یک لایه یا فریم دیگه در اکشن اسکریپ باز شده پیست کنم ، ویا نه در سورس نرم افزار پیست کنم، ویا این پیست رو کجا انجام بدم و این همه زحمتی هم که دادم فقط به این خاطر بود که منظورتون رو دقیقا دریافت نکردم که در کنار فایل fla پیست کن منظور کجای این فایل fla است و چگونه باید این کار رو انجام بدم
به خدا قصد اذیت کردن ندارم ولی با این روش فک نکنم حل بشه
شما اگه خود فایل fla رو هم بذارین بدون توضیح که این پیست رو کجا باید انجام بدم ، فایده نداره و باز همان قضیه میشه
یه خواهش دیگه شما خودتون چطوری این کدهای این نرم افزار رو به اکشن اسکریپت وارد میکنین که خطا نمیده ؟
مثل اینکه این خطا به اکشن اسکریپت من چسبیده و با این کارا نمیشه این خطارو از اکشن اسکریپت جدا کرد دیگه نمیدونم چیکار کنم و دقیقا محل این پیست کجاست ، لطفا منو راهنماییم کنین چیکار کنم ، و در صورت امکان توضیح لطف بفرمایین تا راه رو اشتباه نرم
باز هم از لطفی که کردین نهایت تشکر رو دارم
ارادتمند رضا
روی دایرکتوری gs راست کلیک کرده و آن را copy کنید و بعد به دایرکتوری که fla را در آن ذخیره کرده اید بروید و gs را در آنجا paste نمایید ، خیلی خیلی ساده است…!!!
به فلش کار نداشته باشید در محیط سیستم عامل خود پوشه را کپی و در کنار fla خودتان قرار دهید….
امیدوارم که این بار متوجه شده باشید.
با سلام خدمت آقای پولاد رگ عزیز
از اینکه لطف میکنین جواب منو میدین سپاسگذارم
خواستم به عرض برسانم که استاد محترم ما مثل شما نیستیم که حرفه ای باشیم حالا با توضیحاتی که شما دادین فایل gs در سیستم عامل بنده در روی دسکتاپ در فولدری بنام lite به آدرس
D:\Documents and Settings\reza\Desktop\lite
قرار دارد من فایل gs رو از اونجا کپی کردم حالا برای پیست کردن میخواستم بدانم :
آیا منظور از فایل fla را که در آن ذخیره کرده ام ، محل خود نرم افزار فلش است که در کجای کامپیوتر ذخیره کرده ام و باید این فایل یعنی فایل gs را در آنجا پیست کنم است
حالا اگر منظورتان این است آدرس زیر آدرس نصب آن است
D:\Program Files\Adobe\Adobe Flash CS4\Flash.exe
ویا اگر منظورتان از اینکه دایرکتوری که fla را در آن ذخیره کرده اید این است که یک کلاسی را قبلا ساخته و آن را در جائی از سیستم که ذخیره کرده ام این فایل gs را نیز ببرم در همانجا پیست کنم ؟ خلا صه
به طور کلی منظور از دایرکتوری که fla را در آن ذخیره کرده ام جایی است خود برنامه فلش را در آنجا نصب کرده ام؟
و یا جایست که میبایست قبلا یک کلاس اکشن اسکریپت در آنجا ایجاد میکردم و حالا باید این فایل gs را برده و در همانجا پیست کنم
به طور کلی منظور از فایل fla که در اول توضیحاتتون فرمودین خود نرم افزار فلش است که در کجا نصب شده ؟
ویا نه این فایل را خودم باید ایجاد کنم و بعدا فایل gs را برده و در همانجا پیست کنم و اگر چنین است و باید فایلی را از ابتدا بسازم لطفا توضیح بفرمایین . کلا مفهوم کلمه fla در اول توضیحاتتان معلوم نیست خود نرم افزار فلش است یا فایل دیگری است که باید ایجاد بکنم
لازم به توضیح است که من فایل gs را در دایرکتوریی که خود نرم افزارفلش نصب است پیست کردم ولی مشکل حل نشد
حالا از جنابعالی استدعا دارم که مرا راهنمایی کنین که منظور از دایرکتوریی که fla در آن ذخیره است :
۱- جاییست که خود نرم افزار فلش در آنجا نصب است ؟
۲- جاییست که من میباست یک فایلی را در آنجا ایجاد میکردم و این فایل gs را باید کنار آن پیست کنم وچون ایجاد نکرد ه ام این خطا را میدهد و باید فایلی مانند فایل کلاس در اکشن اسکریپت و … ایجاد کنم تا این خطا رفع شود
(نوع فایل و نحوه ایجاد آنرا لطفا توضیح بفرمایین)
۳- خلاصه این فایل gs را باید درکجا پیست کنم تا مشکل حل شود خواهشا فرض را بر این بگیرید که من تازه کارم و همین الان این فایل را دانلود کردم حال باید چه بکنم تا با پیغام خطا مواجه نشوم لطفا دقیق دقیق محل پیست آنرا توضیح بفرمایید
از اینکه وقتتون رو گرفتم باید بنده رو ببخشین
باز هم از زحماتی که میکشین تشکر میکنم
ارادتمند رضا
دوست گرامی شما پروژه جدیدی که در فلش ایجاد می کنید و آن را ذخیره می کنید با فرمت .fla ذخیره می شود ، شما می بایست در محلی که پروژه خود را ذخیره کرده اید پوشه gs را کپی کنید.
برای مثال هم اکنون پوشه gs شما درون D:\Documents and Settings\reza\Desktop\lite می باشد ، پروژه جدید در فلش ایجاد کنید file -> new و آن را در همین آدرس ذخیره کنید
و با کدهای نمونه ی تست نمایید
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
کسی که یک حرف به من بیاموزد مرا بنده خویش کرده است مولا علی(ع)
استادعزیز از اینکه این همه بهتون زحمت دادم باید بنده رو ببخشین
خواستم بدین وسیله از لطفی که کردین و جوا ب سوالات منو دادین تشکر کنم
و نیز یک تشکر مخصوص نسبت به راهنمایی آخرتون که بیش از نیمی از مشکل منو حل کرد آخه طبق راهنمایی آخرتون کاری که گفته بودین رو انجام دادم و بالاخره تونستم با کدهای این پلاگین یا نرم افزارها ، شی رو حرکت بدم آقا خدا خیرتون بده نمیدونم چه جوری ازتون تشکر کنم خدا گره از مشکلاتتون باز کنه که مشکلم رو حل کردین
نمیدونم در برابر این همه لطف چه جوری تشکر کنم خدا عوضتون بده خداییش استادین
استاد محترم نمیدونم یه سوال دیگه از خدمتتون میتونم بپرسم یا نه ؟ آخه انقدر سوال پرسیدم که روم نمیشه، باید به بزرگی خودتون ببخشین
سوالی که بنده دارم اینه که من فایل fla رو در کنار این دو پلا گین ذخیره میکنم و بعد از آن وقتی که کدهای پلاگین یا نرم افزار TweenLiteBasics.swfرا در اکشن اسکریپت ۳ پیست میکنم ونام اینستانس شی رو mc میگذارم شی انیمیت میشه و هیچ خطایی رخ نمیده ولی وقتی کدهای پلاگین یا نرم افزار PluginExplorer.swf رو در اکشن اسکریپت ۳ پیست میکنم با همان اینستانس نام ، و نتیجه کار رو بررسی میکنم پلیر باز میشه هیچ خطایی در پنجره خروجی نیست ولی شی هیچ حرکتی نداره و متحرک نمیشه انگار که هیچ کدی به آن داده نشده مثلا کد زیر رو به اون دادم و هیچ حرکت و هیچ اتفاقی صورت نگرفت یعنی نه پیغام خطا در پنجره خروجی میده و نه حرکت میکنه شی کاملا ثابت و بی حرکت ایستاده کدی که دادم اینه:
import gs.*;
import gs.easing.*;
import flash.geom.Point;
TweenLite.to(mc, 1, {transformAroundPoint:{point:new Point(181,257), scaleX:0.5, scaleY:0.5}, ease:Elastic.easeOut});
حال این سوال رو میخواستم از خدمتتون بپرسم که چرا هیچ حرکتی انجام نمیشه و شی بدون حرکته طوری که انگار کدی به اون داده نشده لطفا منو راهنمایی کنین اشکال کارم کجاست
باز هم از این همه لطفی که کردین نهایت تشکر و قدردانی رو دارم
ارادتمند رضا
اگر در همان فایل PluginExplorer.swf به تیک های سبز دقت نمایید ، مواردی که در TweenLite و ،TweenMax فعال هست تیک دارد و شما می توانید نسبت به نوع استفاده ، فقط از موارد تیک خورده استفاده نمایید
فکر می کنم دیگر موارد در بسته ویژه و فروشی کلاس ارائه شده باشد، گزینه هایی که Club در کنارشان نوشته شده هم مربوطه کاربران عضو شده در سایت مربوطه می باشد.
گزینه که شما انتخاب نموده اید هم از همان دسته Club می باشد.
موفق و پیروز باشید
با سلام خدمت استاد گرانقدر آقای پولاد رگ عزیز
از اینکه لطف کردین و جوابمو دادین خیلی متشکرم
از اینکه سوال زیاد میکنم شرمنده ام
ولی یه سوالی برام در مورد این مجموعه پیش اومد که با اجازتون این سوال رو میخواستم ازخدمتتون بپرسم ، سوالم اینه که آیا راهی برای استفاده ما از این کدهائی که تیک نداره ویا نوشته Club داره وجود داره یا نه و اگر این امکان نیست چطور میتوانم این نوع کد را نوشته وبه شی دلخواهم نسبت بدهم و یا برای شی دلخواهم این نوع حرکت را بدهم آیا جایی هست که به صورت رایگان گرفت یا دانلود کرد؟
و سوال دومم اینکه چطور میتوانم توسط این کدها دو یا سه حرکت به شیئ ام بدهم یعنی مثلا به شی مورد نظرم یک کدی از این مجموع بدهم که وارد بشه بایسته و بعد کد یک گزینه دیگر را که بچرخه و بیرون بره رو به شیئ ام بدم چون همونطوریکه میدونین با انتخاب یکی از گزینه های این پلاگین همون گزینه انتخابی کدهایش وارد میشه ،میخواستم بدونم چطور میتوانم بیشتر از اون گزینه انتخابی مثلا کد یک حرکت دیگر را در کنار کد اولی وارد کنم به طوریکه هردو هم کار کنند مثلا شی از راست امد بایستد و بعد بیرون برود چطوری میتوانم اینگونه و به این روش از این مجموعه استفاده کنم ؟
ضمنا آیا میتوان این مواردی که تیک ندارد و یا نوشته Club در کنارشان است را کد صحیحشان که کار بکند را بدست آورد و از کدهایشان استفاده کرد
از لطفی که میکنین نهایت تشکر رو دارم
ارادتمند رضا
سلام ، در مورد club و نحوه دریافت آن به صورت رایگان! اطلاعی ندارم.
در مورد اعمال بیش از یک مورد می توانید متد مربوطه که در بخش از کد درون {} قرار می گیرند را با هم ادغام کنید ، این موارد به این صورت است که ابتدا خصوصیت مثل rotation و بعد : و بعد مقدار و بعد برای مورد بعدی از (,) برای جدا سازی استفاده می شود که همانند قالب یک Object می باشد
شما می توانید هم زمان با این کار هر موردی که بخواهید را با هم اجرا کنید
TweenLite.to(mc, 1, {tint:0xff0000 , x:46, y:43, scaleX:1, rotation:0});در مورد آخر هم باز اطلاعی ندارم ، ولی احتمال دارد این موارد توسط کسانی که دریافت کرده اند در وب قرار داده شده باشد که نیاز به جستجوی کاملی دارد.
موفق و پیروز باشید
با سلام خدمت استاد گرانقدر آقای پولادرگ عزیز
خواستم بدین وسیله از جوابی که زحمت کشیدین تشکر کنم
آقای پولادرگ عزیز با اجازتون در مورد راهنمایی که کرده بودین کد را دادم و این کد شی رو در یک حرکت نوشته شده در کد به مختصات گفته شده میبرد
به این وسیله میخواستم سوالی رو که مطرح کرده بودم طور دیگری به عرض برسانم شاید بهتر از محضرتان استفاده ببرم
و اونم اینه که من چگونه میتوانم وقتی به یک شی یک کدی دادم و آن شی به محل مختصات مورد نظر مثلا وسط صفحه رسید و در آن مختصات ایستاد بعد از آن چگونه میتوان حرکت دومی را با کد برای آن بنویسم تا از چپ خارج شود مثلا بعد از ایستادن در وسط صفحه، از طرف چپ از صفحه خارج شود مثلا من کد زیر را دادم تا شی از سمت راست وارد و تقریبا در وسط متوقف شود :
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 1, {x:221, y:48, scaleX:1, ease:Bounce.easeOut}),
که توسط کد بالا که موقعیت اولیه شیئ در بالا سمت راست x=493 و y=42 است شی از طرف راست حرکت و تقریبا در اواسط صفحه متوقف میشود حال سوال من اینست که چطور میتوان حرکت دومی به شی داد تا بعد از ایستادن در وسط صفحه از سمت چپ خارج شود
بطور مثال وقتی شی از سمت راست وارد صفحه شد تقریبا در وسط ایستاده و بعد از مثلا ۲ ثانیه حرکت دومی را شروع کرده و از سمت چپ خارج شود
لطفا مرا از راهنماییتان بهره مند کنید که چگونه حرکت دوم را برای یک شی تعریف کنم
قبلا از محبتی که میکنین نهایت تشکر را دارم
ارادتمند رضا
یکی از روش های این کار را در پاسخ های اولیه به سوالات شما داده ام ، با استفاده از متد delay، جواب های قبلی بنده را چک نمایید.
موفق و پیروز باشید
با سلام و خسته نباشید خدمت آقای پولادرگ عزیز
از جوابی که به سوالم دادید نهایت تشکر و قدردانی را دارم
طبق گفته شما و راهنمائی که کرده بودید در پاسخهای قبلی اشاره به متد delay کرده بودید و این روش را برای مشکل بنده پیشنهاد داده بودید و من هم کد زیر را برای یک شی با اینستانس نام mc دادم :
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 1, {delay:1, x:250, y:207, ease:Bounce.easeOut});
TweenLite.to(mc, 3, {delay:3, x:0, y:207, ease:Bounce.easeOut});
و همانطوریکه گفته بودید پارامتر delay را به کد افزودم با ثانیه های متفاوت ولی سوالی که برایم پیش آمد این بود که در کدی که دادم شی بعد از تقریبا ۳ ثانیه از سمت راست وارد شده و به سمت چپ میرود و کدی که با تاخیر ۱ ثانیه نوشته ام را اجرا نمیکند مثل این میماند که از هر دو خط دستوری که ، در بالا نوشتم، فقط آخری را اجرا میکن در حالیکه قبل از آن باید در مختصات دستور اول با تاخی۱ ثانیه باید به محل مختصات x:250, y:207 برود در حالیکه اصلا این کار انجام نمیشود
همچنین در نمونه ای که زحمت کشیده بودین و نوشته بودین با دادن آن نیز شی پس از تاخیر ۳ ثانیه ای فقط ۱۸۰ در جه میچرخد و هیچ حرکت دیگری ندارد مثل این میماند که از سه خط دستوری که نوشتیم باز هم فقط آخری را اجرا میکند
حال سوال بنده از خدمتتان این است که اشکال کارم کجاست و با نمونه کدی که در بالا نوشتم خواستم تا اشکال کارم را به من بگویید که چرا از دو خط دستوری که نوشتم فقط دستور و حرکت آخری را اجرا میکند
حتی اگر این حرکات یا دستورها را بیشتر هم بکنم باز همان آخری را انجام داده ویا از بین همه کدها ، یکی را انجام میدهد
لطفا مرا دقیقا راهنمائی کنین که چکار کنم تا هر حرکت با میزان تاخیری که به آن دادم در وقت خود اجرا شود و همه حرکات و دستورات نیز اجرا شود و فقط یکی نباشد
باز هم از الطاف شما نهایت تشکر را دارم
ارادتمند رضا
برای کاری که شما می خواهید انجام دهید دقیق ترین روش استفاده از متد رویداد onComplete در TweenLite می باشد
TweenLite.to(mc, 5, {alpha:0.5, x:120, ease:Back.easeOut, delay:2, onComplete:onFinishTween1}); function onFinishTween1():void { trace("The tween has finished 1!"); TweenLite.to(mc, 2, {alpha:1, x:220 , y:170, ease:Back.easeOut, onComplete:onFinishTween2}); } function onFinishTween2():void { trace("The tween has finished 2!"); }می توانید این کار را تا n بار تکرار کنید.
موفق و پیروز باشید.
با سلام خدمت استاد محترم آقای پولاد رگ عزیز
اینجانب رضا هستم که دوباره باز کامنت میذارم
خواستم تا به عرضتان برسانم که این مشکل حل نشدنی من با راهنماییتان بالاخره حل شد ،استاد گرامی ، شما با این کارتان لطف بسیار بزرگی در حق من انجام دادین
آنقدر خوشحالم که نمیدانم الان چه بنویسم، خیلی خوشحالم، تنها دلیل اینکه الان دارم کامنت میگذارم فقط اینه که عرض تشکری به خدمتتان داشته باشم
استاد گرانقدر کلمه ای پیدا نمیکنم که بتوانم با آن از این همه لطفتان تشکر کنم ،
به نظر من شما خیلی بزرگوارید که این لطف را کردید و مرا راهنمایی کردید واین جز ، با بزرگواری درونی یک نفر امکان ندارد ، باز هم از همه الطافتان تشکر میکنم ، به قول خودتان که در آخر راهنماییتان فرمودید حال این تعداد تشکر من به شماست که: می توانم این کار را تا n بار تکرار کنم تا شاید کمی تشکر در برابر این همه لطفتان باشد، شاید !، امیدوارم همیشه سلامت و موفق باشید تا باز هم اگر سوالی داشتم از رهنماییتان بهره مند شوم
ارادتمند شما رضا
با سلام خدمت استاد محترم آقای پولاد رگ عزیز
اینجانب رضا هستم که دوباره باز کامنت میذارم
خواستم تا به عرضتان برسانم که این مشکل حل نشدنی من با راهنماییتان بالاخره حل شد ،استاد گرامی ، شما با این کارتان لطف بسیار بزرگی در حق من انجام دادین
آنقدر خوشحالم که نمیدانم الان چه بنویسم، خیلی خوشحالم، تنها دلیل اینکه الان دارم کامنت میگذارم فقط اینه که عرض تشکری به خدمتتان داشته باشم
استاد گرانقدر کلمه ای پیدا نمیکنم که بتوانم با آن از این همه لطفتان تشکر کنم ،
به نظر من شما خیلی بزرگوارید که این لطف را کردید و مرا راهنمایی کردید واین جز ، با بزرگواری درونی یک نفر امکان ندارد ، باز هم از همه الطافتان تشکر میکنم ، به قول خودتان که در آخر راهنماییتان فرمودید حال این تعداد تشکر من به شماست که: می توانم این کار را تا n بار تکرار کنم تا شاید کمی تشکر در برابر این همه لطفتان باشد، شاید !، امیدوارم همیشه سلامت و موفق باشید تا باز هم اگر سوالی داشتم از رهنماییتان بهره مند شوم
ارادتمند شما رضا
انجام وظیفه بود دوست گرامی ، موفق و پیروز باشید.
با سلام خدمت آقای پولاد رگ عزیز
رضا هستم که دوباره کامنت میذارم
از اینکه به سایت شما اومدم خیلی خوشحال هستم واز سوالهای زیادی که میکنم شرمنده ولی آستاد عزیز من یه سوال در مورد کلاس یا پلاگین tweenlite داشتم که میخواستم مرا راهنمایی کنین
سوال بنده این بود که من کد زیر را برای شی با نام اینستانس mc نوشتم که شی از سمت راست وارد شده ، ایستاده ، و بعد از سمت چپ خوارج میشود کدی که نوشته ام این است:
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 3, {alpha:1,x:300, y:200, ease:Elastic.easeOut, onComplete:myFunction1});
function myFunction1():void
{
TweenLite.to(mc, 3, {alpha:1,x:-100, y:200, ease:Elastic.easeIn, onComplete:myFunction1});
}
حال سوال بنده این است که چگونه میتوانم کل اینحرکات را به صورت اینتر فریم در آورم تا بعد از مثلا آخرین حرکت دوباره همان کار از اول تکرار شود یعنی بعد از خوارج شدن شی از سمت چپ ، باز هم از سمت راست وارد شده و این کار ادامه یابد
ضمنا لازم به ذکر است که من خودم برای شی mc که دارم رویداد انتر فریم را نسبت دادم و همه کدهای بالا را درون فانکشن مثلا loop گذاشتم ولی هیچ چیزی اجرا نشد کل کدی را که برای انتر فریم نوشتم این است :
mc.addEventListener(Event.ENTER_FRAME, loop);
function loop(event:Event):void{
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 3, {alpha:1,x:300, y:200, ease:Elastic.easeOut, onComplete:myFunction1});
function myFunction1():void
{
TweenLite.to(mc, 3, {alpha:1,x:-100, y:200, ease:Elastic.easeIn, onComplete:myFunction1});
}
}
حال از شما استدعا میکنم مرا راهنمایی کنین که اشکال کارم کجاست وچرا هیچ چیز اجرا نمیشود و برای انتر فریم کردن این کدها چکار باید بکنم
قبلا از لطفتان نهایت تشکر را دارم
ارادتمند رضا
دوست عزیز برای این کار نمی بایست از ENTER_FRAME استفاده کرد زیرا این کد در هر لحظه چندین بار فرمان مروبطه را تکرار می کند که نتیجه هیچ حرکتی را در بر نخواهد داشت
شما می بایست در تابع آخرین حرکت کد اولین حرکت را قرار دهید با این کار هر بار به آخر رسید مورد اول تکرار می شود و بعد از مورد اول طبق روالی که نوشته اید مورد دوم اجرا می شود و یک loop ایجاد می شود و به هیچ ENTER_FRAME ی برای این کار نیاز نمی باشد
موفق و پیروز باشید.
با سلام خدمت آقای پولاد رگ عزیز
از اینکه لطف کرده سوالمو پاسخ گفتین ممنونم
با توجه به راهنمائی که کرده بودین من در تابع آخرین حرکت، کد اولین حرکت را قرار دادم که به شکل زیر شد:
import gs.TweenLite;
import gs.easing.*;
TweenLite.to(mc, 3, {alpha:1,x:300, y:200, ease:Elastic.easeOut, onComplete:myFunction1});
function myFunction1():void
{
TweenLite.to(mc, 3, {alpha:1,x:-100, y:200, ease:Elastic.easeIn, onComplete: myFunction2});
}
function myFunction2():void
{
TweenLite.to(mc, 3, {delay:1,alpha:1,x:300, y:200, ease:Elastic.easeOut, onComplete: myFunction1});
}
حال سوال بنده از خدمتتان اینست که استاد عزیز ، با دادن کد بالا در دومین باری که کدها میخواهد اجرا شود ، شی از مسیری که رفته است ، دوباره از همان مسیر برمیگردد و در وسط صفحه قرار میگرد که این نوع تکرار چندان خوشایند به نظر نمیرسد اگر زحمتی نباشد خودتان کد بالا را امتحان کنید متوجه منظور بنده خواهید شد
این در حالیست که منظورمان از تکرار حرکات این است که در بار دوم نیز مانند بار اول حرکتها ، شی از مکان اولیه خود یعنی از سمت راست وارد و در وسط ایستاد ه و بعد از طرف چپ بیرون برود مانند دفعه اول ، در حالیکه اینجور نمیشود و شی بعد از اتمام آخرین حرکت دوباره همان مسیر را بازگشته و در وسط صفحه قرار میگیرد که این نتیجه مطلوبی نیست
همچنین با دادن مختصات اولیه شی یعنی x= 639 ,y= 200 باز شی به درستی حرکت نمیکند و منظور از دادن کد برای تکرار اینست که حرکت شی برای تکرار از آنجا یعنی مختصات اولیه شی آغاز شود
لذا استدعا میکنم مرا رهنمائی کنید که اشکال کار من کجاست و چرا این تکرار صحیح انجام نمیشود.
با تشکر ارادتمند رضا
دوست عزیز کد شما مشکلی ندارد فقط تنها چیزی که در نظر نگرفته اید در myFunction2 قبل از کد مربوطه به TweenLite با استفاده از دستورات خود فلش می بایست به مختصات اولیه ارجاء دهید
به جای صفر ها مختصات اولیه را وارد کنید با این کار قبل از اجرای آخرین تابع که کد اولین مورد می باشد شی شما در اولین مختصات قرار می گیرد.
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
خواستم از لطفی که کردین و جواب سوالمو دادین ازتون تشکر کنم
همچنین میخواستم به عرضتان برسانم که استاد عزیز با راهنمائی که شما نسبت به بنده لطف فرمودین مشکل حل شده و بدینوسیله میخواستم از شما تشکر و قدر دانی کنم
خدا شاهد که شما لطف بسیار بزرگی کردین و من تنها کاری که از دستم برمی آید نوشتن کلماتیست که شاید نتواند عمق ارادت و تشکرم را به شما برساند ولی به قول خودتان این کار را تا n بار میتوانم انجام دهم تا شاید گوشه ای شود از این همه لطفتان ، شاید!!! خلاصه وسعمان در اینجا به این مقدار است و جز تشکر خشک و خالی کاری نمیشود کرد مگر اینکه باز هم مثل همیشه به بزرگیتان و لطفتان به بنده ، این کوتاهی را ببخشید و این تشکر هرچند ناقابل را از بنده قبول کنین
استاد عزیز از شما نسبت به این همه لطفتان کمال تشکر را دارم
امیدوارم همیشه سالم و سلامت و موفق باشین تا باز هم من و امثال من از راهنمائی تان بهره مند شوند
ارادتمند رضا
انجام وظیفه است دوست گرامی …
موفق و پیروز باشید
با سلام خدمت آقای پولادرگ عزیز
خسته نباشید ، رضا هستم که کامنت میذارم
از اینکه لطف میکنین جواب سوالهایم را میدهید نهایت تشکر را دارم
غرض اینکه سوالی در مورد TweenLite و یا TweenMax داشتم که بدین وسیله از خدمتتان میپرسم امیدوارم که راهنماییم کنید
سوالم اینه که استاد محترم من کد زیر را در اکشن اسکریپت۳ وارد کرده ام تا شی mc از سمت راست وارد ، ایستاده ،بچرخدو ایستاده ، ونهایتا از چپ بیرون برود ولی سوال من اینست که وقتی برای بار دوم کدها یا حرکتها میخواهد تکرار شود در تکرار حرکتها وقتی که شی از راست وارد و ایستاده ، و نوبت چرخش که میشود هیچ حرکتی نکرده یعنی نمیچرخد وهمانطور ثابت است تا حرکت سوم آغاز و شی از سمت چپ خارج شود کدی که نوشته ام این است:
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 2, {x:300, y:200, ease:Elastic.easeOut, onComplete:myFunction});
function myFunction():void
{
TweenLite.to(mc, 1, { rotationY:1800, onComplete:myFunction1});
}
function myFunction1():void
{
TweenLite.to(mc, 2, {x:-100, y:200, ease:Elastic.easeIn,onComplete:myFunction2});
}
function myFunction2():void
{
mc.x=675
mc.y=200
TweenLite.to(mc, 2, {x:300, y:200, ease:Elastic.easeOut, onComplete:myFunction});
}
حال سوالم اینست که چرا وقتی کد تکرار میشود ، دومین حرکت یا کد عمل نمیکند ضمنا در حرکتهای دیگر که چندین حرکت کد را وارد کرده بودم مثلا پنج کد حرکت داده بودم از میان آنها سومین حرکت که چرخش محور x بود ، آن کد حرکت انجام نمیشد و ادامه آن انجام میشد
حال استدعا میکنم راهنمائیم کنین که اشکال کارم کجاست و چرادر تکرار کدها ،یک کد حرکت، از میان کدها انجام نمیشود و غیر فعال است
منتظر راهنماییتان هستم
قبلا از لطفی که میکنین متشکرم
ارادتمند رضا
در صورتی که مشکل فقط در چرخش هست ، می تواند به دلیل دادن مقدارهای بالا باشد ، می توانید چرخش را هم مانند مختصات مقدار دهی کرده و روی صفر قرار دهید.
موفق و پیروز باشید
بهروز جان سلام . خوبی مهندس ؟
یک سوالی برام پیش اومده کو تو مجید آنلاین یک تاپیک راجع به اون گذاشتم ولی کسی جواب نداد .
فایلی که گذاشتم رو بی زحمت از این لینک دانلود کن : http://www.upload.iran-forum.ir/uploads/1295527905.rar
تو این فایل من دو تا فیلم دارم که وقتی در ابتدا روی آن کلیک میکنیم نمایش میده ولی وقتی برمیگردیم و روی لینک بعدی کلیک میکنیم انگار نه انکار کلیکی اتفاق افتاده . انگار موی کلیپ روی همه اجزا باقی مونده و پاک نشده و فیلم ها دیگه اجرا نمیشه .
لطفا راهنمایی کنید و یا سورس درست شده را ضمیمه نمائید .
دوست عزیز
film1.swf و film2.swf پلیر آنها با اکشن ۲ می باشد و پروژه شما توسط اکشن اسکریپت ۳ نوشته شده است، شما بهتر هست که از کامپوننت های اکشن ۳ در این ۲ پخش کننده استفاده کنید که مشکلی نداشته باشید
برای این بارگزاری راهی وجود دارد ، اما توصیه می کنم که از روش اول که ایجاد این دو مورد در اکشن ۳ می باشد ، استفاده نمایید
موفق و پیروز باشید
بهروز جان من این کار رو کرده بودم این کار یک مشکلی داره و اون اینه که وقتی صفحه فول اسکرین میشه کامپوننت هم فول اسکرین میشه و کامپوننت property برای جلوگیری از این امر ندارد .
بهترین و درست ترین راه برای شما ایجاد یک پلیر به صورت شخصی و کد نویسی آن می باشد ، این موضوع را می توانید با راهنمایی های زیادی که در وب وجود دارد انجام دهید
برای نمونه ای ساده به این مورد اشاره می کنم :
var vid:Video = new Video(320, 240); addChild(vid); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); vid.attachNetStream(ns); var listener:Object = new Object(); listener.onMetaData = function(evt:Object):void {}; ns.client = listener; ns.play("externalVideo.flv");موفق و پیروز باشید
با سلام خدمت آقای پولاد رگ عزیز
از اینکه جاب سوالمو دادین متشکرم
خواستم به عرضتون برسانم که اولا از راهنمایتون متشکرم، و با توجه به راهنماییتون مقدار چرخش را در کد حرکت آخر، برابر با صفر قرار دادم
ولی با توجه به کدی که داده ام همه کد حرکتها به شکل زیر شد:
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 2, {x:300, y:200, ease:Elastic.easeOut,onComplete:myFunction1});
function myFunction1():void
{
TweenLite.to(mc, 1, {rotationY:1800, onComplete:myFunction2});
}
function myFunction2():void
{
TweenLite.to(mc, 1, { rotationX:900, onComplete:myFunction3});
}
function myFunction3():void
{
TweenLite.to(mc, 1, {rotationY:0, onComplete:myFunction4});
}
function myFunction4():void
{
TweenLite.to(mc, 2, {x:-100, y:200, ease:Elastic.easeIn,onComplete:myFunction5});
}
function myFunction5():void
{
mc.x=685
mc.y=200
rotationX=0
rotationY=0
TweenLite.to(mc, 2, {x:300, y:200, ease:Elastic.easeOut,onComplete:myFunction1});
}
که در آن اول شی mc از طرف راست وارد و می ایستد
در کد حرکت دوم شی حول محور y طبق مقدار میچرخد
در کد حرکت سوم شی حول محور x طبق مقدار میچرخد
در کد حرکت چهارم شی حول محور y طبق مقدار میچرخد
و نهایتا در کد حرکت پنجم از صفحه خارج میشود
در ادامه در قسمت myFunction5 ، کد اول mc.x وmc.y را برابر مختصات اولیه و سپس طبق راهنمائی مقادیر هر دو محور چرخش x و y را برابر صفر قرار داده و آدرس کد حرکت اول را برای تکرار داده ام
ولی سوال بنده اینست که با صفر قرار دادن هر دو مقدار چرخش x و y باز یکی از کد حرکتها انجام نمیشود و هیچ حرکتی انجام صورت نمیگیرد
در صورت امکان اگر زحمتی نباشد اگر کد بالا را خودتان امتحان کنید بیشتر منظور بنده را متوجه خواهید شد که وقتی تمام کد حرکتها تکرار میشود نمیدانم چرا از این کدها فقط یکی از آنها که آنهم مربوط به کد حرکت چرخش شی نسبت به محور x است انجام نمی شود در حالیکه در بار اول ، اجرا صحیح است و فقط در تکرار ، این حرکت غیر فعال است ولی حرکتهای مربوط به محور y همه شان به طور صحیح عمل میکنند حتی در موقع تکرار.
استدعا میکنم که بنده را راهنمائی کنید که چرا در موقع تکرار ، یکی از کد حرکتها مثلا چرخش x اصلا عمل نمیکند ، ولی برای محور y همه حرکات حتی چرخش به طور صحیح عمل میکنند و چه کار باید بکنم تا این ایراد از کد من رفع شود لطفا دقیق مرا راهنمائی فرمایید چکار باید بکنم
قبلا از لطفی که میکنید نهایت تشکر را دارم
ارادتمند رضا
تنها موردی که در این کد مد نظر قرار داده نشده این می باشد که می بایست مقدار چرخش بر مبنای مقدار کنونی چرخش افزوده شود
به این معنی که mc.rotationX می بایست در زمان مقدار دهی به مقدار اضافه شود کد اصلاح شده در زیر قرار گرفته است :
import gs.TweenLite; import gs.easing.*; TweenLite.to(mc, 2, {x:300, y:200, ease:Elastic.easeOut,onComplete:myFunction1}); function myFunction1():void { TweenLite.to(mc, 1, {rotationY:mc.rotationY + 1800, onComplete:myFunction2}); } function myFunction2():void { TweenLite.to(mc, 1, { rotationX:mc.rotationX + 900, onComplete:myFunction3}); } function myFunction3():void { TweenLite.to(mc, 1, {rotationY:0, onComplete:myFunction4}); } function myFunction4():void { TweenLite.to(mc, 2, {x:-100, y:200, ease:Elastic.easeIn,onComplete:myFunction5}); } function myFunction5():void { mc.x = 685; mc.y = 200; rotationX = 0; rotationY = 0; TweenLite.to(mc, 2, {x:300, y:200, ease:Elastic.easeOut,onComplete:myFunction1}); }موفق و پیروز باشید
بهروز جان من این کد رو قبلا تست کردم و مشکلم هم برطرف شده بود فقط این کد یک مشکلی داره و اون اینه که وقتی فیلم رو نشون میده هیچ پلیری مانند کامپوننت ها نداره و نمیشه فیلم را جلو و عقب کشید .
والا خودمون هم موندیم چیکار کنیم .
خوب این مورد هم میشه با برنامه نویسی به صورت اختصاصی برای پروژه ایجاد کرد ، البته کمی زمان خواهد برد.
باز هم توصیه می کنم که آموزش های موجود در وب را برای این مورد مشاهده کنید ، فکر می کنم سورس آماده هم برای این مورد موجود باشد.
متاسفانه بنده وقت کافی برای این کار را ندارم.
موفق و پیروز باشید
با سلام خدمت آقای پولادرگ عزیز
امیدوارم خسته نباشید از اینهمه سوالی که ازتون میکنم
به خدا شرمنده ولی کس دیگه ای برای پرسیدن سوالام که کار بلد باشه نمیدونم
مثل شما استاد که دیگه اصلا
باز هم بزرگی ، مثل همیشه ، بنده رو مورد لطف قرار دادین فقط بزرگواری خودتونو میرسونه
ای کاش کاری از دستم بر می اومد در این اینترنت ، کاری به جز تشکر خشک و خالی از دستم برنمیاد که اگر هم برمی اومد باز هم ذره ای از این همه محبت رو نمیشد جبران کرد.
من نمیدونم چه جوری ازتون تشکر کنم کلمه ای برای تشکر در برابر این همه لطفی که دارین و سوالاتمو بی جواب نمیذارین پیدا نمیکنم
و باز هم به قول خودتان این تشکر را میتوان تا n بار تکرار کرد تا شاید گوشه ای از اینه همه لطفتان شود، شاید!!!. وفقط آنقدر کم ، از دستم برمی آید که بگویم:
استاد عزیز از این همه لطفی که میکنین نهایت تشکر و امتنان را دارم
ارادتمند رضا
با سلام خدمت آقای پولاد رگ عزیز
امیدوارم خسته نباشید رضا هستم که کامنت میذارم
یه سوالی در مورد TweenMaxو TweenLite از خدمتتون داشتم که امیدوارم بنده را راهنمایی کنین
سوال بنده اینست که میخواستم با استفاده از این پلاگین به دو شی مختلف حرکتهائی را بدهم مثلا برای شی mc1 کد زیر را دادم:
import gs.TweenLite;
import gs.easing.*;
TweenLite.to(mc1, 2, {x:300, y:130, ease:Elastic.easeOut,onComplete:myFunction});
function myFunction():void
{
TweenLite.to(mc1, 1, {rotationY:mc.rotationY + 1800, onComplete:myFunctionr});
}
function myFunctionr():void
{
TweenLite.to(mc1, 1, { rotationX:mc.rotationX + 1800, onComplete:myFunctione});
}
function myFunctione():void
{
TweenLite.to(mc1, 1, {rotationY:0, onComplete:myFunctionz});
}
function myFunctionz():void
{
TweenLite.to(mc1, 2, {x:700, y:200, ease:Elastic.easeIn,onComplete:myFunctiona});
}
function myFunctiona():void
{
mc.x = 685;
mc.y = 200;
rotationX = 0;
rotationY = 0;
TweenLite.to(mc1, 2, {x:300, y:130, ease:Elastic.easeOut,onComplete:myFunction});
}
و لایه دیگری ایجاد کرده و این کد را به شی دیگری با نام اینستانس mc دادم با این تفاوت که شی بعدی از طرف مقابل وارد و از طرف دیگر خارج شود
شی mc1 از طرف چپ وارد شده و حرکتهای داده شده را اجرا و بعد از طرف راست از صفحه خارج شود
وشی mc از طرف راست وارد شده حرکات داده را اجرا و نهایتا از طرف چپ خارج شود ولی همانطوریکه میبینید در انجام تکرار برای این حرکات ، تکرار آنها به درستی صورت نمی گیرد و بعد از خروج ، به وسط صفحه برگشته و حرکات داده شده را انجام میدهند در حالیکه من مختصات اولیه شی را به کد داده ام و میبایست از مختصات اولیه تکرار شروع شود و حرکات به نوبت داد ه شده اجرا شود
حال سوال کلی بنده این است که آیا چگونه میتوان به چند شی در یک فریم حرکت داد آیا باید برای هر شی لایه ای ساخته و کدهای مربوطه را داد ویا نه میتوان در یک فریم به چند شی حرکت داد این کار چگونه باید انجام شود ؟لطفا راهنمائی دقیق بفرمایین
و سوال دوم بنده این است که چرا در کد بالا در تکرار حرکات، شی به وسط صفحه آمده و تکرار میشود در حالیکه من مختصات اولیه برای هر شی را داده ام و میبایست تکرار حرکات از مختصات اولیه آغاز شود لطفا مرا راهنمائی فرمایید که اشکال کارم کجاست؟
قبلا از راهنمائیتان نهایت تشکر را دارم
ارادتمند رضا
برای شی دیگر جدا سازی لایه به انتخاب شماست ، مهم instance name شی می باشد.
در مورد کد در کد بالا برای rotation ها می بایست به صورت mc.rotationX وارد کنید
یک نمونه که با کمی تغییر یک انیمیشن loop ایجاد می کند را در زیر می توانید مشاهده نمایید :
import gs.TweenLite; import gs.easing.*; //دوستان به جای این مورد می توانید از تابعی که با همین فرامین هست نیز استفاده کنید //TweenLite.to(mc, 4, {x:300, y:200, ease:Elastic.easeOut,onComplete:myFunction1}); myFunction5(); function myFunction1():void { TweenLite.to(mc, 1, {rotationY:mc.rotationY + 1800, onComplete:myFunction2}); } function myFunction2():void { TweenLite.to(mc, 1, { rotationX:mc.rotationX + 900, onComplete:myFunction3}); } function myFunction3():void { TweenLite.to(mc, 1, {rotationY:0, onComplete:myFunction4}); } function myFunction4():void { TweenLite.to(mc, 4, {x:0, y:0 ,rotationX:0 , rotationY:0,onComplete:myFunction5}); } function myFunction5():void { mc.x = 0; mc.y = 0; mc.rotationX = 0; mc.rotationY = 0; TweenLite.to(mc, 4, {x:300, y:200, ease:Elastic.easeOut,onComplete:myFunction1}); }موفق و پیروز باشید
با سلام خدمت آقای پولاد رگ عزیز
از لطفی که کردین و جواب سوالمو دادین خیلی متشکرم
اگر اجازه بدین میخواستم سوالمو یه جور دیگه مطرح کنم تا شاید بهتر از راهنمائیتان استفاده کنم
سوال بنده اینست که استاد محترم چگونه میتوان به بیشتر از یک شی مثلا دو شی با استفاده از TweenMaxو TweenLite حرکت بدم طوری که:
شی اول از راست وارد ایستاده حول محور x بچرخد ایستاده و از طرف چپ بیرون برود
ولی حرکت شی دوم متفاوت با قبلی باشد مثلا
شی دوم در وسط صفحه ظاهر شود ایستاده مثلا حول محور y بچرخد و بعدمثلااز طرف راست بیرون برود
من خودم برای این کار هر شی را در لایه جداگانه قرار داده و کدهای هر حرکت را به آن میدهم منتهی اشکال کار اینجاست که در موقع تکرار حرکات برای هر شی ، هر کدام از شی ها از مسیر رفته دوباره به وسط صفحه برمیگردد در حالیکه من مختصات اولیه را برای هر کدام نوشته ام و میبایست در تکرار شی از مختصات اولیه شروع کند
وبه طور خلاصه : یک شی از راست وارد وشی دیگر از چپ وارد شود هر دو ایستاد ه و حرکتهای متفاوتی نسبت به دیگری انجام دهد و نهایتا شی اول که از راست آمده بود از چپ خارج شود و شی که از چپ آمده بود از راست خوارج شود و دوباره حرکتها از اول به طور صحیح تکرار شود
لطفا مرا دقیقا راهنمائی کنید که چکار باید بکنم تا دو شی با حرکتهای متفاوت ایجاد کنم طوری که هر کدام تکرارشان را صحیح انجام دهند آیا این کار در یک فریم امکان پذیر است یا نه ؟
منتظر راهنمائیتان هستم
ارادتمند رضا
برای شی دیگر می بایست همه موارد را از نو با نام توابع دیگر اجرا کنید و با instance name جدید.
در مورد ورود و خروج مثال جواب قبلی را با تغییرات نسبت به پروژه خودتان استفاده کنید ، در تست بنده مشکلی نداشت و به درستی اجرا می شد ، موفق و پیروز باشید
با سلام خدمت آقای پولادرگ عزیز
امیدوارم خسته نباشید
از اینکه جواب سوالمو دادین متشکرم
میخواستم به عرضتان برسانم که استاد محترم ، طبق راهنمائیتان ، بنده برای متحرک ساختن دو شی مختلف ابتدا به هر یک از آنها دو اینستانس نام متفاوت که برای اولی mc و برای دومی mc1 در نظر گرفتم، که دومی را در لایه دیگری ساخته و آنرا در آن لایه قراردادم.
حال کدی را که برای اولین شی در لایه اول دادم به شرح ذیل است :
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc, 1, {x:300, y:230, ease:Circ.easeOut, onComplete:myFunction});
function myFunction():void
{
TweenLite.to(mc, 0.09, {scaleX:2,scaleY:2,onComplete:myFunction1});
}
function myFunction1():void
{
TweenLite.to(mc, 0.09, {scaleX:1,scaleY:1,onComplete:myFunction2});
}
function myFunction2():void
{
TweenLite.to(mc, 0.09, {scaleX:2,scaleY:2,onComplete:myFunction3});
}
function myFunction3():void
{
TweenLite.to(mc, 0.09, {scaleX:1,scaleY:1,onComplete:myFunction4});
}
function myFunction4():void
{
TweenLite.to(mc, 1, {x:-100, y:230, ease:Circ.easeIn, onComplete:myFunction5});
}
function myFunction5():void
{
mc.x=645.5
mc.y=230
TweenLite.to(mc, 1, {x:300, y:230, ease:Circ.easeOut, onComplete:myFunction});
}
و کدی که برای دومین شی در لایه دوم دادم به شرح ذیل است :
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc1, 1, {x:290, y:140, ease:Circ.easeOut,onComplete:function1});
function function1():void
{
TweenLite.to(mc1, 0.9, {rotationY:1800,onComplete:function2});
}
function function2():void
{
TweenLite.to(mc1, 0.9, {rotationX:mc.rotationX+1800,onComplete:function3});
}
function function3():void
{
TweenLite.to(mc1, 0.9, {x:700,y:140,onComplete:function4});
}
function function4():void
{
rotationY=1800
rotationX=1800
TweenLite.to(mc1, 1, {x:290, y:140, ease:Circ.easeOut,onComplete:function1});
}
حال سوال من از خدمت شما این است که استاد محترم ، در لایه اول کد به صورت صحیح کار میکند اگر چه چرخشی برای آن تعریف نکرده ام حتی در تکرار هم مشکلی ندارد ولی برای چرخش امتحان نکرده ام که ببینم مشکل دارد یا نه ؟
ولی مورد اصلی سوال من مربوط به شی دوم و لایه دوم میباشد ، تا وقتی که کد لایه بالا را برایش ، تکراری تعریف نکرده ام کد لایه بالا به درستی کار میکند ، ولی به محض اینکه برای کد بالا تکراری را تعریف میکنم ، همه چیز به هم میریزد، شی بیرون رفته به وسط صفحه برگشته و از آنجا حرکت را شروع میکند در حالیکه مختصات اولیه شی را تعریف کرده ام ، و حتی نیز موارد چرخش هائی که حول محورهای x,y برای آن تعریف کرده ام هیچکدام انگار نه انگار ، هیچ حرکتی انجام نمیشود و شی در وسط صفحه ایستاده و از آنجا بیرون میرود ، و دوباره برای تکرار حرکتها به وسط صفحه میاید و الخ …
خواستم از شما استدعا کنم در صورت امکان اگر کدها را امتحان کنید بیشتر متوجه منظور بنده میشوید
حال سوال بنده از خدمتتان این است که : اشکال کار از کجاست و چه موردی باعث میشود که کدها در موقع تکرار حرکات ، بدرستی کار نکند و برای تکرار بجای مختصات اولیه ، تکرار را از وسط صفحه آغاز و هیچکدام از چرخشها در تکرار حرکات انجام نمشود ؟
و چرا کد لایه دوم تا وقتی که تکرار انجام نشده صحیح کار میکند ، ولی به محض اینکه برای تکرار کدی را مینویسم همه چیز کن فیکون میشود ، و همه حرکات و چرخشها انجام نمشود ؟
لطفا مرا دقیقا راهنمائی کنین که برای رفع مشکل چه باید بکنم؟
قبلا از لطفتان نهایت تشکر را دارم
ارادتمند رضا
شما می بایست توی function1 و Myfunction1 مختصات اولیه شی را قبل از TweenLite قرار دهید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میذارم امیدوارم که خسته نباشید
خواستم به این وسیله از زحماتی که میکشید تشکر کنم و برایتان آرزوم سلامتی و خوشی میکنم تا افرادی مثل بنده از راهنمائیهای شما بهره مند شوند
چند روزی بود که خبری ازتون نبود خواستم تا یه حالی ازتون جویا بشم و باز هم از لطفی که به بنده کردین و مرا برای اشکالاتم راهنمائی کردین نهایت تشکر و قدردانی را بنمایم
ارادتمند رضا
شما لطف دارید رضا ی عزیز
موفق و پیروز باشید
با سلام خدمت آقای پولاد رگ عزیز
از اینکه جواب سوالمو دادین بینهایت متشکرم
استاد عزیز از اینکه دوباره بعد از وقفه ای به قولی میبینمتان واقعا خوشحالم
امیدوارم همیشه سالم و سرحال و سر زنده باشین تا من و امثالم از راهنمائیهایتان بهره مند بشیم
خواستم بدین وسیله به عرضتان برسانم که با توجه به راهنمائی که کرده بودین من مختصات اولیه شی را توی function1 و Myfunction1 قبل از TweenLite قرار دادم که با توجه به آن کد function1برای شی mc1 به صورت زیر شد:
import gs.TweenLite;
import gs.easing.*
TweenLite.to(mc1, 1, {x:290, y:140, ease:Circ.easeOut,onComplete:function1});
function function1():void
{
mc1.x=-62.5
mc1.y=140
TweenLite.to(mc1, 0.9, {rotationY:1800,onComplete:function2});
}
ولی نهایتا این بار هم کد صحیح عمل نمی کند وشی در مرحله اول و قبل از تکرار نیز چرخشهایش و حرکت افقیش به درستی انجام نمیشود
لذا استدعا میکنم با توجه به کدهائی که در سوال قبلیم دادم بنده را دقیقا راهنمائی کنین که اشکال کارم کجاست و چه باید بکنم تا این حرکتها برای شی دوم و لایه دوم حتی در تکرار نیز به طور صحیح انجام شود
و یک سوال کلی که حتی سوال بالا را نیز در بر میگیرد :
سوالم این است که چطور به چند شی حرکتهای مختلفی بدهم مثلا در مثال بالا شی ۱ از راست وارد شده بایستد و بعد شروع به چرخش کند بایستد و بعداز صفحه، از چپ خارج شود
و شی ۲ از سمت چپ وارد شود یعنی بر خلاف جهت ورود شی ۱ ، بایستد و مثلا شی چن بار بزرگ و کوچک شود و بایستد و نهایتا از سمت راست یعنی برعکس جهت خروج شی ۱ از صفحه خارج شودو این حرکات را بتوان دوباره توسط کد تعریف کرد که تکرار شود، بطوری که صحیح تکرار شود
لطفا مرا دقیقا راهنمائی کنید که چگونه میتوان این کار را انجام داد
باز هم از لطفی که میکنین نهایت تشکر را دارم
ارادتمند رضا
مشکل چرخش ها می باسیت توسط صفر کردن چرخش های اشیاء انجام شود
مساله اینجاست که وقتی شی چرخش داشته باشد وقتی مثلا مختصات ۰ و ۰ داده می شود کلا از صفحه خارج می شود
در واقع دلیل مربوطه به چرخش می باشد که آن هم باز وابسته به REGISTER POINT مربوطه به MovieClip می باشد که وسط باشد و یا در کدام یک از گوشه ها….
این کار را با تغییر در مرکزیت MovieClip که با جابجایی شی درون movieClip و دقت به (+) که مرکز را نشان می دهد قابل انجام می باشد.
در صورتی که باز هم مشکلی در انجام این کار داشتید ، فایل مربوطه را یا آپلود کرده و لینک آن را اینجا قرار دهید و یا به ایمیل بنده ارسال کنید
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید
رضا هستم که کامنت میذارم
خواستم بدینوسیله از نهایت لطفتان تشکر کنم
واقعا باز هم لطفی کردین که بنده از تشکر به آن عاجز و ناتوان شدم ، واقعا بزرگید که این همه لطف میکنید ، به چه زبانی و چگونه از خدمتتان تشکر کنم نمیدانم !!!
و اقعا لطف شما نسبت به بنده آنقدر بزرگ و امکان بنده برای تشکر از شما آنقدر کم است که باعث شرمندگیست .
برای ما همین شرمندگی در برابر این همه بزرگی میماند و برای شما باز هم مثل همیشه بزرگی و انسانیت و برای اینهمه بزرگی و انسانیت شما کاری بجز تشکر و قدر دانی خشک ، در این محیط اینترنت محدود ، بر نمی آید، ولی این محدودیت باعث نمیشود که مسئولیت از گردن باز کنیم و به همین بسنده کنیم پس مثل همیشه از شما راهنمائی میخواهم که چه بکنم این همه کاستی و محدودیت را ، لطفا مرا راهنمائی کنید که چگونه میتوانم از شما تشکر کنم؟؟؟؟
فعلا همین را بگویم که استاد محترم از این لطف بزرگتان نهایت تشکر و قدر دانی را دارم و آرزو میکنم همیشه سالم و سلامت باشید تا من و امثالم از راهنمائیتان بهره مند شویم
ارادتمند رضا
سلام دوست گرامی
انجام وظیفه است ، بخشی زمانی که عموما برای دیدن تلویزیون و یا … صرف می کنیم را به پاسخ به شما عزیزان اختصاص می دهم و امیدوام ، خداوند بزرگ و بخشنده که توان و دانش اینکار را به بنده داده است از بنده راضی باشد ، هر چند این کار بنده خیلی خیلی کوچک است…
موفق و پیروز باشید
سلام
من برای ادیت کردن فایل های فلشی که از بعضی سایت ها دانلود میکنم از یه نرم افزار استفاده میکنم که swf رو به flv تبدیل می کنه . بعضی از فایل هایی که از سایت های مختلف save می کنم با پسوند object است و وقتی اونا رو با نرم افزار ، تبدیل به flv می کنم قابل ویرایش نیست یا حتی با flash player هم باز نمی شه . لطفا منو راهنمایی کنید که چطوری اونا رو ویرایش کنم . ممنون
سلام ، دوست گرامی
در کل فایل های فلش یک فرمت دارند و پسوند اصلی آنها swf می باشد حال این که این پسوند به موردی دیگر تغییر داده شود نمی تواند مشکلی ایجاد کند، برای این مورد می توانید فرمت را دستی به swf تغییر دهید.
در مورد نرم افزار ی که شما استفاده می کنید ، فکر می کنم از Sothink SWF Decompiler استفاده می کنید ، این نرم افزار خروجی fla که سورس فلش هست می دهد.
این که بعضی موارد مشکل دارد می تواند به دلیل این باشد که فایل مربوطه توسط نرم افزارهای مثل SWF Encrypt و… محافظت شده باشد در این صورت کدهای اکشن مربوطه به پروژه های در هم ریخنه و از متون بی معنا تشکیل می شود که دیگر بعد از تبدیل توسط نرم افزار فوق قابل ویرایش در فلش نخواهد بود
در این موارد می توانید کدها را خودتان دوباره بازنویسی کنید ، که البته کمی زمان بر خواهد بود و به تسلط نسبی ، با توجه به پروژه مربوطه نیازمند خواهد بود
فایل های که با خود فلش پلیر ، قبل از تبدیل یاز نمی شود به احتمال زیاد درست دانلود نشده است و ناقص می باشد و همین امر نیز می توانید در امر تبدیل به fla مشکل ایجاد کند
موفق و پیروز باشید
با سلام
وب سایت خیلی خوبی دارید.
بنده یه سوال داشتم اینکه چطوری می تونم کاری کنم که فلش اجرایی من با کلید CTRL+F4 بسته نشود؟ و اینکه چطور می توانم در هنگام اجرای فلش کاری کنم که همان ابتدا نرم افزار فلش ریدر و آکروبات ریدر نصب شود؟
لطفا اگر امکان دارد جواب را به ایمیل بنده هم ارسال فرمایید
با تشکر از شما
سلام دوست گرامی
برای مورد اول می توانید از این کد استفاده کنید :
fscommand("trapallkeys","true");برای نصب ابتدای اجرا بهتر می باشد از ابزارهای کمکی مثل MDM Zinc و یا Mprojector کمک گرفت که امکان فراخوانی راحت فایل های اجرایی را دارند
به هر حال برای نصب این موارد می بایست کاربر پنجره مربوطه به نصب را مشاهده کند و تنها کاری که شما می بایست انجام دهید ، اجرای فایل exe آنها می باشد
حال شاید کاربر راقب به این نصب نباشد و یا…
نرم اقزارهای فوق امکاناتی جدید به فایل های فلش اضافه می کنند که می توانید راهنمای آنها را مشاهده کنید ، در ضمن این امکان را هم دارند که فایل exe بدون نیاز به داشتن فلش پلیر روی سیستم کاربر ایجاد کنند.
موفق و پیروز باشید
lخیلی خیلی ممنونم از شما
سلام
ببخشید دوباره مزاحم شدم !!!! این کدی که به من دادین کار نمی کند یعنی وقتی کلید alt+f4 را میزنیم از فلش خارج می شود؟
سلام دوست عزیز ، تنها دستوری که فلش برای این کار دارد همان مورد می باشد. که البته کامل نیست ، بهترین راه برای غیر فعال کردن این موارد استفاده از نرم افزارهای کمکی مثل Mprojector و MDM Zinc می باشد که به عنوان گزینه های اصلی درون برنامه به شما امکان انجام این کار را به درستی و بدون مشکل می دهند و نیز روی همه ورژن های سیستم عامل ها نیز کارایی دارد.
مورد اول هم فقط در حالت exe فلش برای بخشی از دکمه ها توسط فلش در نظر گرفته شده است
برای ویندوزهای قدیمی ۹۸ و Me و … امکانی توسط اجرایی دستوری توسط فایل BAT هست که هم اکنون دیگر کاربردی ندارد.
بهترین و درست ترین روش برای Alt+F4 و غیر فعال کردن آن استفاده از برنامه های فوق می باشد
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولاد رگ عزیز
رضا هستم که کامنت میگذارم
الان که داشتم با فلش و اکشن اسکریپت کار میکردم به چند شی مختلف چند حرکت مختلف را دادم ولی نمیدانم چطور شد که همه چی بهم ریخت ولی بعد از مراجعه به راهنمائیهای شما اشکال را دریافته و توانستم که حرکتها و تکرارشان را به طور صحیح انجام بدم وبدین خاطر لازم دیدم که از زحماتی که شما کشیده اید و مرا برای رفع مشکلم راهنمائی کرده اید از شما تشکر کنم
استاد محترم واقعا واقعا از لطفی که کردین نهایت تشکر را دارم
امیدوارم همیشه سالم و سلامت و موفق باشین تا افرادی مثل بنده از راهنمائیهای شما بهره مند گردند
باز هم از لطفتون نهایت تشکر را دارم
ارادتمند رضا
سپاسگزارم ، موفق پیروز باشید
با سلام خدمت استاد محترم آقای پولاد رگ عزیز
امیدوارم که خسته نباشید
رضا هستم که کامنت میگذارم
خواستم از لطفتان تشکر کنم که جواب سوالاتمو میدین و راهنمائی میکنین
یه سوالی از خدمتتان داشتم که اگر لطف کرده جواب بدهید ممنون میشم
سوال بنده این است که چطور میتوان شی را در فلش به یک سیستم ذره ای تبدیل کرد آخه چند روزه که واقعیتش با آموزش سیستم ذره ای شرکت لیندا کار میکنم ولی فقط موردی که در فیلم توضیح میده رو میشه در قسمت بیس کلاس وارد کرد و دیگر هیچ چیز یا شی دیگری را نمیتوان بجز موردی که در فیلم میگه را به سیستم ذره ای به عنوان بیس کلاس تعریف کرد
حال سوال بنده از خدمتتان این است که استاد محترم بنده چطور میتوانم یک شی دلخواهم را به سیستم ذره ای تعریف و وارد کنم مثلا یک مستطیل کوچک ویا دایره ویا شی دیگر… و این شی دلخواهم را به سیستم ذره ای تبدیل کنم
لطفا مرا دقیقا راهنمائی کنین که چکار باید بکنم و چطور میتوان از ابتدا یک سیستم ذره ای را ساخت
منتظر راهنمائیتان هستم
باز هم از لطفی که میکنید نهایت تشکر را دارم
ارادتمند رضا
سلام
منظور شما از سیستم ذره ای ، فکر می کنم همان particle باشد
این موارد می بایست برای هر حالت به صورت مجزا طرح دهی و کدنویسی شود و یا از کلاس های حرفه ای در این زمینه استفاده شود.
برای نمونه های از این موارد می توانید این آدرس را چک نمایید
http://flintparticles.org/blog/examplesموفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولاد رگ عزیز
رضا هستم که کامنت میگذارم
از لطفی که کردین و جوابمو دادین خیلی متشکرم
با توجه به راهنمائیتان به آدرسی که گفته بودین رفتم و با نمونه های جالبی برخوردم
و این نمونه ها پیشرفته و خوب بودند از راهنمائیتان ممنونم
ولی استاد محترم میخواستم از خدمتتون بپرسم که آیا راهی نیست که این نمونه ها را به زبان فارسی یاد دهد و یا چگونه میشود این سیستم ذره ای را یاد گرفت،
بالاخره چون ما مثل شما حرفه ای نیستیم و اول کارمان است ، یادگیری به زبان فارسی شاید راحت تر باشد راهنمائی شما برای بنده که تازه کارم چیست
چگونه میتوانم به خوبی این نمونه ها و نمو نه های دیگر را یاد بگیرمو به طور کلی برای یاد گیری سیستم ذره ای آیا راهی به زبان فارسی وجود دارد و برای اینکه این سیستم را یاد بگیرم و خوب هم یاد بگیرم چکار باید بکنم
قبلا از لطفی که میکنین نهایت تشکر را دارم
ارادتمند رضا
سلام دوست عزیز
سعی می کنم به شرط بقا ، در آینده نمونه هایی از این دست را به عنوان موضوع آموزش ها انتخاب کنم
حال شما فعلا بهتر می باشد نمونه و سورس های مروبطه را دریافت و روی آنها کار کنید
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم خواستم بدین وسیله از لطفتون تشکر کنم
ما که آرزوی سلامتی و طول عمر با خوشی و شادی برایتان آرزو میکنیم تا افرادی مثل بنده از راهنمائیهایتان بهره مند شوندو نیز برای دیدن و یاد گرفتن این آموزشها لحظه شماری میکنیم
باز هم از لطفی که کردین نهایت تشکر را دارم
ارادتمند رضا
با سلام خدمت استاد محترم آقای پولاد رگ عزیز
رضا هستم که ایمیل میدم ببخشید که مزاحم اوقاتتون شدم
خواستم بدین وسیله از لطفی که کردین تشکر کنم ضمنا یه سوالی هم در مورد تویین لیت داشتم که اگر لطف بفرمایین و مرا راهنمائی کنین ممنون میشم
سوال بنده این است که استاد محترم در پلاگین یا نرم افزار تویین لیت موقعی که به اشیا حرکت میدهم این حرکات درست انجام میشود وحتی تکرار آنها هم صحیح است ولی نمیدانم چرا وقتی به بیش از دو شی ، مثلا به ۳ شی مختلف حرکت میدهم شی دوم ویا سوم ویا خلاصه یکی از اشیا در تکرار، یا حرکت ندارد و شی سوم اصلا تکرار نمیشود و یا تکرار حرکتهایش ناقص است میخواستم از شما خواهش کنم که مر راهنمائی کنید که اشکال کارم کجاست وچرا در بیش از دو شی مختلف یکی از اشیا تکرارش صحیح انجام نمیشود ضمنا من شی سوم را به یک لایه جدید دیگر کدهایش را منتقل کردم و کد شی سوم در لایه مجزائی قرار دادم ولی مشکل حل نشد حال استدعا میکنم که بنده را راهنمائی کنید که مشکل کار کجاست
و یک سوال کلی تر اینکه چطور به بیش از دو شی میتوان حرکات مختلفی را داد بطوری که این حرکات صحیح باشد و تکرار حرکات نیز بدرستی انجام شود و در تکرار حرکات ، شیئی حذف یا حرکاتش ناقص نشود ، و هم ، خود حرکات اشیا و هم تکرار حرکات اشیا بدرستی و صحیح و بدون خطا مثل اول تکرار شود.
لطفا بنده را راهنمائی بفرمایین که چکار باید بکنم واشکال کارم کجاست
منتظر راهنمائیتان هستم
قبلا از لطفتان نهایت تشکر را دارم ارادتمند رضا
سلام ، در نمونه همه کارها درست بود ، فقط scaleX , ScaleY به صورت Xscale , Yscale نوشته شده است که به صورت درست تغییر دهید.
ولی مشکل از اینجا نیست در تست بنده یکی از موارد کار نمی کند ، می توان برای آن مورد از TweenMax استفاده کنید به جای TweenLite بنویسید TweenMax که البته می بایست کلاس مربوطه در پوشه gs موجود باشد.
فکر می کنم مشکل از خود کلاس باشد ، با TweenMax فکر می کنم مشکل حل شود.
موفق و پیروز باشید.
با سلام خدمت استادعزیز آقای پولادرگ محترم
رضا هستم که کامنت میگذارم
خواستم به این وسیله از لطفتون تشکر کنم
از اینکه جواب سوالمو دادین نهایت تشکر و قدر دانی را دارم و خیلی متشکرم
استاد محترم با توجه به راهنمائیتان بنده به جای TweenLite در اول کل کدها در قسمتی که در اول ایمپورت میکنیم کلاس را ، در آنجا به جای آن TweenMax را نوشتم ولی به اول سطر هر کد تغییری ندادم یعنی در اول هر سطر کد که نوشته : TweenLite.to من این قسمت را تغییر ندادم و در محل قبلی که ذخیره میکردم ذخیره کردم ولی خطا میده که :
D:\Documents and Settings\reza\Desktop\lite\greensock-tweening-platform-as3\gs\TweenLite.as, Line 1 5001: The name of package ‘gs’ does not reflect the location of this file. Please change the package definition’s name inside this file, or move the file. D:\Documents and Settings\reza\Desktop\lite\greensock-tweening-platform-as3\gs\TweenLite.as
حالا نمیدانم که از محلی که فایل را ذخیره میکنم است یا نه ؟
ضمنا وقتی بنده اول سطر کدها را به TweenMax.to تغییر دادم و آنرا در محلی که نرم افزارTweenLite را ذخیره میکردم ذخیره کردم پیغام خطای زیر را داد :
D:\Documents and Settings\reza\Desktop\lite\greensock-tweening-platform-as3\gs\TweenMax.as, Line 966 1020: Method marked override must override another method.
حال استدعا میکنم که استاد محترم اگر ممکن باشد مرا دقیقا راهنمائی کنید که اشکال کارم کجاست و چه باید بکنم
ویا علت اینکه خطا میدهد چیست و برای رفع این مشکل چه باید بکنم که بیش از دو شی حرکات مختلفی داشته و تکرار حرکات نیز به درستی انجام شود طوری که یکی از اشیا در تکرار حذف یا کدهایش ناقص تکرار نشود و همه حرکات درست انجام شود و نیز تکرار حرکات نیز به طور صحیح انجام شود
از لطفی که میکنید نهایت تشکر و قدردانی را دارم
ارادتمند رضا
سلام با این کد تمامی موارد موجود ، که شامل TweenLite و TweenMax می شود را وارد می کند و می توانید از توابع آن استفاده کنید
همان طور که می دانید قبل از استفاده از توابع و متد مربوطه به یک کلاس می بایست import شود
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم
امیدوارم که خسته نباشید
خواستم از لطفی که کردین تشکر کنم و همچنین به عرضتان برسانم که :
استاد محترم با توجه به راهنمائیتان کد بالا را دادم ولی متاسفانه همان خطای بالا را میدهد :
D:\Documents and Settings\reza\Desktop\lite\greensock-tweening-platform-as3\gs\TweenMax.as, Line 966 1020: Method marked override must override another method.
نمیدانم که خطای مزبور بدلیل ساپورت نکردن کدها توسط تویین مکس است یا به چه دلیل دیگری؟
استاد محترم میخواستم با اجزتون سوال دیگری را که داشتم از خدمتتان بپرسم
سوال بنده این است که با توجه به کد زیر :
var tween3:Tween = new Tween(mc1, “rotationX”, Elastic.easeOut,0 ,360, 1, true);
که ایونت لیستنر این تویین۳ به شکل زیر است :
tween3.addEventListener(TweenEvent.MOTION_FINISH, startTween4);
میخواستم که چرخش محور ایکس این تویین به صورت خالص باشد و از خاصیت Elastic.easeOut در کد استفاده نکنم تا چرخش آن به صورت خالص و بدون خاصیت Elastic.easeOut انجام شود و موقعی که این خاصیت را از کدم حذف میکنم پیغام خطا میدهد که :
Scene 1, Layer ‘Layer 2′, Frame 1, Line 8 1067: Implicit coercion of a value of type int to an unrelated type Function.
حال سوال بنده از جنابعالی این است که استاد محترم چگونه میتوانم این حرکت چرخش را برای شیئم تعریف کنم که به صورت خالص و بدون خاصیت Elastic.easeOut انجام شود
لطفا در صورت امکان دقیقتر راهنمائی فرمائید تا منظورتان را بهتر متوجه شوم
از این همه لطفی که میکنید نهایت تشکر را دارم
ارادتمند رضا
سلام
مورد اول : فکر می کنم کلاس ناقص باشد و یا مشکلی دیگر که در وارد شدن اطلاعات اخلال ایجاد می کند ، شما در وب یک نمونه TweenMax پیدا کنید و از آن استفاده کنید.
مورد دوم : به جای Elastic از Regular استفاده کنید موردی هم با عنوان Strong وجود دارد….
در کل دسته های مختلفی وجود دارد که می تواند از آنها استفاده کنید ، برای اطلاعات بیشتر در این مورد می توانید در وب به Tween in as3 را جستجو کنید کنید با توجه به متعدد بودن این موارد نمی شود آنها را در اینجا ذکر کرد.
برای نمونه به این موارد مراجعه کنید :
http://www.zedia.net/actionscript-3-tweens-tutorial/
http://www.swamicharan.com/blog/flash/using-tween-class-in-flash-as3/
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
رضا هستم که کامنت میگذارم
امیدوارم که خسته نباشید از این همه سوالی که میکنم واقعا شرمنده ببخشین
غرض از نوشتن این کامنت عرض تشکر خدمت شماست
استاد محترم شما باز هم با لطفتون شرمندم کردین نمیدونم چه جوری ازتون تشکر کنم به خدا خیلی بزرگوارین که راهنمائیهاتون رو از من و امثالم دریغ نمیکنین و این جز با بزرگی و بزرگواری خود شخص تحقق نمییابد خیلی ازتون تشکر میکنم و یه معذرت خواهی هم بخاطر اینکه اذیتتون کردم و فقط در این محیط محدود و خشک اینترنت بیش از این نمیدونم چیکار کنم و چه جوری از لطفتون تشکر کنم تا شاید بتوان گوشه ای از این همه لطف را جبران کرد که به نظر بنده عمرا!!!
استاد عزیز از این همه لطفتون نهایت تشکر و قدردانی را دارم و امیدوارم همیشه سالم و سلامت و خوشحال باشین تا افرادی مثل بنده از راهنمائیهایتان بهره مند گردند
ارادتمند رضا
انجام وظیفه است دوست عزیز
موفق و پیروز باشید
سلام و خسته نباشید من ۳ تا سوال دارم
سوال اول برای اینکه یک عکس وقتی کلیک می کنیم در اکشن ۳ چه کدی باید داد تا عکس بزرگ شود.
سوال دوم بخواهیم منو رو کلیک کنیم و فایل swf رو بخواند در اکشن ۳
سوال سوم چه کدی باید وارد کرد فایل فلش به ممولتی مدیا تبدیل شود تا در سی دی Auto run شود.
سلام دوست گرامی
در مورد سوال اول می بایست با استفاده از رویدادها در اکشن اسکریپت ۳ رویداد کلیک را به عکس خود که قبلا آن را به MovieClip تبدیل کرده اید ، رویداد MouseEvent.CLICK را به آن بدهید :
myimage_mc.addEventListener(MouseEvent.CLICK , growSize); function growSize (e:MouseEvent):void { myimage_mc.scaleX +=1; myimage_mc.scaleY +=1; }سوال دوم فکر می کنم منظور شما load کردن یک swf خارجی External در فلش می باشد که می توانید این مورد را چک نمایید
import flash.net.URLRequest; import flash.display.Loader; import flash.events.Event; import flash.events.ProgressEvent; function startLoad() { var mLoader:Loader = new Loader(); var mRequest:URLRequest = new URLRequest(“MouseActions.swf”); mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler); mLoader.load(mRequest); } function onCompleteHandler(loadEvent:Event) { addChild(loadEvent.currentTarget.content); } function onProgressHandler(mProgress:ProgressEvent) { var percent:Number = mProgress.bytesLoaded/mProgress.bytesTotal; trace(percent); } startLoad();در مورد سوال ۳ می بایست در بخش Publish Setting فلش تیک مربوطه به exe را بزنید تا با زدن Publish یا دکمه f12 خروجی exe را داشته باشید
این فایل را می توانید برای مالتی مدیا استفاده کنید
برای Autorun بودن از همان فایل که با فرمت inf هست استفاده کنید و نام فایل exe درون آن را به نام فایل خود تغییر دهید
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید
رضا هستم که کامنت میگذارم
غرض از کامنتی که گذاشتم اینکه امروز داشتم با اکشن اسکریپت کار میکردم که به چند شی مختلف توسط خود اکشن اسکریپت حرکات مختلف میدادم که به مشکلی برخورد کردم که با مراجعه به سایتی که شما معرفی کرده بودید توانستم مشکل را حل کنم و به این خاطر لازم دونستم از لطفی که کردین و مرا راهنمائی کردین از شما تشکر کنم
استاد محترم از الطافتان نهایت تشکر را دارم
امیدوارم که همیشه سالم و سلامت وخوشحال باشین تا من و امثالم بتوانند از راهنمائیهایتان بهره مند شوند
ارادتمند رضا
سلام
انجام وظیفه است دوست عزیز
موفق و پیروز باشید
با سلام خدمت استاد محترم آقای پولادرگ عزیز
امیدوارم خسته نباشید
رضا هستم که کامنت میگذارم
خواستم بدین وسیله از لطفی که کردین و بنده را راهنمائی کردین ازتون تشکر کنم همچنین یه سوالی داشتم که میخواستم از خدمتتان بپرسم که اگه راهنمائیم کنین ممنون میشم
سوال بنده اینه که استاد محترم اگه یک شی را بخام به سیستم ذره ای تبدیل کنم باید چگونه آنرا نامگذاری کنم مثلا اسم شیم در کتابخانه mc است حال روی آن راست کلیک و گزینه linkage و بعد از آن کادر Export for actionscript را تیک زده و در کادر Class نام mc را نوشته و در کادر Base Class نوشته flash.display.MovieClip حال سوالم اینه که توی کادر بیس کلاس باید چه نامی را وارد کنم تا بتوان این شی را به سیستم ذره ای تبدیل کرد آیا باید حتما lynda.particales.Particale را وارد کنم تا این شی را به سیستم ذره ای تبدیل کنم ویا نه چگونه است که وقتی من هر نام دیگری را میدهم خطا میدهد ؟ آیا این نام باید هم نام فایل اکشن اسکریپتی باشد که برای نوشتن این کلاس در نظر گرفته ایم یا نه قاعده خاصی دارد خلاصه در مراحل ابتدائی ساخت سیستم ذره ای مشکل دارم
مثلا برای ساخت سیستم ذره ای یک فایل فلش در اول میسازیم و نیز یک فایل اکشن اسکریپت میسازیم تا در آن بتوانیم کدهای کلاس سیستم ذره ای را بنویسیم حال نام این فایل اکشن اسکریپت چه باید باشد چگونه باید باشد حروف ویا کلماتش و این فایل اکشن اسکریپت محل ذخیره اش نسبت به فایل فلشی که شی مورد نظر را در آن ساخته ایم در کجا باید ذخیره شود را نمیدانم ، از شما استدعا میکنم که مرا راهنمایی فرمایین
ضمنا در صورت امکان استدعا میکنم که مراحل اولیه ساخت سیستم ذره ای از ساختن فایل فلش اولیه تا مراحل نامگذاری و غیره را تا بتوان شی را به سیستم ذره ای تبدیل کرد را قدم به قدم دقیقا توضیح بفرمایین تا بنده منظورتان را بهتر متوجه بشم و بتوانم آنرا اجرا کنم لطفا مرا راهنمائی کنین که چکار باید بکنم
قبلا از راهنمائیتان نهایت تشکر و قدر دانی را دارم
ارادتمند رضا
سلام
در موردی که فرمودید شما در واقع با بیس کلاس مووی کلیپ خود را به یک پکیج کلاس نسبت می دهید که فرمان های درون آن که در نمونه شما در مسیرlynda.particales.Particale قرار دارد را در زمان افزوده شدن شی به صفحه با addChild اجرا می کند ، طبیعتا شما برای کار با این روش می بایست مسیر کلاس خود را در بیس کلاس وارد کنید
این امکان در اکشن ۳ می تواند خیلی از کارها را به خصوص برای پارتیکل ها راحت کند شما می تواند این کلاس را به چندید مووی کلیپ اختصاص دهید و حال یک مووی کلیپ هوشمند داشته باشید که با فرمان های از پیش تعریف شده نصبت به شرایط عکس العمل تعریف شده را داشته باشد.
در مورد پارتیکل ها برای توضیح نیاز به زمان زیاد می باشد که سعی می کنم در آینده مقالات کاملی در این زمینه آماده کنم.
موفق و پیروز باشید.