अद्यतन:
विकल्प 1. फ्लैश आईडीई, एक swf फ़ाइल
जब साथ संकलन एक एम्बेडेड preloader हो करने के लिए फ्लैश आईडीई, आपको अपने Document Class
कोड को अपनी एफएलए फ़ाइल के दूसरे फ्रेम (निश्चित रूप से पैकेज और क्लास कन्स्ट्रक्टर के बिना) ले जाना चाहिए, और Document Class
को हटाएं। गुण निकालें।
stop(); // stops the timeline at preloader frame
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
function onProgress(e:ProgressEvent):void {
var percent:Number = Math.round(e.bytesLoaded/e.bytesTotal * 100);
//additional code to update preloader graphics
//..
if (percent == 100) onLoaded();
}
function onLoaded() {
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
nextFrame();
}
एक बार swf लोड किया जाता है, यह अगले फ्रेम करने के लिए अग्रिम और मूल आवेदन प्रवर्तन कोड निष्पादित किया जाना चाहिए: पहले फ्रेम में आप इस तरह के कोड से देना चाहिए। यह अच्छी तरह से काम करता है यदि आपने अपनी परियोजना को इस तरह से व्यवस्थित किया है कि अधिकांश संपत्तियां (छवियां, आदि) फ्लैश आईडीई लाइब्रेरी में हैं और पहले फ्रेम पर लोड नहीं हैं (आप प्रत्येक लाइब्रेरी आइटम की गुणों में इसे देख सकते हैं)।
विकल्प 2. फ्लैश आईडीई, दो SWF फ़ाइलें
एक अन्य विकल्प, पहले से ही एक और टिप्पणीकार द्वारा सिफारिश के रूप में, आपके आवेदन swf रखने के रूप में यह है, और एक अन्य हल्के swf कि पहले एक लोड होगा बनाने के लिए है । पहले फ्रेम में preloader.swf की कोड:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
loader.load(new URLRequest("path/to/application.swf"));
function onProgress(e:ProgressEvent):void
{
var percent:Number = Math.round(e.bytesLoaded/e.bytesTotal * 100);
//additional code to update preloader graphics
//..
if (percent == 100) onLoaded();
}
function onLoaded():void
{
loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
var application:DisplayObject = loader.content;
addChild(application);
}
कभी-कभी इस दृष्टिकोण के साथ अतिरिक्त समस्या, जब आप अपने Document Class constructor
आदि से stage
तक पहुँचने का प्रयास कर रहे हैं, लेकिन ज्यादातर मामलों के लिए यह काम कर देना चाहिए।
विकल्प 3. विभिन्न आईडीई, मेरी सिफारिश:FlashDevelop
आप FlashDevelop, फ्लैश बिल्डर या किसी अन्य आईडीई के साथ अपने मूल पोस्ट कोड को संकलित करने की कोशिश की है, तो यह काम करना चाहिए।
मूल पोस्ट:
यहाँ एक एम्बेडेड preloader के लिए एक बुनियादी सेटअप है।आपका Document Class
इस तरह दिखना चाहिए:
package {
import flash.display.Sprite;
[Frame(factoryClass='Preloader')] //class name of your preloader
public class Main extends Sprite {
public function Main() {
//init
}
}
}
Preloader कक्षा:
package {
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.ProgressEvent;
import flash.utils.getDefinitionByName;
public class Preloader extends MovieClip {
public function Preloader()
{
//add preloader graphics
//check loading progress
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
}
private function onProgress(e:ProgressEvent):void
{
var percent:Number = Math.round(e.bytesLoaded/e.bytesTotal * 100);
if (percent == 100)
{
this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
onLoaded();
}
}
private function onLoaded():void
{
nextFrame(); //go to next frame
var App:Class = getDefinitionByName("Main") as Class; //class of your app
addChild(new App() as DisplayObject);
}
}
}
OnProgress फ़ंक्शन को निष्पादित नहीं कर रहा है .... :( –
आप किसी भी त्रुटि मिलता है? आप प्रीलोड करना और अपने 'दस्तावेज़ Class' के प्रारंभ के बारे में अपने कोड दिखा सकते हैं? – package
नहीं मैं कोई त्रुटि संदेश और मेरा डॉक्यूम नहीं मिलता है एंट क्लास बिल्कुल वही है जैसा आपने कहा था। –