| Autor |
Nachricht |
Sarky
Moderator Threadersteller
Dabei seit: 29.06.2002
Ort: Stuttgart
Alter: 26
Geschlecht:
|
Verfasst Sa 21.06.2008 03: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!
|
|
| |
|
 |
pejot
Dabei seit: 16.09.2004
Ort: Das Brighton Deutschlands
Alter: 27
Geschlecht:
|
Verfasst Sa 21.06.2008 13: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 pejot am Sa 21.06.2008 13:20, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
Sarky
Moderator Threadersteller
Dabei seit: 29.06.2002
Ort: Stuttgart
Alter: 26
Geschlecht:
|
Verfasst Sa 21.06.2008 16: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 |
Flash-Intro auf Startseite überblenden
DW: Verhalten bei Links
Text mit Verhalten versehen...
Dreamweaver Verhalten on mouse klick
Merkwürdiges Verhalten mit meinen Frames!
Seltsames Verhalten einer Seite im Safari
|
 |