lib_symbole ist ein MC, der in der Bibliothek abgelegt ist. Dieser enthält einen weiteren MC namens lib_icon, in welchen die Vektor-Grafik geladen werden soll:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var mc = new lib_symbole();
mc.x = s_xpos;
mc.y = s_ypos;
mc.width = s_width;
mc.height = s_height;
mc.name = s_name + "_" + counter;
var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
var fileRequest:URLRequest = new URLRequest("apple.ai");
myLoader.load(fileRequest);
mc.lib_icon.addChild(myLoader);
ActionScript:
1 2 3 4 5 6 7 8 9
function onProgressStatus(e:ProgressEvent) {
// this is where progress will be monitored
trace(e.bytesLoaded, e.bytesTotal);
}
function onLoaderReady(e:Event) {
// the image is now loaded, so let's add it to the display tree!
addChild(myLoader);
}
erhalte jedoch folgende Fehlermeldung:
Error #2044: IOErrorEvent unverarbeitet. text=Error #2124: Die geladene Datei weist einen unbekannten Typ auf.
Daraus schließe ich, dass ai-Files nicht einfach geladen werden können.
Ich habe aber bis jetzt noch keine Möglichkeit gesehen/gefunden, diese trotzdem irgendwie zu importieren.
Any ideas?
Lg roemer
Geändert von roemerquelle am 08.07.10 um 12:51 Uhr
hi,
du kannst die .ai direkt in flash importieren, dann hast du die vektoren in der bibliothek....
um unnötige imports zu vermeiden, kannst du auch die vektoren in illustrator kopieren (markieren und ctrl+C ), dann in flash mit crtl+V einfügen. dann hast du nur den vektor....
die vektoren blasen auch deine fla nicht unnötig auf. daher musst du die nicht extern laden..lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Beiträge: 5285 Wohnort: Bernau (bei
Berlin) Registriert: Nov 2002
Hi,
mit ai-Dateien wird es aus meiner Sicht nichts werden.
Man kann doch aber aus AI heraus eine SWF exportieren. Dann kann man die swf mit den Vektordaten laden.
hmm, ja das geht schon, aber zur laufzeit dann objekte instanzieren die nur in der nachgeladenen swf vorhanden sind? geht das?
@roemerquelle:
bitte einen neuen thread für das sliderproblem. das sind zwei komplett verschiedene dinge ;-)lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
Super Idee. Werde ich ausprobieren, sobald ich irgendwo her testweise einen Illustrator bekomme.
Falls von euch jemand einen hat, könntet ihr mir testweise das angehänge File in ein swf exportieren?
Das Laden einer ext swf hat soweit funktioniert.
Ich hab jetzt noch eine Verständnisfrage:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12
var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
var fileRequest:URLRequest = new URLRequest(s_image);
myLoader.load(fileRequest);
Im Grunde lade ich ja hier das swf in den MC mc.lib_icon.
Bei den beiden trace-Ausgaben erhalte ich jedoch bei der breite des MSs lib_icon "0"
und bei der Ausgabe für den loader "undefined". Kann ich die Elemente nicht mittels Pfad ansprechen?
Geändert von roemerquelle am 08.07.10 um 13:37 Uhr
@badskill:
ich dachte das wären mehrere icons in einer .ai
hab da etwas zu weit gedacht. so geht natürlich einfach die swf zu laden ;-)lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
hm, da die Daten ja aus einer xml in einer Schleife ausgelesen werden, habe ich die Referenz auf genau das Icon nur solange, bis der nächste Schleifendurchgang durchgeführt wird:
ActionScript:
1 2 3 4 5 6 7 8 9 10 11 12 13
function initIconsFromXML(eventObject:Event)
{
XML.ignoreComments = true;
XML.ignoreWhitespace = true;
myXML = new XML(eventObject.target.data);
for (var i:Number = 0; i < myXML.icon.length(); i++)
{
var _node1:XML = myXML.icon[i];
initSymbol(_node1.name, _node1.width, _node1.height, _node1.x, _node1.y, _node1.image, _node1.defaultcolor);
}
}
var myLoader:Loader = new Loader();
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressStatus);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderReady);
var fileRequest:URLRequest = new URLRequest(s_image);
myLoader.load(fileRequest);
mc.lib_icon.addChild(myLoader);
Ich benötige es aber nachher nochmals in der Form "mc.lib_icon.myLoader" um direkt die Größe dieses Icons mittels Slider zu verändern.