load external swf + manage it

mohammad.sub7

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

مدیریت مثلاً قطع صدا فلش خارجی(external) یا رفتن به فریم دلخواه و ...

با این کد میتونیم مدیریت کنیم که swf خارجی که لود کردیم به چه فریمی بره

با یکم تغییر میتونیم مدیریت کنیم مثلاً صدا swf خارجی قطع یا وصل بشه.

PHP:
import flash.events.MouseEvent
btn.addEventListener(MouseEvent.CLICK , mohammad);
function mohammad(event:MouseEvent):void
{
function loader(swfURL){
var myLoader:Loader = new Loader();
var sub7:URLRequest = new URLRequest(swfURL);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, CompleteHandler);
myLoader.load(sub7);
 
}
 
function CompleteHandler(loadEvent:Event)
{ 
      addChild(loadEvent.currentTarget.content);
      loadEvent.currentTarget.content.gotoAndStop(swfFrame);
}
 

 var swfFrame:Number=20;
loader("1.swf");
}

اول اینکه: نیاز به توضیحات نداره خیلی ساده هست​


دوم اینکه : خیلی جای کار داره فعلاً آزمایشی هست بعداً باید کامل بشه​



 
آخرین ویرایش:

Member
من تازه وارد AS3 شدم و جدیداً با فانکشن ها زیاد کار کردم و فکر میکنم دلیل خاصی برای قراردادن فانکشن ها قبل از دستور فرا خوانیشون وجود داره البته لیسنر ها چون در همون لحظه فراخوانی نمیشن استثتا هستن ولی بهتر نیست ترتیب همیشه رعایت بشه؟

بگذریم . اینم اد کردن با قابلیت مشخص کردن موقعیت
PHP:
function addCard(xpose:Number,ypose:Number) {
    var card_mc:card = new card();
    card_mc.x=xpose;
    card_mc.y=ypose;
addChild(card_mc);
}
فراخوانی
PHP:
addCard(150,200);
فکر کنم اگه یه کلاس بنویسید مفیدتره
 

Member
برای اینکه بتونید آبجکت ادد شده رو کنترل کنید کافیه پراپتی اسم رو بهش اضافه کنید
PHP:
card_mc.name=("card_mc");
و بعد با صدا کردن اسم کنترل کنید
PHP:
card_mc.play();
شاید براتون این سوال پیش بیاد که چرا توی کد قبلی این رو نذاشتم؟ جواب خیلی ساده است چون وقتی که خودم دنبال یاد گیری این چیزا بودم دوستان کلی کد پیچیده بهم نشون میدادن که ترجمه اش برام مشکل بود
دوستانی که میخوان کدی رو آموزش یدن لطف کنن مراعات تازه کارها رو بکنن و تا حد امکان ساده و قدم به قدم پیش برن تا کسی جا نمونه
 

mohammad.sub7

کاربر فعال
اینکه 1 کلاس باشه رو موافقم.

اما این کد هایی که گفتید و نفهمیدم. اینا چه ربطی به مدیریت فایل swf external داره!
 

nip

New Member
آقا محمد ممنون با کم و زیاد کردن parent تونستم به چیزی که می خوام دسترسی پیدا کنم از زحمتی که کشیدی ممنون.
 

mohammad.sub7

کاربر فعال
خواهش میکنم . خوبه.


آقا ناصر مدت زیادی هست از نزدیک میشناسمتون شما استاد بنده بودی و هستی

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

Member
اینکه 1 کلاس باشه رو موافقم.

اما این کد هایی که گفتید و نفهمیدم. اینا چه ربطی به مدیریت فایل swf external داره!

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

nip

New Member
اینم سورس کاری که کردم البته استاندارد نیست ولی کار راه اندازه
 

پیوست ها

  • source.rar
    2.5 مگایابت · بازدیدها: 70

nip

New Member
محمد سلام مجدد
فایل قبلی رو اصلاح کردم
این یکی با یه دستور ساده می تونی به root فایل لود کننده دسترسی پیدا کنی .

در واقع هم از parent به child لود شده و هم از child به parent دسترسی پیدا کنی.
سورس کاملا گویاست و فکر نکنم نیازی به توضیح باشه.
 

پیوست ها

  • source 2.rar
    79.5 کیلوبایت · بازدیدها: 35

nip

New Member
یه زمانهایی هست که دستورات گفته شده در این زمینه درست عمل نمی کنه که معمولا زمان خروجی گرفتن از swf لود شونده خطای "'http://fpdownload.adobe.com/pub/swz/crossdomain.xml' " رخ میده و یکی از مشکلات دیگر اینجور فایلها اینه که هنگامی که swf را به تنهایی اجرا می کنیم اگر فریم اول دستور ()stop داشته باشد با راست کلیک کردن و زدن گزینه () play تایم لاین ما حرکت نمی کنه راه حل اون هم اینه که در قسمت publish setting در تب flash کلید setting مقابل action script 3 را زده و از پنجره باز شده در تب library Path گزینه default linkage را روی merge into code قرار میدیم. مشکلش اینجور حل میشه . ولی نمی دونم عوارضی داره یا نه اگه کسی میدونه بگه.
 

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

بالا