Volledige versie bekijken : Actionscript 3 vragen!
publikum
%Europe/Berlin %876 %2010, 22:02
Ik gebruik flash nu heel wat jaar en ben eigenlijk nooit echt van mijn eigen stijl afgestapt. Ik ben anderhalf jaar teug overgestapt naar AS3 en eigenlijk gek genoeg heb ik mij nooit verdiept in het gebruik van Classes. Terwijl dit AS3 heel sterk maakt. Ik wil AS3 optimaal kunnen benutten, want ik ben nog steeds van mening dat flash "de shit" is zeg maar :).
Hieronder een aantal vragen. (misschien erg basis)
Wanneer gebruik je nu wel of niet een preloader? Ik ben van mening dat met de huidige gemiddelde bandbreedtes dit niet altijd nodig is. Ik neem aan wel bij het laden van een externe swf of data uit een xmlbestand of een map. En is het nognodig om de website aan het begin voordat je naar de home-pagina gaat te preloaden?
Wat is een package en wanneer pas je die toe? Ik denk zelf een class/extern actionscript die je oproept in je .swf.
Stel ik schrijf een class voor een button. die kan ik dan met linkage koppelen aan een .swf. hoef ik dan geen andere ascode in mijn swf te plaatsen? En wat is hier het nut van om de as extern te laden?
Wanneer is iets een private function en wanneer een public function?
Wat is precies de functie van OOP?
Ik heb hier een voorbeeld gemaakt van een vierkantje die ik met as heb getekend. Nu wil ik de volgende keer zeg maar dat asscriptje aan roepen want dan hoef ik niet elke keer als ik een vierkantje maak die regels te schrijven ( ja dit is een klein script en kost geen moeite maar meer als voorbeeld als een script 100 regels heeft ). Hoe roep ik die dan aan en wat zet ik in de swf neer bij actions?
var vierkant:Shape = new Shape();
vierkant.graphics.lineStyle(1, 0xFF0000, 1);
vierkant.graphics.beginFill(0x000000,1);
vierkant.graphics.drawRect(0, 0, 200, 100);
vierkant.graphics.endFill();
addChild(vierkant);
Ik hoop dat jullie mij een handje op weg kunnen helpen, alvast bedankt.
e.l.dam
%Europe/Berlin %922 %2010, 23:08
Je stelt wel erg veel vragen waar heel veel over te vertellen is en ook op het forum al heel veel over staat. Misschien is het een idee om een keer wat te googlen op de onderwerpen die je hier noemt, want anders gaat iedereen herhalen wat in andere topics/tutorials/blogs beschreven wordt (aangezien je geen concrete vragen hebt).
*zit er over te denken om een basiscurcus AS3 te verkopen*, dat ik gewoon een dagje langs kom en de basis dingen uitleg of zo :P Zo vaak zulke vragen hier ^^
publikum
%Europe/Berlin %926 %2010, 23:14
Ik wil niet voor ieder onderwerp een apart topic openen en kan ook geen concrete antwoorden vinden, omdat dat meestal verwijzingen naar google zijn of antwoorden dat ik maar op het forum moet lezen of mijn vraag al beantwoord is.
BTW Wat kost die basiscursus? :)
Dauntless
%Europe/Berlin %950 %2010, 23:48
Ik heb hier (http://www.flashfocus.nl/forum/showthread.php?t=5899) ooit een paar OO AS2 tutorials geschreven. De syntax is niet helemaal hetzelfde, maar de ideeën achter OOP blijven natuurlijk hetzelfde.
Preloader -> Houdt er rekening mee dat er nu ook mobiel internet is en die snelheid niet al te hoog is
Externe AS -> Als je gebruik wil maken van de kracht van OO moet je met classes werken en die zijn altijd extern. Je kan ook nog AS toevoegen aan de tijdlijn zelf, maar dat beperk je beter tot maximaal enkele stop()'s.
Je voorbeeldje: Een vierkant IS een vorm (=Shape). (Je gaat het verschil tussen 'is' en 'heeft een' nog wel tegenkomen bij tutorials over OO). Dat wil zeggen dat je de Shape classe moet extenden. Dat doe je dus zo:
package
{
import flash.display.Shape;
public class Square extends Shape
{
//de constructor (zie AS2 files)
public function Square()
{
this.graphics.lineStyle(1, 0xFF0000, 1);
this.graphics.beginFill(0x000000,1);
this.graphics.drawRect(0, 0, 200, 100);
this.graphics.endFill();
}
}
}
Dat sla je op als Square.as in dezelfde folder als je .fla . In de .fla doe je dan:
this.addChild(new Square());
//of
var sq:Square = new Square();
this.addChild(sq);
//of
var sq:Square = this.addChild(new Square());(Ze doen allemaal hetzelfde)
De antwoorden op je andere vragen zouden in de AS2 tuts moeten staan.
publikum
%Europe/Berlin %496 %2010, 12:54
Zeer duidelijk Dauntless. Toch zit ik nog met een aantal dingen. IK begrijp de logica namelijk niet. Wat heeft het voor nut om de asfile extern op te vragen als die ook gewoon in de swf file bij actions ingevuld kan worden?
Is het raadzaam om externe bestanden te voorzien van een preloader? ( overigens Flash op mobieltjes is bijna nergens zichtbaar, maar goed had niet gedacht aan de beperkte snelheid)
In het voorbeeld van mijn vierkant:
Als ik de as in de swf zet verschijnt hij na ctrl-enter gewoon op de stage. Klopt het dat wanneer ik
this.addChild(new Square());
//of
var sq:Square = new Square();
this.addChild(sq);
//of
var sq:Square = this.addChild(new Square());
in de swf zet hij ook na ctrl enter het vierkant vertoond?
Dauntless
%Europe/Berlin %507 %2010, 13:11
Er zijn ook bv 3G kaarten voor laptops en dus traag internet. Daarnaast heb je in het zuiden nog Belgjes zitten (zoals ik dus) en hier bestaan er nog datalimieten. Dat wil dus ook zeggen dat er mensen op smallband terecht komen en dus traag internet hebben.
Je kan op 2 manieren AS extern gebruiken: In een classe of gewoon los in een .as bestand. Als je gewoon wat code in een .as zet en deze in je .fla gebruikt via "include xxx.as" dan is het enige voordeel dat je een externe code editor kan gebruiken, zoals bv FlashDevelop.
Als je classes wilt gebruiken (en dat wil je!) dan MOET je die in externe .as bestanden zetten. Je kan geen classes aanmaken op de tijdlijn.
Je laatste vraag snap ik niet :). Je zegt "als ik XXX doe werkt het. Maar werkt het dan ook als ik XXX doe?" ?
publikum
%Europe/Berlin %668 %2010, 17:02
Ehm anders....
ik open een nieuwe .fla daar zet ik de code in. Dan ctrl enter en het vierkantje verschijnt.
Ik vroeg mij af als ik de code in een package zet en ik een van jouw 3 voorbeelden in de .fla zet of het vierkantje dan ook verschijnt.
Ik heb dat uitgetest. Het 3e voorbeeldje deed het niet de andere wel.
Ik begrijp nu enkel niet waarom ik geen include square.as hoef neer te zetten ( hoeft dat niet omdat hij in dezelfde map staat als de .fla?
Dauntless
%Europe/Berlin %726 %2010, 18:26
( hoeft dat niet omdat hij in dezelfde map staat als de .fla?
Jup :). Dat is de default package en die moet je niet importeren. Iets als Shape moet je wel importeren (vandaar de import statement in mijn classe). Wanneer je de shape aanmaakt in Flash moet je dat dan weer niet omdat Flash dat achter de schermen voor jou doet.
En het 3e voorbeeld is inderdaad fout:
var sq:Square = this.addChild(new Square()) as Square;
//of
var sq:DisplayObject = this.addChild(new Square());
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.