Zurück   Flashforum > Flash > Flash erweitern > Flash Entwicklungsumgebung erweitern

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-09-2004, 16:29   #1 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Wav2SWF Batch

hi,


ich versuche einen kompletten Ordner mit Wavs in SWFs zu verwandeln.
Jedes SWF soll den Sound exportiert in der Library enthalten.

Schon mein erster versuch, mich durch die Hilfe zu kämpfen scheitert:
Zitat:
library.addNewItem( type [, namePath] )

Parameters
type A string that specifies the type of item to create. The only acceptable values for type are "video", "movie clip", "button", "graphic", "bitmap", and "folder" (so, for example, you cannot add a sound to the library with this method).
Wie gehe ich am besten vor ?
Eine Idee ?
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 12-09-2004, 17:08   #2 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Ich versuche es gleich mal mit einem Workaround.
Ich importiere einfach alle Wavfiles in die Library und gehe sie in einer Schleife durch. Ein Item wird immer auf export gestellt und dann das dokument exportiert.

Leider geht es über eine Zeile nicht hinaus und ich frage mich warum ?

Code:
var outputPath = "file:///F|/as2lib/examples/audiosequencer/samples/marimba/";

var libItems = fl.getDocumentDOM().library.items;

var lastItem = null;

fl.trace( "convert: " + libItems.length + " items." );

for( var i = 0 ; i < libItems.length ; i++ )
{
	if ( lastItem != null )
	{
		lastItem.linkageIdentifier = undefined;
		lastItem.linkageExportForAS = false;
	}
	
	var currentItem = libItems[i];

	currentItem.linkageIdentifier = "s"; // ab hier ist schicht !!!
	currentItem.linkageExportForAS = true;
	
	var name = currentItem.name;
	
	fl.trace( "export: " + name );
	
	fl.getDocumentDOM().exportSWF( outputPath + name.substr( 0 , name.lastIndexOf( ".wav" ) ) , true ) ;

	lastItem = currentItem;
}

lastItem.linkageIdentifier = undefined;
lastItem.linkageExportForAS = false;

fl.trace( "ready." );
Wo ist mein Fehler ?
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com

Geändert von André Michelle (12-09-2004 um 18:58 Uhr)
André Michelle ist offline   Mit Zitat antworten
Alt 13-09-2004, 05:33   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
also da stimmt einiges nicht:

"..currentItem.linkageExportForAS.."
bezieht sich auf das selectierte item

"..Ein Item wird immer auf export gestellt.."
wenn es nicht auf der bühne benützt wird dürfte es dennoch nicht dabei sein.
oder macht das der "linkageIdentifier" den hab ich nicht so ganz verstanden.

"..fl.getDocumentDOM().exportSWF.."
ist bestimmt falsch, weil das den gesamten fla sichert.

laut docu geht das:
-- The following example exports an item in the library to the my.swf file in the tests folder:
-- fl.getDocumentDOM().library.items[0].exportSWF("file:///c|/tests/my.swf");
nur, wenn ich das mache sagt flash: exportSWF wäre keine function???

ActionScript:
  1. // flash 7.2
  2. var outputPath = fl.browseForFileURL("save");
  3. outputPath = outputPath.substr(0,outputPath.lastIndexOf("/")+1);
  4. //
  5. var doc = fl.getDocumentDOM();
  6. var lib = doc.library;
  7. var libItems = lib.items;
  8. //
  9. for( var i = 0 ; i < libItems.length ; i++ )
  10. { var libItemName = libItems[i].name;
  11.     lib.selectItem(libItemName);
  12.     switch(lib.getItemType())
  13.     {   case "sound":
  14.             var vA=libItemName.lastIndexOf("/")+1; // sound im ordner?
  15.             var vE=libItemName.lastIndexOf(".wav");
  16.             var vExpName = outputPath+libItemName.substr(vA,vE-vA)+".swf";
  17.             //
  18.             // hab ich vom protokoll-fenster kopiert
  19.             if (lib.getItemProperty('linkageImportForRS') == true) {
  20.                 lib.setItemProperty('linkageImportForRS', false);
  21.             }
  22.             lib.setItemProperty('linkageExportForAS', true);
  23.             lib.setItemProperty('linkageExportForRS', true);
  24.             lib.setItemProperty('linkageExportInFirstFrame', true);
  25.             lib.setItemProperty('linkageClassName', '');
  26.             lib.setItemProperty('linkageURL', vExpName);
  27.             //
  28.             // das wäre es gewesen :-(
  29.             // libItems[i].exportSWF(vExpName);
  30.             //
  31.             doc.exportSWF(vExpName, true);
  32.             break;
  33.     }
  34. }
  35. fl.trace("ready");
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (13-09-2004 um 05:48 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 13-09-2004, 08:00   #4 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
So gehts:

Code:
var outputPath = "file:///F|/as2lib/examples/audiosequencer/samples/marimba/";

var libItems = fl.getDocumentDOM().library.items;

var lastItem = null;

fl.trace( "convert: " + libItems.length + " items." );

for( var i = 0 ; i < libItems.length ; i++ )
{
	if ( lastItem != null )
	{
		lastItem.linkageExportInFirstFrame = false;
		lastItem.linkageIdentifier = undefined;
		lastItem.linkageExportForAS = false;
	}
	
	var currentItem = libItems[i];

	currentItem.linkageExportForAS = true;
	currentItem.linkageExportInFirstFrame = true;
	currentItem.linkageIdentifier = "s";
	
	
	var name = currentItem.name;
	
	fl.getDocumentDOM().exportSWF( outputPath + name.substr( 0 , name.lastIndexOf( ".wav" ) ) , true ) ;

	lastItem = currentItem;
}

lastItem.linkageIdentifier = undefined;
lastItem.linkageExportForAS = false;

fl.trace( "ready." );

Somit sind deine Einwände hinfällig :o)
Das war schon alles ok so.
Das wirklich bekloppte war nur, dass man die Reihenfolge einhalten muss.
Code:
	currentItem.linkageExportForAS = true;
	currentItem.linkageExportInFirstFrame = true;
	currentItem.linkageIdentifier = "s";
Packe ich den 'linkageIdentifier' nach oben, dann bricht die Schleife einfach ohne Fehlermeldung ab.
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 13-09-2004, 16:31   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
hinterher ist jeder schlauer ;-)
eigentlich logisch. weil wenn linkageExportForAS = false ist, dann kann es nicht verlinkt sein. dennoch kein grund, einfach ab zu brechen.

-----------------
nur der vollständigkeithalber würde mich noch folgendes interessieren:

laut docu geht das:

symbolItem.exportSWF()
Availability
Flash MX 2004.
Usage
symbolItem.exportSWF( outputURI )
Parameters
The outputURI parameter is a string that specifies the URI for the SWF file to which the method will export the symbol. This URI must reference a local file. Flash will not create a folder if the specified path doesn’t exist.
Returns
Nothing.
Description
Method; exports the symbol item to a SWF file specified by a URI.
Example
The following example exports an item in the library to the my.swf file in the tests folder:
fl.getDocumentDOM().library.items[0].exportSWF("file:///c|/tests/my.swf");


"deine" methode geht ja nur, weil das fla ansonsten leer ist (wird für das, was du machen willst voll und ganz langen).
die 2. methode von exportSWF tut aber offensichtlich direkt genau das, was du programmiert hast. leider behautet flash, es wäre keine funktion?
Angehängte Grafiken
Dateityp: gif exportSWF.gif (4,4 KB, 15x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 14-09-2004, 22:19   #6 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
livedoc hat auch nichts zu bieten.

Tja, schade :)
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 14-09-2004, 22:23   #7 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Ah, ok. Es funktioniert nicht mit Sounds! Sonst gehts wunderbar.
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle ist offline   Mit Zitat antworten
Alt 14-09-2004, 23:59   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
"..Sonst gehts wunderbar.."
hatte es auch mit einem button und einem mc probiert. dein "sonst" bezieht sich auf bilder? werd ich nochmal testen.

ansonsten wollte ich schon die bemerkung bringen:
"jetzt sucht MM, welcher witzbold diesen befehl in die docu geschrieben hat" ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 15-09-2004, 08:47   #9 (permalink)
[+]
 
Benutzerbild von André Michelle
 
Registriert seit: Dec 2002
Ort: cologne
Beiträge: 2.271
Ich hatte es mit einem MovieClip probiert.
__________________
aM

blog | laboratory | tonfall | processing

Audiotool.com
André Michelle 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 aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele