Weergegeven resultaten: 1 t/m 6 van 6
  1. #1
    Member Arcko_Drazen's schermafbeelding
    Lid sinds
    23/11/05
    Locatie
    Schoten
    Berichten
    559
    iTrader
    3 (100%)

    FLASH: Inladen external.swf laat complete clip zien (niet enkel stage resolutie)

    Greetings

    Om aan te vatten, de url: http://www.arckodrazen.com/neher (sorry nog geen preloader, je zal even moeten wachten)

    Klik daarna op "transport". Je zal zien dat er een filmpje inlaad en toont. Dit is gedaan aan de hand van een external.swf (naam is wel anders maar maakt niet uit).

    Je ziet al direct het probleem. De witte 1pixel rand = de echte ingestelde stage size (800px x 500px). Nu, op dat extern filmpje draait een animatie die gebruik maakt van een wereldkaart (2000px x 2000px).

    Zoals je ziet, laat de ingeladen clip <alles> zien en niet enkel hetgeen in de witte kader, wat wel zo is als je enkel external.swf afspeelt.

    Wat ik reeds geprobeerd heb: een mask te zetten op extern.swf, maar mask wel gemaakt in main website. Werkt niet naar behoren.

    Mask gezet over content in extern.swf, maar dit maar in external.swf zelf. Doch als de clip ingeladen wordt, zie je dat de clip verschoven staat (zelfde situatie als nu, maar dan met een mask over de map waar het essentiele deel is).

    Hoe los ik dit fenomeen op?

    Actionscript:
    Code:
    _root.createEmptyMovieClip("img_mc", 999);
    var my_mcl:MovieClipLoader = new MovieClipLoader();
    
    // Create listener object:
    var mclListener:Object = new Object();
    
    mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
        swfholderpreloader_mc.percent_txt.text = Math.round((numBytesLoaded/numBytesTotal) * 100) + "%";
    	var numPercentLoaded:Number = numBytesLoaded / numBytesTotal * 100;
        trace("onLoadProgress: " + target_mc + " is " + numPercentLoaded + "% loaded");
    };
    
    mclListener.onLoadInit = function(){
    	swfholderpreloader_mc._visible = false;
    	swfholderpreloader_mc.percent_txt.text = "";
    }
    
    my_mcl.addListener(mclListener);
    
    transport_mc.onRelease = function(){
    	swfholder_mc._visible = true;
    	my_mcl.loadClip("transport2.swf", swfholder_mc);
    }
    Alvast bedankt voor jullie hulp!
    arckodrazen.com

  2. #2
    Member squan's schermafbeelding
    Lid sinds
    29/03/04
    Locatie
    Zulte / Gent
    Berichten
    4.114
    iTrader
    13 (100%)
    Heb je je mask vanuit actionscript aangemaakt of niet?

    Ik dacht dat ik vroeger ook eens eenzelfde probleem had, en had het toen opgelost door vanuit actionscript een mask te plaatsen eenmaal de swf ingeladen was in plaats van op de stage al een mask te zetten.

    Maar 't is wel al een tijdje geleden ...

  3. #3
    Member Arcko_Drazen's schermafbeelding
    Lid sinds
    23/11/05
    Locatie
    Schoten
    Berichten
    559
    iTrader
    3 (100%)
    Heb ik net getest. Zelfde resultaat als met een mask in de timeline.

    Code ter referentie:
    Code:
    mclListener.onLoadInit = function(){
    	swfholderpreloader_mc._visible = false;
    	swfholderpreloader_mc.percent_txt.text = "";
    	swfholder_mc.setMask(swfholdermask_mc);
    }
    Nog voorstellen? Ben eigenlijk ten einde raad. Zou het graag opzoeken op internet maar heb me al rot gezocht. Blijkbaar niemand die zo'n probleem eerder had. Of ik weet toch niet hoe ik het in google moet intikken.

    Mvg
    Arcko D

  4. #4
    Member Arcko_Drazen's schermafbeelding
    Lid sinds
    23/11/05
    Locatie
    Schoten
    Berichten
    559
    iTrader
    3 (100%)
    Iemand nog een idee'tje?

  5. #5
    Member squan's schermafbeelding
    Lid sinds
    29/03/04
    Locatie
    Zulte / Gent
    Berichten
    4.114
    iTrader
    13 (100%)
    Misschien een bruut idee, maar je zou ook gewoon een stuk van je achtergrond met een stuk uitgesneden als png kunnen bewaren en zo boven je mc kunnen plaatsen waarin de movie geladen wordt.

    Dus gewoon de achtergrond boven de movieclip, maar dat wat zichtbaar moet zijn uitknippen en bewaren als png of gif zodat je transparantie kan gebruiken.

  6. #6
    Member Arcko_Drazen's schermafbeelding
    Lid sinds
    23/11/05
    Locatie
    Schoten
    Berichten
    559
    iTrader
    3 (100%)
    Ik heb mijn probleem gisterennacht nog opgelost met wat wiskunde.

    -- In external.swf;
    heb ik een box met border van 1px gemaakt, die exacte grote van Stage heeft.
    heb ik 2 vars gemaakt , die constant naar de X en Y waarden van die box poll't.

    Code:
    var stageX:Number = box_mc._x;
    var stageY:Number = box_mc._y;
    
    trace(stageX);
    trace(stageY);
    -- In main.swf;
    controleer ik nadat external.swf is ingeladen wat de X en Y waarden zijn van die box. Blijkbaar waren dat positieve waarden ergens in de 300.
    heb ik een mask gemaakt ter grote van Stage van external.swf

    Dan: swfHolder (waar de external.swf in laadt), haal X en Y waarden op (dit zijn de werkelijk X en Y waarden met alle "extra" dinges die we normaal niet zien als we external.swf stand-alone afspelen).
    Dan pas ik volgende berekening toe:

    swfHolder_mc._x -= swfHolder_mc.StageX (ik trek dus de waarde van de var die constant wordt gemeten van de box in external.swf af van zijn werkelijke grote)

    Zelfde met de y waarden

    Code:
    mclListener.onLoadInit = function(){
    	swfholderpreloader_mc._visible = false;
    	swfholderpreloader_mc.percent_txt.text = "";
    	swfholder_mc._x -= swfholder_mc.stageX;
    	swfholder_mc._y -= 	swfholder_mc.stageY;
    }
    Hopelijk is dit genoeg voor een latere referentie

    Mvg
    Arcko D

Discussie informatie

Users Browsing this Thread

Op dit moment bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •