2016-07-06 12 views
2

Ich bin neu in Actionscript so bitte mit mir blank :)Wie werden mehrere externe SWF-Dateien korrekt geladen?

Okay, also ich bin gerade dabei, ein interaktives Spiele zu erstellen. Ich habe jetzt 6 SWF-Dateien müssen geladen werden und ich muss es nacheinander abspielen.

Ich habe eigentlich eine viel Frage zu diesem Thema, und hier sind sie

erste Frage :): Wie kann ich eine externe SWF-Datei nach einer filmischen Szene laden?

In meinen 3rd SWF-Dateien habe ich eine cinematic Szene und es wird ungefähr 30 Sekunden beendet sein. Ich kenne die Verzögerungsmethode, aber funktioniert sie reibungslos, wenn ich sie bereits auf meine Website hochgeladen habe?

2. Frage: Wie alle externen Dateien geladen werden, bevor Benutzer das Spiel beginnen?

Wie kann ich alle meine SWF-Dateien auf einmal laden, bevor der Benutzer das Spiel spielen kann?

Hier ist ein Teil Probe meiner Code:

import flash.events.MouseEvent; 
import flash.display.MovieClip; 
import flash.display.Loader; 
import flash.events.Event; 
import flash.net.URLRequest; 

var myClip:MovieClip = root as MovieClip; 
var externalClip:MovieClip; 
var myLoader:Loader = new Loader(); 
var myLoader1:Loader = new Loader(); 

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,  loaderCompletedHandler); 


function loaderCompletedHandler(evt:Event):void { 
externalClip = myLoader.content as MovieClip; 
externalClip.ext_btn.addEventListener(MouseEvent.CLICK,extCommunicate); 

    function extCommunicate(evt:MouseEvent):void { 
    trace("TEST"); 
    myLoader1.contentLoaderInfo.addEventListener(Event.COMPLETE, thirdloaderCompletedHandler); 
    var newstring:String = "third.swf"; 
    var newREQ:URLRequest = new URLRequest(newstring); 
    addChild(myLoader1); 
    myLoader1.load(newREQ); 
    myLoader1.x=40; 
    myLoader1.y=20; 
    removeChild(myLoader); 
    } 
} 

function thirdloaderCompletedHandler(evt:Event):void { 
    trace("YEAH"); 
} 

var externalString:String = "external.swf"; 
var urlREQ:URLRequest = new URLRequest(externalString); 

playbtn.addEventListener(MouseEvent.CLICK,swfLoad); 
function swfLoad(evt:MouseEvent):void { 
    addChild(myLoader); 
    myLoader.load(urlREQ); 
    myLoader.x=40; 
    myLoader.y=20; 
} 

3. Frage: Ist der obige Code ist der richtige Weg, um mehrere SWF-Dateien zu laden?

Vielen Dank im Voraus Jungs.

Antwort

2

Viele Fragen ... (1) können Sie viele SWF-Dateien verketten sie durch Rahmen Aktionen Laden, nicht durch AS3. Auf diese Weise stellen Sie sicher, dass der nächste Film erst geladen wird, wenn der vorherige Film zu Ende gegangen ist. Oder, in Ihren Worten, laden Sie nur den nächsten Film, nachdem die erste "filmische" Szene endet. Verwenden Sie daher keine "Verzögerungen", da dies je nach Benutzerkonfiguration in Bezug auf Rechner und Bandbreite zu sehr unterschiedlichen Ergebnissen führt.

(2) Sie können alle Filme auf die gleiche Weise vorab laden, wie Sie einen einzelnen Film laden würden, es ist nur der Fall, den richtigen Code zu schreiben, prüfen, ob movie1 geladen wurde, dann movie2 und so weiter.

(3) Testen Sie Ihren eigenen Code und verifizieren Sie, ob es funktioniert. Wenn nein, holen Sie so viel wie möglich über Fehlermeldungen und Bedingungen und öffnen Sie eine andere Frage hier bei StackOverflow, die das gesamte Szenario aufdeckt, was Sie haben, was Sie bekommen und was Sie erwarten. Beste

+0

Vielen Dank für Ihre Antwort Ich schätze es. Die Filmszene ist nur auf meiner 2. swf (nicht 3.) Datei. Und die anderen swf-Dateien werden durch eine moonevent-Aktion geladen. Dies wird das Szenario sein - Main SWF haben Play-Taste, die das 2. SWF laden - 2. SWF Cinematic-Szene haben und wird das 3. SWF danach laden. - 3. bis 6. swf lädt auch durch einen Klick auf eine Schaltfläche. –

+0

Danke. Das ist es, du hast es verstanden. Laden Sie zuerst, bei "play" laden Sie cinematic und legen Sie am Ende eine Frame-Action dort, um den 3. zu laden. Film. Kehre bald mit deinen Ergebnissen und Zweifeln zurück und werde mich freuen, wenn ich dir weiterhelfen kann (viele Nächte vorher ActionScript). Aber, neue Fragen ... diese ist vorbei :) – statosdotcom

+0

Vielen Dank. Ich hab es geschafft. Wie wäre es mit dem Laden aller SWF-Dateien auf einmal? Kannst du mir einen Hinweis geben, wie das geht?Momentan lade ich nur die einzelnen SWF-Dateien auf Benutzerinteraktion (außer 3. swf). Ich habe versucht, es auf meiner Website zu spielen, aber die Last dauert zu lang für jede SWF-Datei. –