Zum Inhalt springen

Unerklärliche Probleme mit swf/xml/typo3

Erstellt am 22. Januar 2010 · 1 Antwort · letzte Antwort am 22. Januar 2010

Tags: Frage

untouch ·

Hi leute,

Seit nunmehr als einer Woche bin ich am debuggen weil ich meine swf nicht mit ner xml Datei in typo3 zum laufen bekomme.

Ums kurz zu machen: Hab jetzt schon 20.000 mal die Pfade kontrolliert.

Komischerweise läuft alles Lokal und auch auf anderen Webspaces... nur wenn ichs in die Typo3 Ordnerstruktur innerhalb des Fileadmin ordners anlege und es dann via AC_FL_RunContent in ein HTML content element einbinde... bringt er mir im FF immer die meldung

Der Flashfilm wird zwar eingebunden aber das Zusammenspiel mit der XML datei funktioniert an dieser Stelle irgendwie nicht.

IM FF sagt er :Error #2044: IOErrorEvent unverarbeitet. text=Error #2036: Ladevorgang nicht abgeschlossen. // im IE meckert er nebenbei nicht mit ner meldung aber die Anweisungen die Fotos über XML zu laden funktioniert trotzdem irgendwie nicht und der film hört nicht auf zu Laden.

zusehen ist der "Horror-Film" auf http://www.blickfeld-projekte.de/index.php?id=52

Ich Zeig mal mein JS:

<script language="JavaScript" type="text/javascript">
	AC_FL_RunContent(
		'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0',
		'width', '670',
		'height', '218',
		'src', 'Home',
		'flashvars', 'url=' + escape('fileadmin/template/main/xml/data.xml'),
		'quality', 'high',
		'pluginspage', 'http://www.adobe.com/go/getflashplayer',
		'align', 'middle',
		'play', 'true',
		'loop', 'true',
		'scale', 'showall',
		'wmode', 'window',
		'devicefont', 'false',
		'id', 'Home',
		'bgcolor', '#dedede',
		'name', 'Home',
		'menu', 'true',
		'allowFullScreen', 'false',
		'allowScriptAccess','sameDomain',
		'movie', 'fileadmin/template/main/swf/Home',
		'salign', ''
		); //end AC code
</script>

<noscript>
	<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="670" height="218" id="Home" align="middle">
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="allowFullScreen" value="false" />
    <param name="flashvars" value="url=fileadmin/template/main/xml/data.xml" />
	<param name="movie" value="fileadmin/template/main/swf/Home.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#dedede" />
    <embed src="fileadmin/template/main/swf/Home.swf" flashvars="url=fileadmin/template/main/xml/data.xml" quality="high" bgcolor="#dedede" width="670" height="218" name="Home" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
	</object>
</noscript>

Hier die XML Datei

<?xml version="1.0" encoding="utf-8"?>
<bf:home_data xmlns:bf="http://www.blickfeld-projekte.de/ns/bf">
<bf:home_item>
<bf:home_headline>Überschrift 1</bf:home_headline>
<bf:home_text>Text dazu 1</bf:home_text>
<bf:home_links>
<bf:home_link>
<bf:home_name>online ansehen</bf:home_name>
<bf:home_url>http://www.klickadeeler.de</bf:home_url>
<bf:home_target>_blank</bf:home_target>
</bf:home_link>
<bf:home_link>
<bf:home_name>details anzeigen</bf:home_name>
<bf:home_url>http://www.yahoo.de</bf:home_url>
<bf:home_target>_self</bf:home_target>
</bf:home_link>
</bf:home_links>
<bf:home_image>xml/image1.jpg</bf:home_image>
</bf:home_item>

<bf:home_item>
<bf:home_headline>Überschrift 2</bf:home_headline>
<bf:home_text>Text dazu 2</bf:home_text>
<bf:home_links>
<bf:home_link>
<bf:home_name>online ansehen</bf:home_name>
<bf:home_url>http://www.goole.de</bf:home_url>
<bf:home_target>_blank</bf:home_target>
</bf:home_link>
<bf:home_link>
<bf:home_name>details anzeigen</bf:home_name>
<bf:home_url>http://www.gmx.de</bf:home_url>
<bf:home_target>_self</bf:home_target>
</bf:home_link>
</bf:home_links>
<bf:home_image>xml/image2.jpg</bf:home_image>
</bf:home_item>

<bf:home_item>
<bf:home_headline>Überschrift 3 - diese Überschrift ist ziemlich lang und zeigt was dann passiert</bf:home_headline>
<bf:home_text>Text dazu 3</bf:home_text>
<bf:home_links>
<bf:home_link>
<bf:home_name>online ansehen</bf:home_name>
<bf:home_url>http://www.spiegel.de</bf:home_url>
<bf:home_target>_blank</bf:home_target>
</bf:home_link>
<bf:home_link>
<bf:home_name>details anzeigen</bf:home_name>
<bf:home_url>http://www.hsv.de</bf:home_url>
<bf:home_target>_self</bf:home_target>
</bf:home_link>
</bf:home_links>
<bf:home_image>xml/image3.jpg</bf:home_image>
</bf:home_item>

<bf:home_item>
<bf:home_headline>Überschrift 4</bf:home_headline>
<bf:home_text>Der Text hier ist auch ziemlich lang<bf:br /><bf:br />das macht einen zeilenumbruch.</bf:home_text>
<bf:home_links>
<bf:home_link>
<bf:home_name>online ansehen</bf:home_name>
<bf:home_url>http://www.microsoft.de</bf:home_url>
<bf:home_target>_blank</bf:home_target>
</bf:home_link>
<bf:home_link>
<bf:home_name>details anzeigen</bf:home_name>
<bf:home_url>http://www.apple.de</bf:home_url>
<bf:home_target>_self</bf:home_target>
</bf:home_link>
</bf:home_links>
<bf:home_image>xml/image4.jpg</bf:home_image>
</bf:home_item>

<bf:home_item>
<bf:home_headline>Überschrift 5</bf:home_headline>
<bf:home_text>Text dazu 5</bf:home_text>
<bf:home_links>
<bf:home_link>
<bf:home_name>online ansehen</bf:home_name>
<bf:home_url>http://www.web.de</bf:home_url>
<bf:home_target>_blank</bf:home_target>
</bf:home_link>
<bf:home_link>
<bf:home_name>details anzeigen</bf:home_name>
<bf:home_url>http://www.cyberport.de</bf:home_url>
<bf:home_target>_self</bf:home_target>
</bf:home_link>
</bf:home_links>
<bf:home_image>xml/image5.jpg</bf:home_image>
</bf:home_item>

<bf:home_item>
<bf:home_headline>Überschrift 6</bf:home_headline>
<bf:home_text>Text dazu 6</bf:home_text>
<bf:home_links>
<bf:home_link>
<bf:home_name>online ansehen</bf:home_name>
<bf:home_url>http://www.billiger.de</bf:home_url>
<bf:home_target>_blank</bf:home_target>
</bf:home_link>
<bf:home_link>
<bf:home_name>details anzeigen</bf:home_name>
<bf:home_url>http://www.guenstiger.de</bf:home_url>
<bf:home_target>_self</bf:home_target>
</bf:home_link>
</bf:home_links>
<bf:home_image>xml/image6.jpg</bf:home_image>
</bf:home_item>

</bf:home_data>

AS

/**
 * VERSION: 1.0
 * DATE: 7/7/2009
 * AS3
 **/
package bf {
	
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.display.BitmapData;
	import flash.geom.Rectangle;
	import flash.utils.Timer;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.xml.*;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	
	import bf.ItemHome;
	import bf.LinkHome;
	import bf.ImageHome;
	
	import gs.TweenMax;
	import gs.easing.Quad;
 
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.materials.ColorMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.primitives.Cube;
	import org.papervision3d.view.BasicView;
	
	/**
	* class Home
	*/
	public final class Home extends Sprite {
		
		// namespace
		public static const NAMESPACE_BF:Namespace = new Namespace('bf', 'http://www.blickfeld-projekte.de/ns/bf');
		
		// content text default y position
		private static const _TEXT_CONTENT_DEF_Y:Number = 30;
		
		// timer delay
		private static const _TIMER_DELAY:Number = 5000;
		
		// papervision 3d width
		private static const _PV3D_WIDTH:Number = 395;
		
		// papervision 3d height
		private static const _PV3D_HEIGHT:Number = 210;
		
		// papervision 3d z
		private static const _PV3D_CUBE_Z:Number = _PV3D_WIDTH / 2;
		
		// animation state
		private var _animating_b:Boolean = false;
		
		// item data
		private var _items_arr:Array = [];
		
		// item length
		private var _itemsLength_uint:uint = 0;
		
		// current item
		private var _itemPointer_uint:uint = 0;
		
		// next item
		private var _itemNextPointer_uint:uint = 0;
		
		// available panes
		private var _panes_arr:Array = ['back', 'right', 'front', 'left'];
		
		// total number of panes
		private var _panesLength_uint:uint = _panes_arr.length;
		
		// current pane index
		private var _panePointer_uint:uint = 0;
		
		// papervision 3d view
		private var _basicView:BasicView;
		
		// papervision 3d material list
		private var _materialList:MaterialsList;
		
		// papervision 3d cube
		private var _cube:Cube;
		
		// papervision 3d cube rotation
		private var _cubeTargetRotation:Number = 0;
		
		// papervision 3d cube next rotation
		private var _cubeNextTargetRotation:Number = 0;
		
		// timer
		private var _autoCycle_timer:Timer = new Timer(_TIMER_DELAY, 0);
		
		// constructor
		function Home() {
			var defColorMaterial:ColorMaterial = new ColorMaterial(0xececec);
			
			// setup
			box_mc.visible = false;
			
			buttons_mc.visible = false;
			
			buttons_mc.prevButton_mc.addEventListener(MouseEvent.MOUSE_OVER, _mouseOverHandler);
			buttons_mc.prevButton_mc.addEventListener(MouseEvent.MOUSE_OUT, _mouseOutHandler);
			buttons_mc.prevButton_mc.addEventListener(MouseEvent.CLICK, _clickHandler);
			buttons_mc.prevButton_mc.buttonMode = true;
			buttons_mc.prevButton_mc.enabled = false;
			buttons_mc.prevButton_mc.alpha = .25;
			
			buttons_mc.nextButton_mc.addEventListener(MouseEvent.MOUSE_OVER, _mouseOverHandler);
			buttons_mc.nextButton_mc.addEventListener(MouseEvent.MOUSE_OUT, _mouseOutHandler);
			buttons_mc.nextButton_mc.addEventListener(MouseEvent.CLICK, _clickHandler);
			buttons_mc.nextButton_mc.buttonMode = true;
			buttons_mc.nextButton_mc.enabled = false;
			buttons_mc.nextButton_mc.alpha = .25;
			
			// timer
			_autoCycle_timer.addEventListener(TimerEvent.TIMER, _timerHandler);
			
			// setup papervision 3d
			_materialList = new MaterialsList();
			_materialList.addMaterial(defColorMaterial, 'front');
			_materialList.addMaterial(defColorMaterial, 'back');
			_materialList.addMaterial(defColorMaterial, 'right');
			_materialList.addMaterial(defColorMaterial, 'left');
			_materialList.addMaterial(defColorMaterial, 'top');
			_materialList.addMaterial(defColorMaterial, 'bottom');
			
			_basicView = new BasicView(_PV3D_WIDTH, _PV3D_HEIGHT, false, false);
			_basicView.opaqueBackground = 0x000000;
			_basicView.camera.focus = 100;
			_basicView.camera.zoom = 10;
			
			// add view
			box_mc.image_mc.addChild(_basicView);
			
			// papervision 3d start rendering
			_basicView.startRendering();
			
			// load xml file
			_loadXML();
		}
		
		// mouse over event handler
		private function _mouseOverHandler($mouseEvent:MouseEvent):void {
			if (!_animating_b) TweenMax.to($mouseEvent.target, .25, {alpha: .75, ease:Quad.easeInOut});
		}
		
		// mouse out event handler
		private function _mouseOutHandler($mouseEvent:MouseEvent):void {
			if (!_animating_b) TweenMax.to($mouseEvent.target, .25, {alpha: 1, ease:Quad.easeInOut});
		}
		
		// click event handler
		private function _clickHandler($mouseEvent:MouseEvent):void {
			if (!_animating_b) {
				var $_onStart_func:Function = function($target:*):void {
					$target.enabled = false;
				}
				
				var $onComplete1_func:Function = function($target:*):void {
					TweenMax.to($target, .1, {x: $target.x - 2, y: $target.y - 2, ease:Quad.easeInOut, onComplete: $onComplete2_func, onCompleteParams: [$target]});
				}
				
				var $onComplete2_func:Function = function($target:*):void {
					$target.enabled = true;
				}
				
				TweenMax.to($mouseEvent.target, .1, {x: $mouseEvent.target.x + 2, y: $mouseEvent.target.y + 2, ease:Quad.easeInOut, onStart: $_onStart_func, onStartParams: [$mouseEvent.target], onComplete: $onComplete1_func, onCompleteParams: [$mouseEvent.target]});
				
				_autoCycle_timer.reset();
				
				if ($mouseEvent.target.name == 'prevButton_mc') {
					prevView();
				}
				else {
					nextView();
				}
			}
		}
		
		// timer event hadler 
		private function _timerHandler($timerEvent:TimerEvent):void {
			if (_items_arr[_itemPointer_uint > (_itemsLength_uint - 1) ? _itemPointer_uint + 1 : 0].imageHome.loaded) {
				nextView();
			}
		}
		
		// complete xml event handler
		private function _completeXMLHandler($event:Event):void {
			_parseXML(URLLoader($event.target).data);
			_itemsLength_uint = _items_arr.length;
			buttons_mc.addEventListener(Event.ENTER_FRAME, _monitorButtons);
			_autoCycle_timer.start();
			currentView();
		}
		
		// load xml
		private function _loadXML():void {
			var $_url:String = loaderInfo.parameters['url'] ? unescape(loaderInfo.parameters['url']) : '';
			var $_loader:URLLoader = new URLLoader();
            var $_request:URLRequest = new URLRequest($_url);
            
			$_loader.addEventListener(Event.COMPLETE, _completeXMLHandler);
			$_loader.load($_request);
		}
		
		// parse xml
		private function _parseXML($xml_str:String):void {
			var $_data_xml:XML = new XML($xml_str);
			var $_item_xml:XML;
			var $_link_xml:XML;
			var $_itemHome:ItemHome;
			var $_linkHome:LinkHome;
			var $_image_str:String;
			
			// set namespace
			$_data_xml.addNamespace(NAMESPACE_BF);
			
			// parse items
			for each($_item_xml in $_data_xml.NAMESPACE_BF::['home_item']) {
				$_itemHome = new ItemHome();
				
				// grab text data
				$_itemHome.headline_str = $_item_xml.NAMESPACE_BF::['home_headline'].children();
				$_itemHome.text_str = $_item_xml.NAMESPACE_BF::['home_text'].children();
				
				// parse links
				for each($_link_xml in $_item_xml.NAMESPACE_BF::['home_links'].NAMESPACE_BF::['home_link']) {
					$_linkHome = new LinkHome();
					
					// grab text data
					$_linkHome.name_str = $_link_xml.NAMESPACE_BF::['home_name'].children();
					$_linkHome.url_str = $_link_xml.NAMESPACE_BF::['home_url'].children();
					$_linkHome.target_str = $_link_xml.NAMESPACE_BF::['home_target'].children();
					
					// add link
					$_itemHome.links_arr.push($_linkHome);
				}
				
				// load requested image
				$_itemHome.imageHome.url = $_item_xml.NAMESPACE_BF::['home_image'].children();
				
				// add this item
				_items_arr.push($_itemHome);
			}
		}
		
		// update pane
		private function _updatePane($pane_str:String, $imageData:BitmapData):void {
			// stop rendering
			_basicView.stopRendering();
			
			// remove cube if needed
			if (_cube) _basicView.scene.removeChild(_cube);
			
			// update material
			_materialList.addMaterial(new BitmapMaterial($imageData, true), $pane_str);
			
			// create a new cube
			_cube = new Cube(_materialList, _PV3D_WIDTH, _PV3D_WIDTH, _PV3D_HEIGHT);
			_cube.z = _PV3D_CUBE_Z;
			_cube.rotationY = _cubeTargetRotation;
			
			// add cube
			_basicView.scene.addChild(_cube);
			
			// start rendering again
			_basicView.startRendering();
		}
		
		// update buttons
		private function _monitorButtons($event:Event):void {
			var $_prevItem:ItemHome;
			var $_nextItem:ItemHome;
			
			// check weather to stop
			if (_items_arr[_itemsLength_uint - 1].imageHome.loaded) buttons_mc.removeEventListener(Event.ENTER_FRAME, _monitorButtons);
			
			// prev button
			$_prevItem = _items_arr[_itemPointer_uint > 0 ? _itemPointer_uint - 1 : _itemsLength_uint - 1];
			
			if ($_prevItem.imageHome.loaded && !buttons_mc.prevButton_mc.enabled) {
				buttons_mc.prevButton_mc.enabled = true;
				buttons_mc.prevButton_mc.useHandCursor = true;
				TweenMax.to(buttons_mc.prevButton_mc, .5, {alpha:1, ease:Quad.easeInOut});
			}
			else if (buttons_mc.prevButton_mc.enabled) {
				buttons_mc.prevButton_mc.enabled = false;
				buttons_mc.prevButton_mc.useHandCursor = false;
				TweenMax.to(buttons_mc.prevButton_mc, .5, {alpha:.25, ease:Quad.easeInOut});
			}
			
			// next button
			$_nextItem = _items_arr[_itemPointer_uint > (_itemsLength_uint - 1) ? _itemPointer_uint + 1 : 0];
			
			if ($_nextItem.imageHome.loaded && !buttons_mc.nextButton_mc.enabled) {
				buttons_mc.nextButton_mc.enabled = true;
				buttons_mc.nextButton_mc.useHandCursor = true;
				TweenMax.to(buttons_mc.nextButton_mc, .5, {alpha:1, ease:Quad.easeInOut});
			}
			else if (buttons_mc.nextButton_mc.enabled) {
				buttons_mc.nextButton_mc.enabled = false;
				buttons_mc.nextButton_mc.useHandCursor = false;
				TweenMax.to(buttons_mc.nextButton_mc, .5, {alpha:.25, ease:Quad.easeInOut});
			}
		}
		
		// update texts
		private function _updateTexts():void {
			// update headline
			box_mc.headline_txt.htmlText = _items_arr[_itemNextPointer_uint].headline_str;
			
			// update text
			box_mc.content_txt.htmlText = _items_arr[_itemNextPointer_uint].text_str;
			
			// update links
			var $_links_str:String = '';
			var $_linkHomeLength_uint:uint = _items_arr[_itemNextPointer_uint].links_arr.length;
			
			for (var i:uint = 0; i < $_linkHomeLength_uint; i ++) {
				$_links_str += '&lt; <a href="' + _items_arr[_itemNextPointer_uint].links_arr[i].url_str
							+ '" target="' + _items_arr[_itemNextPointer_uint].links_arr[i].target_str
							+ '">' + _items_arr[_itemNextPointer_uint].links_arr[i].name_str + '</a> &gt; ';
			}
			
			box_mc.links_txt.htmlText = $_links_str;
		}
		
		// animate
		private function _animate():void {
		}
		
		// show current view
		public function currentView($event:Event = null):void {
			// check if loaded
			if (!_items_arr[_itemNextPointer_uint].imageHome.loaded) {
				if (!hasEventListener(Event.ENTER_FRAME)) {
					addEventListener(Event.ENTER_FRAME, currentView);
				}
				
				// try again
				return;
			}
			
			// loaded
			if (hasEventListener(Event.ENTER_FRAME)) {
				removeEventListener(Event.ENTER_FRAME, currentView);
			}
			
			// update next pane
			_updatePane(_panes_arr[_panePointer_uint], _items_arr[_itemNextPointer_uint].imageHome.bitmapData);
				
			// check weather we have to animate
			if (_itemNextPointer_uint != _itemPointer_uint) {
				var onComplete1_func:Function = function() { 
					_updateTexts();
					
					TweenMax.to(buttons_mc.prevButton_mc, .7, {alpha:1, ease:Quad.easeInOut});
					TweenMax.to(buttons_mc.nextButton_mc, .7, {alpha:1, ease:Quad.easeInOut});
					
					TweenMax.to(box_mc.headline_txt, .7, {alpha:1, ease:Quad.easeInOut}); 
					TweenMax.to(box_mc.content_txt, .7, {alpha:1, ease:Quad.easeInOut}); 
					TweenMax.to(box_mc.links_txt, .7, {alpha:1, ease:Quad.easeInOut, onComplete: onComplete2_func}); 
				}
				
				var onComplete2_func:Function = function() { 
					_itemPointer_uint = _itemNextPointer_uint;
					_animating_b = false;
				}
				
				// start animating
				_animating_b = true;
				
				// buttons
				TweenMax.to(buttons_mc.prevButton_mc, .7, {alpha:.25, ease:Quad.easeInOut});
				TweenMax.to(buttons_mc.nextButton_mc, .7, {alpha:.25, ease:Quad.easeInOut});
				
				// texts
				TweenMax.to(box_mc.headline_txt, .7, {alpha:0, ease:Quad.easeInOut}); 
				TweenMax.to(box_mc.content_txt, .7, {alpha:0, ease:Quad.easeInOut}); 
				TweenMax.to(box_mc.links_txt, .7, {alpha:0, ease:Quad.easeInOut, onComplete: onComplete1_func}); 
				
				// cube
				_cubeTargetRotation = _cubeNextTargetRotation;
				TweenMax.to(_cube, 1.4, {rotationY: _cubeTargetRotation, z: _PV3D_CUBE_Z, bezierThrough:[{z:310}], ease:Quad.easeInOut});
			}
			else {
				_updateTexts();
			}
			
			// show box
			if (!box_mc.visible) {
				box_mc.alpha = 0;
				box_mc.visible = true;
				
				buttons_mc.alpha = 0;
				buttons_mc.visible = true;
				
				TweenMax.to(box_mc, 1.0, {alpha:1, ease:Quad.easeInOut});
				TweenMax.to(buttons_mc, 1.0, {alpha:1, ease:Quad.easeInOut});
				TweenMax.to(loaderCircle_mc, 1.0, {alpha:0, ease:Quad.easeInOut, onComplete: function() { loaderCircle_mc.visible = false; } });
			}
		}
		
		// previous view
		public function prevView():void {
			_itemNextPointer_uint = _itemPointer_uint > 0 ? _itemPointer_uint - 1 : _itemsLength_uint - 1;
			_panePointer_uint = _panePointer_uint > 0 ? _panePointer_uint - 1: _panesLength_uint - 1;
			_cubeNextTargetRotation -= 90;
			currentView();
		}
		
		// next view
		public function nextView():void {
			_itemNextPointer_uint = _itemPointer_uint < (_itemsLength_uint - 1) ? _itemPointer_uint + 1 : 0;
			_panePointer_uint = _panePointer_uint < (_panesLength_uint - 1) ? _panePointer_uint + 1 : 0;
			_cubeNextTargetRotation += 90;
			currentView();
		}

	}
	
}
karlchen ·

ich hatet beim einbinden mit Flash einmal das Problem, das er keine relativen Pfade akzeptiert hat.

Probier hier mal deinen Pfad mit Domain

<param name="flashvars" value="url=fileadmin/template/main/xml/data.xml" />