Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 03-01-2006, 12:09   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 186
Question Wo ist die Variable "this.iAlpha" hin?

Ich haben ein Container_mc für ein weiteren Hilfslinien_mc und einen MachUnsichtbar_btn geschrieben.

trace(this);
habe ich im MachUnsichtbar_btn hinterlegt.
Er gibt _level0.Container_mc aus

im Container_mc habe ich
onClipEvent(load){
var iAlpha = 10;
}

als Variable abgelegt.
auch hier gibt trace(this); _level0.Container_mc aus.
und trace(this.iAlpha); gibt auch brav 10 aus.


im MachUnsichtbar_btn habe ich folgenden Code hinterlegt
PHP-Code:
on (release) {

    
this.Hilfslinien_mc._alpha 20*Math.abs(this.iAlpha%10-this.iAlpha%5*2);
    
this.iAlpha++;

Eigentlich möchte ich, dass iAlpha beim Wert 5 ( ==> Hilfslinien_mc._alpha = 100%) weiterzählt. Die Formel lässt _alpha sinken und dann wieder steigen. (ZickZack-kurve).

Leider springt iAlpha beim ersten betätigen des MachUnsichtbar_btn auf 0 und zählt nicht weiter auf 6.

Ich möchte iAlpha nicht in _root inizialisieren, damit ich die Hilfslinie leichter kopieren und woanders einbauen kann. Damit würde aber alles problemlos laufen.

Wo und wie muss ich iAlpha richtig inizialisieren?

Gruß Mjchael

Geändert von mjchael (03-01-2006 um 12:13 Uhr)
mjchael ist offline   Mit Zitat antworten
Alt 04-01-2006, 23:28   #2 (permalink)
Virt
 
Registriert seit: Feb 2005
Beiträge: 26
das liegt an der formel. der erste wert ist da nunmal 0. initialisier iAlpha mit dem wert 6. dann sollte es gehen.
__________________
Gruss, der Virt

._/\.
(ô,Ó)
.[-].
+-v-+
| | |
m x m
_| |_
Virtualizer ist offline   Mit Zitat antworten
Alt 05-01-2006, 00:35   #3 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
weit und breit keon OOP zu sehn, deshalb verschoben.
eine frage im oop as2 bereich solte sich auch um selbiges drehen,
egal wie die veröffentlichungseinstellungen sind
michael ist offline   Mit Zitat antworten
Alt 05-01-2006, 01:58   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 186
Unhappy Die Antworten verwirren mich


Das Aktionscript selbst funktioniert... Die Hilfslinie wird blasser und wieder stärker. Nur springt er beim ersten mal immer auf 0

Übrigens, die Variable wurde mit 10 initialisiert...
onClipEvent(load){
var iAlpha = 10; //geschrieben zehn, nicht 0!!!!
}

Meine Frage war WO ich die Variable initialisieren muss.
Bei einem C, C++, JavaScript und JavaCode weiß ich meistens, wo ich die Variablen zu inizialisieren habe... Nur bei Flash kann ich mich nicht mehr auf das gelernte verlassen.

An der Schaltfläche, wo ich den Code untergebracht habe, konnte ich die Variable nicht inizialisieren.
Meldung... "diese Anweisung muss in einer on oder onClipEvent erstellt werden" oder so ähnlich.

OnClipEvent funktioniert aber nicht bei Schaltflächen.

Also frage ich mich, wo zum Kuckuck ich die Variable (außer in _root) initialisieren soll.

An welchem OBJEKT hänge ich die Variable dran?

Frage ich am MachUnsichtbar_btn nach this, dann wird mir als OBJEKT level0.Container_mc ausgegeben.
Also das gleiche was ich bei dem MachUnsichtbar_btn rausbekomme, der sich im Container befindet. Da sollte man doch annehmen, dass dort level0.Container_mc.Machunsichtbar_btn rauskommt...

Na, wenn das kein ObjektOrientiertes Problem bzw. ein Problem mit der ObjektOrientiertenProgrammierung sprich OOP ist, dann weiß ich es auch nicht.
Solltest du es mir nicht erklären können, dann bitte ich dich doch den Beitrag wieder zurückzuschieben, bis es ein anderer kann.

Ich habe nämlich keine Ahnung, um was für Objekte es sich bei den einzelnen Zeichnungen(mc, btn, Zeichenebene) handelt, und wie sie untereinander verschachtelt sind.



Gruß mjchael.
mjchael ist offline   Mit Zitat antworten
Alt 05-01-2006, 07:42   #5 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
Zitat:
Zitat von mjchael
Na, wenn das kein ObjektOrientiertes Problem bzw. ein Problem mit der ObjektOrientiertenProgrammierung sprich OOP ist, dann weiß ich es auch nicht.
Solltest du es mir nicht erklären können, dann bitte ich dich doch den Beitrag wieder zurückzuschieben, bis es ein anderer kann.
naja, im grunde ist die gesamte grundstruktur von flash auf objekte aufgebaut,
das bedeutet aber noch lange keine objekt orientierte programmierung.
im oop bereich geht es darum wie man neue klassen schreibt oder bestehende klassen erweitert.
michael ist offline   Mit Zitat antworten
Alt 05-01-2006, 09:04   #6 (permalink)
Virt
 
Registriert seit: Feb 2005
Beiträge: 26
Zitat:
Zitat von mjchael
Das Aktionscript selbst funktioniert... Die Hilfslinie wird blasser und wieder stärker. Nur springt er beim ersten mal immer auf 0

Übrigens, die Variable wurde mit 10 initialisiert...
onClipEvent(load){
var iAlpha = 10; //geschrieben zehn, nicht 0!!!!
}
also gut, rechnen wir es mal durch:

this.iAlpha%10 -> bei iAlpha=10 haben wir dann 10%10=0
this.iAlpha%5 -> bei iAlpha=10 haben wir dann 10%5 =0 , was sich mit 2 multipliziert kaum ändern wird

so, d.h. du bietest mit dem ersten mausklick folgende formel an:
20*Math.abs(0-0);

20 multipliziert mit 0 ist...na? richtig 0!

initialisier iAlpha mit einem anfangswert von 6. ich habs selber ausprobiert. der button geht von "ganz da" schrittweise runter auf "ganz weg" und dann wieder schrittweise auf "ganz da".

ich hoffe, diesmal war es nicht ganz so verwirrend
__________________
Gruss, der Virt

._/\.
(ô,Ó)
.[-].
+-v-+
| | |
m x m
_| |_
Virtualizer ist offline   Mit Zitat antworten
Alt 05-01-2006, 09:15   #7 (permalink)
Virt
 
Registriert seit: Feb 2005
Beiträge: 26
Zitat:
Zitat von mjchael
Meine Frage war WO ich die Variable initialisieren muss.

Also frage ich mich, wo zum Kuckuck ich die Variable (außer in _root) initialisieren soll.

An welchem OBJEKT hänge ich die Variable dran?
dadurch das du sie im Container_mc in onLoad initialisiert hast hast du sie dort rangehängt.
letztendlich ist es egal WO du die variable initialisierst, solange du beim zugriff auf diese den richtigen pfad berücksichtigst.
du hättest iAlpha also auch im ersten Frame im _root initialisieren und dann immer mit _root.iAlpha darauf zugreifen können.
du kannst sie aber auch in mc1.mc2.mc3 initialisieren und greifst dann halt mit mc1.mc2.mc3.iAlpha drauf zu.
solange du nicht streng OO programmierst ist das eigentlich wurscht.
der übersicht halber ziehe ich initialiserungen immer im root vor und hänge sie halt den pfaden entsprechend an den gewünschten mc.

hoffe das hat geholfen.
__________________
Gruss, der Virt

._/\.
(ô,Ó)
.[-].
+-v-+
| | |
m x m
_| |_
Virtualizer ist offline   Mit Zitat antworten
Alt 05-01-2006, 10:35   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2004
Beiträge: 186
Ein Fehler ist klar, das andere muss ein Bug sein...

Peinlich peinlich...
Klaro, dass ich nicht mit 10, sondern mit 5 initialisieren sollte

Aber ich hatte auch alle anderen Werte ausprobiert, bevor ich das Forum bemüht hatte... der Fehler blieb erhalten.

Mit _level0.mc1.mc2.kann ich einzeln mit trace(this); das Objekt mc2 bestimmen.
bei _level0.mc1.mc2.mc3_btn wird mir auf einmal
_level0.mc1.instance007.mc3_btn ausgegeben.

und was ich auch immer ausprobiert hatte und wo ich auch immer iAlpha initialisiert hatte
mit trace(this.iAlpha), und was ich sonst noch so abgefragt habe, kam regelmäßig die Fehlermeldung "undeffiniert"

einzige Außnahme, _root.iAlpha funktionierte immer.
============
Lösung:
habe das Fla in FlashMC gespeichert, mit einer älteren Version geöffnet,
Fehler war behoben.
Zurückkonvertiert, kein Fehler mehr zu sehen...

Danke für euere Mühe!

Gruß Mjchael

ps.: Frohes Neues

Geändert von mjchael (05-01-2006 um 10:40 Uhr)
mjchael ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele