افزونه 1 جلوگيري از لود مجدد swf

moonch

Member
سلام به همه. من داخل فلش می خوام یک swf فراخوانی کنم. مشکلم اینه که می خوام وقتی یکبار لود تموم شد، بره به فریم300 بعد نه اینکه مجددا لود بشه. اما متاسفانه هر کاری می کنم نمیشه. يه مشكل كلي هم دارم. اينكه متاسفانه نميشه تو اين سايت مطلب مورد نظر رو سرچ كرد.من با هر كي وردي مي زنم هيچ موردي به من نمي ده واسه همين مجبور مي شم مبحث تازه بزنم.



[PHPS]
var var1:Boolean = true;var1.addEventListener(Event.event, loading)function loading(evt:Event):void { if (var1= true) { var loader0:Loader = new Loader(); } loader0.load(new URLRequest("films/intro.swf"));addChild(loader0); else { gotoAndPlay(300); } } loader0.contentLoaderInfo.addEventListener(Event.COMPLETE, finish); function finish(evt:Event):void { var1= false; }[/PHPS]​
 
این کدی که نوشتی عجیب ترین کد روی زمینه ! متغیر بولین رو لیستر لودینک بهش منتصب کردی ! بابا تو دیگه کی هستی !
کاری نداره این کار
اولا صفحه استوب میکنی
لودر رو صدا میزنی لود میکنی و بعد یک لیستر به لودر میدی که اگه لودت کامل شد برو به فریم 300 .. گودلاک من !
کد:
stop()
بعد لودر
var l:loader= new loader()
l.load()
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotoframe300);

       function gotoframe300(e:Event)
gotoAndPlay(300)
        {
 

moonch

Member
سلام. من قبلا همین راه رو رفتم نتیجه کار اینه که همون اول میره به فریم 300. در واقع تایع به محض اینکه لود فیلم شروع میشه، اجرا می شه و میره به فریم 300.
 

moonch

Member
یه روشی که امتحان کردم باز نتیجه نداد این بود که وقتی مقدار لود شده با مقدار کل برابر شد بگم بره فریم 300. وقتی این مقادیر رو تریس می کنم همون 2 ثانیه اول ، این مقادیر با هم برابر می شن. نمی دونم داستان از چه قراره.
[PHPS]var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus);




myLoader.load( new URLRequest("films/intro.swf"));
addChild(myLoader);


function onProgressStatus(e:progressEvent) {

trace(e.bytesLoaded, e.bytesTotal);
}


[/PHPS]
 
ببین بعد از ایمکه لود تموم شد یادم رفت برات بنویسم یک اینتروال بنداز و بعد روت رو پلی کن اوکی ؟
اینم کد دوباره مینویسم
درصورتی که نتوسنسی فایلتو آپلود کن تا بررسی کنم منم
کلا یک نکته رو بدون همیشه تو اکشن 3 زمانها و ایونت ها رو برای اینکه درست و مطمعن باشی که اجرا میشه سعی کن اگثرا از اینتروال برای کارای مختلف استفاده کنی ... فک میکنم این مشگکل کارت بود اگه درست شد یک تشکر بچلووووون !
کد:
stop() بعد لودر var l:loader= new loader() l.load()             loader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotoframe300);               {

  function gotoframe300(e:Event)
{
setInterval(_play,500)
}


function _play()
{
gotoAndPlay(300)
}
 
آخرین ویرایش:

moonch

Member
فک کنم کار خودتونه در نهایت!!آپلود کردم. منتها دیگه intro.swf رو آپلود نکردم.
 

پیوست ها

  • main.rar
    5.6 مگایابت · بازدیدها: 12
تو فریم یکت دقیقا این کد ها رو بزار و خروجی بگیر مشکلت حل میشه ... آدرس فایل رو من فقط یادم رفت از تو جی بود آدرسی که باید لود شه رو خودت عوض کن... کلا آماتوری توی اکشن 3 .. خیلی فایلت ایراد داشت ... خیلی ناپخته نوشته ای و طراحی کردی .. پرحجم و مدل طراحی فریمی ! ماله عهد قجرعلی شاه این مدل فلش درست کردن ! لطفا چزوه های بیشتری در مورد شی گرایی و و کلاس ها توی اکشن 3 بخون .. خیلی به کارت میاد و اگه یاد بگیری کارایی که تصورش هم نمیکردی بشه و ایتقدر راحت بشه رو میتونی بکنی ... همین مجید مطالب آقای مدیر انجمن هادی رو دانلود کن و بخون تا پیشرفت کنی .. اکشن 3 رو هنوز نگرفتی چیه به نظرم ! ضمنا کتابخانه های مورد نظر رو همیشه توی فایلهات اضافه کن که نکرده بودی .. اینم یک نکته ! موفق باشی درود
کد:
import flash.net.URLRequest;
import flash.display.Loader;
import flash.system.fscommand;
import flash.events.Event;
import flash.utils.setInterval;

/*stop();

var my_loader0:Loader = new Loader();
my_loader0.load(new URLRequest("films/intro.swf"));
addChild(my_loader0);*/
 //my_loader0.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loading);

     
// function loading(e:ProgressEvent):void{
    // if  ( e.bytesLoaded== e.bytesTotal)
    
// var percentageLoader:Number = new Number(e.bytesLoaded) ;
//gotoAndPlay(300);
//trace(percentageLoader);
//}


/* var myLoader:Loader = new Loader();



myLoader.load( new URLRequest("films/intro.swf"));
 addChild(myLoader);

 function onProgressStatus(e:ProgressEvent) {   
     
      trace(e.bytesLoaded, e.bytesTotal); 
}*/
stop();
fscommand("fullscreen", "true");

 var  myLoader:Loader= new Loader() 
 myLoader.load( new URLRequest("intro.swf")); // به جاش آدرس فایل خودتو بزار ... همه چی دیگه ازین نظر درسته مشکلی باشه دیگه ایراد از فایل خودته 
 myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, gotoandplay300);
 

   function gotoandplay300(e:Event)
{
    setInterval(_play,100)
}

function _play() {
addChild(myLoader);
gotoAndStop(300);
}
 

moonch

Member
سلام. متاسفانه اصلا مشکل حل نشد. حتی برای اطمینان من این کدها رو تو یه فایل جدید گذاشتم و امتخان کردم ولی باز هم swf فراخوانی شده تکرار می شد و به فریم 300 نمی رفت.
 
سلام. متاسفانه اصلا مشکل حل نشد. حتی برای اطمینان من این کدها رو تو یه فایل جدید گذاشتم و امتخان کردم ولی باز هم swf فراخوانی شده تکرار می شد و به فریم 300 نمی رفت.

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

moonch

Member
سلام برای اینکه این مشکل ایجاد نشه بهتره swf رو با flv پلیر نمایش بدیم. skin رو از نوع none انتخاب می کنیم. فقط در این صورت یه مشکل بوجود میاد که اون هم اینه که وقتی از کامپوننت flv استفاده میشه نباید کد فول اسکرین رو بزاریم. برای فول اسکرین در نهایت باید فایل فلش رو با نرم افزارهای جانبی مثل swfkit فول اسکرین کرد.
 

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

بالا