Hi;
I sent the following email to this list a couple days ago and nobody commented,
which makes me think that nobody saw a problem/solution, which makes me think
that Adobe's latest Flash CS5 has a bug. So, please consider reviewing the
below and, if necessary, informing me how to inform Adobe of their failure.
TIA,
John
Ok, I've nailed down where the problem is as to why my silly little *.as file
that worked so well before won't work with minor changes in my
latest *.as file. The problem appears to be that Flash freaks out over
different image files! Here's the code, simplified:
package
{
import flash.display.Sprite;
import
flash.text.TextLineMetrics;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;
import flash.text.TextFieldAutoSize;
import flash.net.navigateToURL;
import
flash.display.Bitmap;
import flash.events.Event;
import
flash.events.MouseEvent;
import flash.display.MovieClip;
import com.greensock.*;
import com.greensock.easing.*;
import flash.display.Loader;
import flash.events.ProgressEvent;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
import flash.net.URLRequest;
[SWF(backgroundColor="0x565656")]
public class
DeJonghPreloader extends MovieClip
{
var loader:Loader = new Loader();
private var myTextField:TextField = new
TextField();
var imgFlag1:Boolean = new Boolean(false);
public function DeJonghPreloader()
{
addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
private function init(e:Event)
{
var clientName:TextField = new TextField();
var format:TextFormat = new TextFormat();
format.font =
'Arial';
format.size = 35;
clientName.textColor = 0x023048;
clientName.text = 'Delta Electric';
clientName.autoSize = TextFieldAutoSize.LEFT;
clientName.setTextFormat(format);
var
nameSprite:Sprite = new Sprite();
nameSprite.x =
stage.stageWidth/2 - 70;
nameSprite.y =
stage.stageHeight/2 - 40;
nameSprite.alpha = 0;
TweenLite.to(nameSprite, 2, {alpha:1});
addChild(nameSprite);
nameSprite.addChild(clientName);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
loader.load(new URLRequest("images/charles.jpg"));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,
loop);
removeEventListener(Event.ADDED_TO_STAGE, init);
addChild(myTextField);
myTextField.width =
250;
myTextField.x = stage.stageWidth/2;
myTextField.y = stage.stageHeight/2;
myTextField.selectable = false;
myTextField.border =
false;
myTextField.borderColor = 0xAA0000;
myTextField.autoSize = TextFieldAutoSize.LEFT;
var
myFormat:TextFormat = new TextFormat();
myFormat.color =
0x023048;
myFormat.size = 24;
myFormat.italic = true;
myTextField.defaultTextFormat =
myFormat;
}
private function
imageLoaded(event:Event):void
{
imgFlag1 =
true;
completePreloader();
}
function completePreloader()
{
var
req:URLRequest = new URLRequest('index.py');
navigateToURL(req, '_self');
}
function loop(e:ProgressEvent):void
{
var
perc:Number = e.bytesLoaded/e.bytesTotal;
myTextField.text = Math.ceil(perc*100).toString() + "%";
}
}
}
Now, that code works just fine. However, if I change
the image from "charles.jpg" to "left1.png" it doesn't work. What
breaks? Who knows? If I put a trace in completePreloader(), it traces,
so one would thing that the URLRequest works, right? Wrong. The page is
never sought, witnessed by the fact that, if "charles.jpg" is in, an
error is traced on my Mac when trying to find the relative address, but
if "left1.png" is in, no error. Now, it doesn't matter if it's a png or a jpg,
because the original file that works has a couple pngs as well.
I've gone so far as to copy and rename the working files in the same
directory as the originals, prove they work, copy over my images and
change them and watch this code break. So it _is_ the images that are
causing the problem. But why, o why???
John
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders