Archief - Preloader van container met externe file

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bigone

Legacy Member
Hey, onlangs heb ik ergens een scriptje gedownload voor het afspelen van video/afbeeldingen in je volledige browser, nu roept hij een file op "test.swf" die een video is van 1,7Mb die in je achtergrond loopt, na uren en uren (zoniet dagen) zoeken vind ik maar geen preloader die ook deze file (test.swf) preload vooraleer alles te tonen

Code:
Stage.scaleMode = "noScale";
Stage.align = "TL"; // TL = Top Left

// Tween
import mx.transitions.Tween;
import mx.transitions.easing.*;

// Enkele benodigde variabelen
var nImgWidth:Number;
var nImgHeight:Number;
var nScale:Number;

// Bij het inladen van de afbeelding maak ik gebruik van de MovieClipLoader
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object= new Object();
listener.onLoadInit = function(mc:MovieClip):Void
{
	nImgWidth = mc._width;
	nImgHeight = mc._height;
	scaleImage();
};



loader.addListener(listener);

// Nieuwe mc aanmaken
this.createEmptyMovieClip("mcPhoto", this.getNextHighestDepth());



loader.loadClip("test.swf", mcPhoto);

// Functie die bepaald hoe er geschaald moet worden
function scaleImage():Void
{
	if ( Stage.height/Stage.width > nImgHeight/nImgWidth)
	{
		nScale = nImgWidth/nImgHeight;
		mcPhoto._height = Stage.height;
		mcPhoto._width = Stage.height*nScale;
	}
	else
	{
		nScale = nImgHeight/nImgWidth;
		mcPhoto._height = Stage.width*nScale;
		mcPhoto._width = Stage.width;
	}
}

// Een listener die checkt of de Stage geschaald wordt
// Indien de Stage geschaald wordt, wordt de afbeelding ook opnieuw geschaald en wordt het menu opnieuw correct gepositioneerd
var myListener:Object = new Object();
myListener.onResize = function():Void
{
	scaleImage();

	// Menu opnieuw positioneren
	menuX = new Tween(mcMenu, "_x", Strong.easeOut, mcMenu._x, 250, 1, true);
	menuY = new Tween(mcMenu, "_y", Strong.easeOut, mcMenu._y, 400, 1, true);
};
Stage.addListener(myListener);

// Menu balkje laden
this.attachMovie("menu", "mcMenu", this.getNextHighestDepth());
mcMenu._alpha = 80;
mcMenu._x = 150;
mcMenu._y = 300;

kan iemand hulp bieden?

j design

Legacy Member
Aangezien niemand een idee heeft ga ik het eens proberen.

Als je nu:
Een preloader maakt op de pagina,
op de moment dat alles geladen is (laatste frame van de loader)
dan laad je de swf in.

Ik denk dat het op deze manier wel te doen is.

Het is niet echt wat jij moet hebben maar ik denk dak ik in mijn vorig portfolio zoiets had.
http://users.telenet.be/jonastoch
bij portfolio ed wordt pas op 100% mijn "portfolio"swf geladen.
Het is mss een idee

n00bslayer

Legacy Member
j design zei:
Aangezien niemand een idee heeft ga ik het eens proberen.

Als je nu:
Een preloader maakt op de pagina,
op de moment dat alles geladen is (laatste frame van de loader)
dan laad je de swf in.

Ik denk dat het op deze manier wel te doen is.

Het is niet echt wat jij moet hebben maar ik denk dak ik in mijn vorig portfolio zoiets had.
http://users.telenet.be/jonastoch
bij portfolio ed wordt pas op 100% mijn "portfolio"swf geladen.
Het is mss een idee
Da's juist wat de topicstarter probeerde te bereiken met z'n MovieClipLoader, via de actionscript manier ipv op de volledig timeline-gebaseerde manier.

On topic:
Code:
var listener:Object= new Object();
listener.onLoadInit = function(mc:MovieClip):Void
{
    nImgWidth = mc._width;
    nImgHeight = mc._height;
    scaleImage();
};
Is het hier niet de bedoeling dat je movieclip van waaruit je alles laadt (this) luistert en reageert op zijn events?
Code:
this.onLoadInit = function(mc:MovieClip):Void
{
    nImgWidth = mc._width;
    nImgHeight = mc._height;
    scaleImage();
};
Bij het ontwikkelen met actionscript (2, 3, actionscript of timeline based) vind ik het Gaia Flash framework een zéér nuttige aanvulling van m'n flash ontwikkelomgeving. Kopzorgen met preloaden en vele andere zaken behoren hiermee tot het verleden. :) Kan ik je alleen maar aanraden dus bij het ontwikkelen van multimediale toepassingen.

j design

Legacy Member
Code:
stop();

onEnterFrame = function () { 
pro = Math.round((getBytesLoaded()/getBytesTotal()) * 100)+"%"

  
if (getBytesLoaded() == getBytesTotal()) {
    delete onEnterFrame;
    gotoAndPlay(2); 
}
};

Dit is toch niet gebaseerd op de timeline?
Ipv naar een ander frame te springen kan je evengoed een swf overladen.

Ik kan fout zijn, maar het was wel on topic

n00bslayer

Legacy Member
j design zei:
Code:
stop();

onEnterFrame = function () { 
pro = Math.round((getBytesLoaded()/getBytesTotal()) * 100)+"%"

  
if (getBytesLoaded() == getBytesTotal()) {
    delete onEnterFrame;
    gotoAndPlay(2); 
}
};
Dit is toch niet gebaseerd op de timeline?
Ipv naar een ander frame te springen kan je evengoed een swf overladen.

Ik kan fout zijn, maar het was wel on topic
Met on topic bedoel ik dat ikzelf terug on topic ga :p
In je code stop je de timeline tot de swf zelf volledig ingeladen is, waarna je de timeline terug start vanaf frame 2.

j design

Legacy Member
Ja, maar, dan kan je toch een loadMovieNum inzetten ipv naar een ander frame te gaan.
Neemt wel niet weg dat de lijn idd stopt.
Flash is weer al even geleden..

Owkey :) np
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan