Autor |
Nachricht |
Sarky
Threadersteller
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Sa 21.06.2008 02:44
Titel [Flex 3] Komisches Verhalten beim Überblenden |
|
|
Hallo zusammen,
Flex treibt mich hier gerade in den Wahnsinn: Ich habe 3 Bilder, und möchte nach einer gewissen Zeit diese parallel ineinander überblenden lassen, immer in der selben Reihenfolge:
1 -> 2 -> 3 -> 1 -> 2 -> 3 -> 1 -> ...
Das funktioniert mit dem Code weiter unten im ersten Zyklus noch gut, doch danach kommt er völlig durcheinander und es schimmern immer wieder andere Bilder durch, die gar nicht zu sehen seien dürften:
So siehts aus
Das ist der Code:
Code: |
<?xml version="1.0" encoding="utf-8" ?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
width="865" height="380" styleName="plain"
layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.utils.Timer;
import flash.events.TimerEvent;
private var imageTimer: Timer;
private var currentImage: int;
private function init(): void
{
currentImage = 1;
imageTimer = new Timer(4000);
imageTimer.addEventListener(TimerEvent.TIMER, timerChangeImage);
imageTimer.start();
}
private function timerChangeImage(evt: TimerEvent): void
{
changeImage(currentImage + 1);
}
private function changeImage(no: int): void
{
if (no > 3)
{
no = 1;
}
if (no == 1)
{
currentState = 'One';
}
else
if (no == 2)
{
currentState = 'Two';
}
else
if (no == 3)
{
currentState = 'Three';
}
currentImage = no;
}
]]>
</mx:Script>
<mx:states>
<mx:State name="One">
<mx:SetProperty target="{p1}" name="visible" value="true" />
<mx:SetProperty target="{p2}" name="visible" value="false" />
<mx:SetProperty target="{p3}" name="visible" value="false" />
</mx:State>
<mx:State name="Two">
<mx:SetProperty target="{p1}" name="visible" value="false" />
<mx:SetProperty target="{p2}" name="visible" value="true" />
<mx:SetProperty target="{p3}" name="visible" value="false" />
</mx:State>
<mx:State name="Three">
<mx:SetProperty target="{p1}" name="visible" value="false" />
<mx:SetProperty target="{p2}" name="visible" value="false" />
<mx:SetProperty target="{p3}" name="visible" value="true" />
</mx:State>
</mx:states>
<mx:Parallel id="OneToTwo">
<mx:Fade target="{p1}" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>
<mx:Fade target="{p2}" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>
</mx:Parallel>
<mx:Parallel id="TwoToThree">
<mx:Fade target="{p2}" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>
<mx:Fade target="{p3}" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>
</mx:Parallel>
<mx:Parallel id="ThreeToOne">
<mx:Fade target="{p3}" duration="1000" alphaFrom="1.0" alphaTo="0.0"/>
<mx:Fade target="{p1}" duration="1000" alphaFrom="0.0" alphaTo="1.0"/>
</mx:Parallel>
<mx:Canvas>
<mx:Canvas id="p1" hideEffect="{OneToTwo}">
<mx:Image source="@Embed('images/test1.jpg')" />
</mx:Canvas>
<mx:Canvas id="p2" hideEffect="{TwoToThree}" visible="false">
<mx:Image source="@Embed('images/test2.jpg')" />
</mx:Canvas>
<mx:Canvas id="p3" hideEffect="{ThreeToOne}" visible="false">
<mx:Image source="@Embed('images/test3.jpg')" />
</mx:Canvas>
</mx:Canvas>
</mx:Application>
|
Wo liegt mein Fehler?
Danke für Eure Hilfe!
|
|
|
|
|
l'Audiophile
Dabei seit: 16.09.2004
Ort: Berlin
Alter: 43
Geschlecht:
|
Verfasst Sa 21.06.2008 12:19
Titel
|
|
|
Bin nur kurz drübergeflogen aber ich denke, wenn Methode „changeImage” die „4” als Parameter bekommt und sie dann in „1” umwandelt wird sie bei der nächsten Timerdurchlauf direkt auf „2” gesetzt, ergo existiert die „1” in der Aktion nicht und da kommt die ganze Schose aus dem Tritt. Versuch „changeImage” mal mit ’nem Switch-Case-ablauf zu lösen.
Oder das Ganze über Events lösen, der per Listener jedes mal triggert, wenn sich eine deiner Variablen ändert.
Ich kanns mir aber auch morgen oder Montag mal ausführlich angucken, wenn ich wieder nüchtern bin.
Zuletzt bearbeitet von l'Audiophile am Sa 21.06.2008 12:20, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Sarky
Threadersteller
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Sa 21.06.2008 15:05
Titel
|
|
|
Danke pejot, hatte aber nichts mit der changeImage()-Methode zu tun, wie ich inzwischen schmerzlich herausgefunden habe. Es lag am folgenden Teil:
Code: |
<mx:states>
<mx:State name="One">
<mx:SetProperty target="{p1}" name="visible" value="true" />
<mx:SetProperty target="{p2}" name="visible" value="false" />
<mx:SetProperty target="{p3}" name="visible" value="false" />
</mx:State>
<mx:State name="Two">
<mx:SetProperty target="{p1}" name="visible" value="false" />
<mx:SetProperty target="{p2}" name="visible" value="true" />
<mx:SetProperty target="{p3}" name="visible" value="false" />
</mx:State>
<mx:State name="Three">
<mx:SetProperty target="{p1}" name="visible" value="false" />
<mx:SetProperty target="{p2}" name="visible" value="false" />
<mx:SetProperty target="{p3}" name="visible" value="true" />
</mx:State>
</mx:states>
|
Der HideEffect eines Objekts wird _immer_ bei einer Zuweisung des visible-Attributs ausgeführt, auch wenn das Objekt bereits unsichtbar ist und ihm erneut visible="false" übergeben wird
|
|
|
|
|
|
|
|
Ähnliche Themen |
Hintergrundbilder überblenden
[AS3] Von einem MC in anderen überblenden
Suche Flash Freeware zum ÜBERBLENDEN
Falsh video mit div überblenden, der ie verschiebt den div
Flash-Intro auf Startseite überblenden
komisches Dateiformat
|
|