Adobe Flash Flash Navigationen

S

sevY

Hi zusammen,

ich habe vorhin eine PN bekommen, in der man mich fragte, wie man eine Navigation in Flash baut. Mit mehreren Datensätzen. Und wie man das ganze lernen kann. Wahrscheinlich dynamisch.

Das ist dann so eine Sache… jetzt beginnt dann der Unterschied zwischen Hobby „Flash“ und ernsthafter Flashentwicklung. Ohne weiteres und in „AS Anfängermodus“ ist das ganze nicht zu realisieren…

Gute Bücher die in diese Thematik einführen sind beide Bücher von Colin Moock und sämtliche Bücher von Matthias Kannengießer. Letztere mag ich nicht so und habe sie mir nach kurzem Überfliegen auch nicht gekauft, jedoch hört man nur Gutes über sie.

Damit man ungefähr weiß, was auf einen zukommt wenn man SQL, PHP und Flash für solche Dinge benutzt, poste ich mal ein etwas aus dem Zusammenhang gerissenes Script meines aktuellen Projektes… sind noch ein paar Unsauberheiten enthalten, aber im Prinzip spiegelt das den Kern einer Navigationsstrukturinstanzierung aus SQL wieder.

PHP:
//Actionscript


	var firstGroup=new itemOwnerGroup();
	_root.elements.createEmptyMovieClip('level2',1);
	var sender=new LoadVars()
	sender.object=this;
	sender.root_id=_global.key_id-level_id;	
	sender.sendAndLoad('query.php', sender, 'POST');
	sender.onLoad=function(success)
		{
		if (success)
			{
			var base_y=-65;
			var base_x=-465;		
			for (var i=0; i<this.repeats; i++)
				{			
				var CompClip=itemOwnerClass.createSymbol(_root.elements.level2, 'level2_'+i, i, firstGroup);				
				CompClip.id=eval('this.id_'+i);
				CompClip.root_id=eval('this.root_id_'+i);
				CompClip.date=eval('this.date_'+i);
				CompClip.name=eval('this.name_'+i);
				CompClip.image=eval('this.image_'+i);
				CompClip.link=eval('this.link_'+i);
				CompClip.txt=eval('this.text_'+i);
				CompClip._x=base_x;
				CompClip._y=base_y+(i*20);
				CompClip.onRelease=function()
					{
					this.group.switchSelection(this);								
					var secondGroup=new itemOwnerGroup();
					_root.elements.createEmptyMovieClip('level3',2);					
					var sender2nd=new LoadVars()
					sender2nd.object=this;
					sender2nd.root_id=this.id;	
					sender2nd.sendAndLoad('query.php', sender2nd, 'POST');
					sender2nd.onLoad=function(success)
						{
						if (success)
							{
							for(var j=0; j<this.repeats; j++)
								{						
								var CompClip2=itemOwnerClass.createSymbol(_root.elements.level3, 'level3_'+j, j, secondGroup);
								CompClip2.id=eval('this.id_'+j);
								CompClip2.root_id=eval('this.root_id_'+j);
								CompClip2.date=eval('this.date_'+j);
								CompClip2.name=eval('this.name_'+j);
								CompClip2.image=eval('this.image_'+j);
								CompClip2.link=eval('this.link_'+j);
								CompClip2.txt=eval('this.text_'+j);
								CompClip2._x=base_x+125;
								CompClip2._y=base_y+(j*20);
								CompClip2.onRelease=function()
									{
									this.group.switchSelection(this);
									_root.varChar(this.name, this.date);
									_root.elements.createEmptyMovieClip('level4',3);
									var sender3rd=new LoadVars()
									sender3rd.object=this;
									sender3rd.root_id=this.id;
									sender3rd.sendAndLoad('query.php', sender3rd, 'POST');
									sender3rd.onLoad=function(success)
										{
										if (success)
											{
											for(var k=0; k<this.repeats; k++)
												{
												var CompCont=_root.elements.level4.attachMovie('content','content'+k,k);
												CompCont.id=eval('this.id_'+k);
												CompCont.root_id=eval('this.root_id_'+k);
												CompCont.date=eval('this.date_'+k);
												CompCont.name=eval('this.name_'+k);
												CompCont.image=eval('this.image_'+k);
												CompCont.link=eval('this.link_'+k);
												CompCont.txt=eval('this.text_'+k);
												CompCont.loadMovie(eval('this.image_'+k));
												CompCont._x=base_x+325;
												CompCont._y=base_y+(k*100);
												}
											delete this.object['sender3rd'];
											}
										}								
									}
								}
							_root.elements.level3.level3_0.onRelease();
							delete this.object['sender2nd'];
							}						
						}
					}
				_root.elements.level2.level2_0.onRelease();
				delete this.object['sender'];				
				}	
			}
		}


Liebe Grüße

Yves
 
puh ... das wird hart. :(

hab eben bei amazon.de geguckt. du meinst a) ActionScript für Flash MX - Das Handbuch und b) ActionScript für Flash MX - Die Referenz?
 
Ja die beiden. Wenn du in Englisch fit bist, hol dir die Originalausgaben. Die deutschen kenne ich nicht und kann dir nichts zur Übersetzung sagen. Scheinen aber auch gelungen zu sein.


Die beiden sollen gut sein:

http://www.amazon.de/exec/obidos/AS...05/sr=1-14/ref=sr_1_11_14/028-1881811-9068524

http://www.amazon.de/exec/obidos/AS...1905/sr=1-1/ref=sr_1_11_1/028-1881811-9068524


Das muss nicht sein, wird aber später interessant:

http://www.amazon.de/exec/obidos/AS...1905/sr=1-5/ref=sr_1_11_5/028-1881811-9068524


PHP und MySQL sind die Standards erforderlich…

PHP Scripts dazu sehen dann in etwa so aus:

PHP:
<?php
require_once('cms/config.inc.php');
require_once('cms/function.inc.php');
$i=0;
$read=mysql_query("select * from $db_tab where root_id='$_POST[root_id]' order by id asc",$handler);
while($a=mysql_fetch_array($read))
    {
    $result.='&id_'.$i.'='.$a['id'];
    $result.='&root_id_'.$i.'='.$a['root_id'];
    $result.='&date_'.$i.'='.$a['date'];
    $result.='&name_'.$i.'='.workaround::replace(strtoupper($a['name']));
    if(!empty($a['image']))
        {
        $result.='&image_'.$i.'='.$file_source.$a['image'];
        }
    $result.='&link_'.$i.'='.$a['link'];
    $result.='&text_'.$i.'='.workaround::replace(strtoupper($a['text']));
    $i++;
    }
$result.='&repeats='.$i;
echo utf8_encode($result);
?>

Du musst einfach mal ein wenig herumschauen, ich kann ja nur das schreiben, was ich persönlich denke. Angefangen habe ich mit den ganzen Sachen was PHP, AS, MySQL angeht vor gut 8 Monaten im Sept. 2003. Allerdings ohne Bücher, eher autodidaktisch.

Wenn du dir einen soliden, disziplinierten Plan zum lernen machst, dann kannst du das recht schnell beherrschen.

Mir ging (geht) es so, das ich mittlerweile die Syntax und Funktionen sowie arbeitsweise praktisch verstanden habe und mir meine eigene Arbeitsweise/Stil angewöhne.

Bücher denke ich, diktieren immer ein wenig den Stil des Autors, was eigentlich immer sehr sauber und kompetent ist.

Bevor ich Bücher gelesen habe, habe ich halt relativ groben Schweinecode geschrieben. Das funktionierte zwar, war aber teilweise übermäßig kompliziert und hatte hier und da logische Unzulänglichkeiten.
Derzeit bin ich dabei, meine Art des Programmierens auf ein sauberes Level zu bringen (Thema OOP, Prototyporientiert).


Du solltest vor dem Kauf auch überlegen, ob du vielleicht direkt mit AS2 und Flash MX 2004 anfangen möchtest. Die o.g. Bücher sind alle noch AS1 und Flash MX6.

Ich finde 2004 hat schon hier und da echte Vorteile, aber alles was man fürs Web, wenn man viel Wert auf Design und nur die typische Datendynamik legt, braucht, kann MX 6 sehr gut. Ich werde auch in nächster Zeit nicht nach MX 2004 wechseln.


Foren die meine Lernziele erheblich begleitet und unterstüzt haben sind www.flashforum.de und www.flashhilfe.de . Wenn du dort deinen eigenen Lösungsansatz und nicht alá „hier mach ma eben, ich kann das nicht“ postest, sind die User dort total nett, hilfsbereit und sehr kompetent.

Die o.g. Buchautoren schreiben u.a. in diesen Foren.

Ich selbst bin auch noch längst nicht am Ende und muss noch ne Menge, Menge lernen. Wenn man den Einstieg einmal geschafft hat, klappt es aber nach und nach denke ich, und dann bist du dann irgendwann inside.

Wichtig fand ich, immer alles zu verstehen was man codet, gerade wenn einem geholfen wird und man die Lösung des Helfers erst für undurchsichtig hält. Nur so kommst du weiter.

Es gibt auch 2,3 User hier im Forum, die recht weit vorn sind was Flash angeht, einer von ihnen postete mal, das er nicht unbedingt sehr viel von Büchern hält.

Du musst halt deine eigene Lernmethodik entwickeln und sehen, was und wie es am besten zu dir passt.

Was übrigens auch eine Menge bringt, wenn du das PHP, SQL und AS Referenzzeugs sowie die entsprechenden Handbücher liest. Das verschafft dir schon eine Menge Wissen und Überblick über die Materie.

Referenz und Handbuch von Flash sind bei der Software dabei, den Rest gibt es auf php.net und mysql.org .


Viel Erfolg.

Liebe Grüße

Yves
 
danke für deine antworten, ich muss jetzt erstmal gucken was ich brauche bevor ich planlos bücher kaufe.
 
Original geschrieben von aresius
danke für deine antworten, ich muss jetzt erstmal gucken was ich brauche bevor ich planlos bücher kaufe.
&nbsp;

Am besten du fängst ersteinmal mit Tutorials und den Foren und ein wenig Selbstverständnis an. Wenn Fragen sind, helfe ich dir so gut es geht weiter. Und dann kannst du ja entscheiden, wo du ein ordentliches Pensum an Wissen brauchst und danach deine Bücher auswählen.
Die meisten Flashbücher sind meiner Meinung nach in 2 Kategorien geteilt. Actionscript für Entwickler und Actionscript für Designer. Funktionell und toll sind die Entwicklungsgeschichten, weil das nicht jeder macht. Aber richtig interessant und vorallem spannend sind die Designsache. Zb. Partikelsimulationen in Flash usw.

Liebe Grüße

Yves
 
Zurück
Oben Unten