Antworten auf deine Fragen:
Neues Thema erstellen

Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

waldmannvonritter

Nicht mehr ganz neu hier

Hallo zusammen,

ich habe mehrere landschaften im parallax-effekt erstellt. Es sind insgesammt sieben landschafften. durch eine pfeilnavigation wechselt man zwischen den landschaften was durch einen kleinen flug simuliert wird. ansich funktioniert alles wunderbar und fehlerfrei nur ist die swf mittlerweile ca. 12 MB groß. das projekt habe ich in as3 programmiert.

meine frage wäre ..

1. ist es möglich nur bestimmte frames beim start zu laden und den rest im hintergrund laden zu lassen, weil der film nämlich schon sehr lange braucht um geladen zu werden. da ja der gesammte film auf einmal geladen wird.

2. oder macht es mehr sinn aus jeder landschaft eine swf zu erstellen und die dann per klick erst zu laden.

(im moment sieht man beim flug keine ladebalken oder unterbrechungen und das ist der haken, ich will nämlich keinen sehen. es soll flüssig laufen wie bis jetzt.)

An der komprimierung habe natürlich schon rumgeschraubt.

bin für jeden tip dankbar
 

MrAzrael

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

Hi,

ich nehm mal an dein swf ist teils auch durch die Grafiken so groß, oder?
Wenn ja, ist 1. grundsätzlich möglich, da du ja jede Grafik über ein Loader lädst und dem ja einen LoaderEvent mit anhängen kannst,

bei dem du dann sagst, wenn der 1. Teil startet oder so und soviel % vom ersten Teil geladen sind, dann lade das nächste Bild, ist das nächste Bild geladen Starte diese Sequenz und immer so weiter

Bei 2. wirst du glaub dann auch nicht anders Verfahren können, denn wenn du alle swf-Files gleichzeitig durch einen Preloader laden lassen würdest, würde ja wieder die Downloadgeschwindigkeit langsamer und somit würde sich die Wartezeit bis der 1. Film startet ja auch wieder verzögern

aber nicht drauf festnageln, mit AS3 beschäftige ich mich erst seit einem halben Jahr, kann sein das der ein oder andere da besssere Lösungsansätze hat, die mich auch interessieren würden, denn ich hab bisher bei Projekten mit über 7MB Größe auch auf Methode 1 gesetzt
 

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

hallo,

12mb ist schon ne grosse menge. ich würde sagen zuerst solltest du mal die grafiken aufbereiten, da kannst du sicher sehr viel raus holen.

dann ist es sinnvoll jedes einzelne bild als eigenes swf zu speichern und bei bedarf zu laden oder mit einem sequenziellen loader das ganze zu laden, so das der user ein bild sieht und im hintergrund wird der rest geladen.

je nachdem wie fit du mit AS3 bist, kannst du auch das fla als swc exportieren und die elemente zur laufzeit hinzufügen. (das wäre dann bestimmte bereiche einer fla laden)

gibt einige wege aber du solltest wirklich schauen, dass die bilder kleiner werden (fullscreen bild 1680x1050 kann in einer guten auflösung < 500kb sein)

hoffe das hilft dir weiter
 

waldmannvonritter

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

Habe das script mit den loadern erweiter und hat super geklapt. Nun ist aber etwas sehr interressantes passiert ....

Ich weis aber nicht ob das von vornherrein so war, nämlich ...

der film ruckelt bei sämtlichen bewegungen... und das ganz schön heftig ?!?! bei mir selber allerdings nicht. nur bei fremden rechnern (browserunabhängig).

nur bei pcs mit einer guten rechenleistung und einer starken graka lief der film sauber ab ... ist das normal ? hab eine version ohne loaderfunktion hochgeladen weil ich sehen möchte obs daran lag. vieleicht hat ja einer von euch lust sich das mal anzuschauen.

-> Preview

nicht wundern, die welten sind nocht komplett. fehlt hier und da noch feinschliff.

gruß waldmannvonritter
 

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

aber hallo. das wird was ganz schönes :)

aber ruckelt leicht auch bei mir auf einem recht starken PC. das liegt wirklich an den grossen bildern. evtl hilft es wenn du in der bibliothek bei den bildern das "Glätten zulassen" aktivierst.

was mir allgemein bei animationen aufgegallen ist, ist das wenn die animation langsam ist und der unterschied zweischen der X und Y verschiebung klein ist, dann ruckelt es. zBsp: verschiebung X von 0 nach 500px und Y von 50 nach 52, das ganze über 5 sec. sowas kommt nicht so gut.
 

waldmannvonritter

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

so... hab das mit dem glätten ausprobiert und muss sagen, hat einiges bewirkt.

hat eigentlich schonmal jemand von euch mit den z-ebenen gearbeitet. es ist nämlich so, das ich bei "Pegasus" 2 welten nach links von der startwelt aus, den wasserfall im hintergrund durch partikeleffect austauschen will.

den wasserfall habe ich nun schon nur ist der pur in actionscript ohne movieclips. wenn ich den nun einbinde funktioniert er zwar, aber von der scrollgeschwindigkeit her läuft er so schnell mit wie meine vorderste ebene. (z 0).

dann hab ich ein leeren mc erstellt und in ihm das script eingebunden. dem mc dann die passende z-tiefe (wie dem wasserfall) verspasst, aber dennoch bewegt sich der partikelwasserfall wie meine vorderste ebene... jemand spontan ne idee ?


>> habs mit dem wasserfall hochgeladen, damit ihr euch mal ein bild machen könnt.
-> www.waldmannvonritter.de

gruß waldmannvonritter
 
Zuletzt bearbeitet:

MrAzrael

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

schick schick :)

nur das mit dem Wasserfall hab ich noch nicht ganz verstanden was du genau vor hast, vielleicht hab ich grad auch nur ne lange Leitung
 

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

meinst du mit der Z tiefe, die reihe in der displaylist? falls ja, kannst du da hin und her wechseln wie du willst ( swapChildren, getChildAt..... )
 

waldmannvonritter

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

Ne, ich poste mal den link mit dem paralaxtutorial, dann versteht jeder was ich damit meine. .. hoffe ich ;)



... nach diesem Prinzip habe meine welten aufgebaut. Und nun will ich den wasserfall integrieren, nur ist der aber kein objekt sondern nur ein script.

grüße waldmannvonritter
 
Zuletzt bearbeitet:

MrAzrael

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

da heb ich mal die Hände in der Richtung hab ich noch nix gemacht in Flash und hab daher null Plan :D
 

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

ah jetzt hab ich kapiert was du meinst

dein wasserfall script ist auch ein object. zwar nicht in flash sichtbar wie ein movieclip aber trotzdem ein object.

so ungefähr könnte das denn ausschauen:

var _wasserFall:WasserFall = new WasserFall();
_wasserFall.z = 560;
addChild(_wasserFall);

WasserFall kann eine eigene Klasse sein oder ein element in der library mit dem bezeichner WasserFall.

hoffe das hilft

gruss
 

waldmannvonritter

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

jaaa das war es :lol: dankeschön ... hätte ich selber draufkommen müssen xD

mein code hat ja schon so ausgeschaut -...

waterfall = new Waterfall(200,400,true);
waterfall.x = 400;
waterfall.y = 90;
waterfall.z = 249; <- hab ich nur hinzufügen müssen lol
PegasusMainMc.Pegasus.addChild(waterfall);
waterfall.startFlow();

danke, jetzt kann ich mich wieder der performance wittmen.

gruß waldmannvonritter
 

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

sauber ;-) freu mich dann auf das endergebniss
 

waldmannvonritter

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

hmm ich da ne schwierigkeit ....

das mit dem wasserfall hat super geklapt, nur warum werden alle objekte die ich vor dem wasserfall platziere (überschwämmt) :'( ?

ich wollte nämlich am fuße des wasserfalls nochmal eine kleine nebelbank platzieren, damit man die gerade kannte nicht sieht.

Aber jeder versuch ist gescheitert. Jemand ne idee warum das so ist ?

- Z-Ebenen stimmen, hab die in beide richtungen ausprobiert.



hier al der code vom wasserfall
---------------------------------
package com.flashandmath.dg.display {

import flash.display.*;
import flash.events.*;
import flash.filters.*;
import flash.geom.*;
import com.flashandmath.dg.objects.*;
import com.flashandmath.dg.display.RainDisplay;

public class Waterfall extends Sprite {
public var blur:BlurFilter;
public var colorFade:ColorTransform;
public var dropsToAddEachFrame:int;
public var bgColor:uint;
public var angle:Number;
public var display:RainDisplay;
public var leftMargin:Number;
public var topMargin:Number;
public var waterTopWidth:Number;
public var displayHeight:Number;
public var displayWidth:Number;

public var minAngle:Number;
public var maxAngle:Number;
public var minMagnitude:Number;
public var maxMagnitude:Number;

public var flowOn:Boolean;

private var _dropAlpha:Number;
private var _splashDropAlpha:Number;
private var _targetColor:uint;
private var _fadeAmount:Number;
private var magnitude:Number;
private var origin:point;
private var bitmapData:BitmapData;
private var bitmap:Bitmap;

public function Waterfall(_displayWidth=650, _displayHeight=400, transparency = false) {

super();

origin = new Point(0,0);
dropsToAddEachFrame = 8;

displayHeight = _displayHeight;
displayWidth = _displayWidth;
topMargin = 20;
leftMargin = 2;
waterTopWidth = 235;

minAngle = Math.PI/12;
maxAngle = Math.PI/3;
minMagnitude = 0.7;
maxMagnitude = 1.3;

_splashDropAlpha = 0.3;
_dropAlpha = 0.45;

display = new RainDisplay(displayWidth,displayHeight,false);

blur = new BlurFilter(3,3);

_targetColor = 0x33B2FF;
_fadeAmount = -1;

var colorTargetR:Number = (_targetColor >> 16);
var colorTargetG:Number = (_targetColor >> 8) & 0xFF;
var colorTargetB:Number = _targetColor & 0xFF;
colorFade = new ColorTransform();
colorFade.redMultiplier = Math.pow(colorTargetR/255,0.03);
colorFade.greenMultiplier = Math.pow(colorTargetG/255,0.03);
colorFade.blueMultiplier = Math.pow(colorTargetB/255,0.03);
colorFade.alphaMultiplier = 1;
colorFade.alphaOffset = _fadeAmount;

/*
display.defaultDropColor = 0xffffff;
display.randomizeColor = false;
*/

/*
display.colorMethod = "random";
*/

/*
display.colorMethod = "gradient";
display.gradientColor1 = 0xaaaaff;
display.gradientColor2 = 0xffffff;
*/


display.colorMethod = "gray";
display.minGray = 0.9;
display.maxGray = 1;


display.defaultDropThickness = 1;
display.splashThickness = 1;
display.gravity = 0.1;

display.initialVelocityVariancePercent = 0.5;
display.initialVelocityVarianceX=0;
display.initialVelocityVarianceY=0;
display.dropLength = "long";

display.defaultDropAlpha = _dropAlpha;
display.splashAlpha = _splashDropAlpha;
display.splashMaxVelX = 0.8;
display.splashMinVelX = -0.8;
display.splashMinVelY = 0.4;
display.splashMaxVelY = 1.8;

display.minSplashDrops = 2;
display.maxSplashDrops = 3;

display.removeDropsOutsideXRange = false;

if (transparency) {
bitmapData = new BitmapData(display.displayWidth, display.displayHeight, true, 0x00000000);
}
else {
bitmapData = new BitmapData(display.displayWidth, display.displayHeight, false, 0x000000);
}

bitmap = new Bitmap(bitmapData);
bitmap.x = 0;
bitmap.y = 0;
this.addChild(bitmap);

display.wind = new Point(0,0);

flowOn = false;

this.addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageListener);
this.addEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
}

private function addedToStageListener(evt:Event):void {
//When waterfall is added to stage, we start the animation.
this.stage.addEventListener(Event.ENTER_FRAME, onEnter);
}

private function removedFromStageListener(evt:Event):void {
//If the waterfall is removed from the stage, we should stop animating it.
this.stage.removeEventListener(Event.ENTER_FRAME, onEnter);
}

public function set dropAlpha(a:Number):void {
_dropAlpha = a;
display.defaultDropAlpha = _dropAlpha;
}

public function get dropAlpha():Number {
return _dropAlpha;
}

public function set splashDropAlpha(n:Number):void {
_splashDropAlpha = n;
display.splashAlpha = _splashDropAlpha;
}

public function get splashDropAlpha():Number {
return _splashDropAlpha;
}

public function set targetColor(c:uint):void {
_targetColor = c;
var colorTargetR:Number = (_targetColor >> 16);
var colorTargetG:Number = (_targetColor >> 8) & 0xFF;
var colorTargetB:Number = _targetColor & 0xFF;
colorFade = new ColorTransform();
colorFade.redMultiplier = Math.pow(colorTargetR/255,0.03);
colorFade.greenMultiplier = Math.pow(colorTargetG/255,0.03);
colorFade.blueMultiplier = Math.pow(colorTargetB/255,0.03);
colorFade.alphaMultiplier = 1;
colorFade.alphaOffset = _fadeAmount;
}

public function set fadeAmount(n:Number):void {
_fadeAmount = n;
colorFade.alphaOffset = _fadeAmount;
}

public function set noSplashes(b:Boolean):void {
this.display.noSplashes = b;
}

public function get noSplashes():Boolean {
return this.display.noSplashes;
}

public function startFlow():void {
flowOn = true;
}

public function stopFlow():void {
flowOn = false;
}

private function onEnter(evt:Event):void {
if (flowOn) {
//add water drops
for (var i:int = 0; i <= dropsToAddEachFrame-1; i++) {
angle = minAngle + Math.random()*(maxAngle - minAngle);
magnitude = minMagnitude + Math.random()*(maxMagnitude - minMagnitude);
var thisDrop = display.addDrop(
leftMargin+waterTopWidth*Math.random(),
topMargin,
magnitude*Math.cos(angle),
-magnitude*Math.sin(angle));
}
}

//update drops
display.update();

bitmapData.colorTransform(bitmapData.rect, colorFade);
bitmapData.applyFilter(bitmapData,bitmapData.rect,origin,blur);

bitmapData.draw(display);
}
}
}
-----------------------------------------------------------------------


"config datei" vom wasserfall
-------------------------------
import com.flashandmath.dg.display.*;

var waterfall:Waterfall;

init();

function init():void {
waterfall = new Waterfall(900,525,true);
waterfall.x = 593;
waterfall.y = 20;
waterfall.z = 250;
addChild(waterfall);
waterfall.startFlow();
}
--------------------------------------------------------------------

hoffe es kann jemand was damit anfangen.


grüße waldmannvonritter
 

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

ich vermute mal, dass hat mit der position in der displaylist zu tun.
überprüfe mal auf welchem index der wasserfall in der displaylist steht. ich vermute der ist ganz vorne, weil es per AS erstellt wird.

versuch mal anstatt addChild(waterfall); folgendes zu machen
addChildAt(waterfall, 3); die zahl steht für den index wo er sein soll, also hinter der maske
 

waldmannvonritter

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

Sooo ... die welten sind fertig. :)

Preview

aber ... :D

mir find das mit der maus etwas doof, das nach der landung sich die welt gleich bewegen kann. ist auch nerfig falls mann sich mit der maus irgendw am rand befindet, scrollt gleich nach der landung alles los ...

kann man der maus irgendwie nen befehl verpassen dass die sich nach der Landung in der mitte befindet und ca. für 0.5 sec. nichts bewegbar ist damit nicht alles gleich losrennt.


--------

hab bemerkt das die falsche datei hochgeladen war. habs grad neu hochgeladen ^^ sry...

gruß an alle, waldmannvonritter
 
Zuletzt bearbeitet:

tukinu

Fotografiert

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

die maus selber gehört zum betriebssystem. da kannst du nichts machen... zumindest habe ich nie was davon gehört.

du kannst aber sehr wohl den enterframe, der das bewegen macht später starten.

so neben bei... sieht cool aus
 

MrAzrael

Nicht mehr ganz neu hier

AW: Bestimmte bereiche einer fla laden und den rest im hintergrund. geht das ?

:) also in der Schule würd man glaub sagen, Idee und Ausführung 1+
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.564
Beiträge
1.538.064
Mitglieder
67.487
Neuestes Mitglied
MichaelSEivy
Oben