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 += '< <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> > ';
}
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();
}
}
}