2

画像を動的に回転させる2つの領域と動的なテキストの2つの領域を持つ単純なフラッシュランディングページがあります。すべての領域は、単一のXMLファイルから制御されます。

XMLファイルのテキストコンテンツに変更を加えた場合、またはフォルダー内の画像を更新してAdobe Flash Editorでテストした場合、変更は即座に行われます。FirefoxまたはIEを開くと、フラッシュファイルのあるページに更新が反映されません。履歴を削除し、Adobe Flashに、フラッシュをコンピューターに保存しないように指示し、ページを閉じて再読み込みしましたが、役に立ちませんでした。コンテンツを更新する唯一の方法は、ファイルの名前を変更し、新しいフォルダーに保存して、それが描画するxmlページの名前を変更することです。最後にkiosk.swf?id =#randrange(10000,99999)#文字列を追加して、ブラウザに新しいファイルを認識させるかどうかを確認しました。ファイル/フォルダの名前を変更して移動する以外に、ブラウザで新しいコンテンツを表示することはできません。

このシンプルなフラッシュページは、キオスクのランディングページになります。

    <style type="text/css" media="screen">
        body { margin:0; padding:0; overflow:hidden;background-color:#153d6f; }
        #myID   { height:100%;background-color:#153d6f; }
    </style>    
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript" src="swffit.js"></script>
   <cfoutput>
       <script type="text/javascript">
            swfobject.embedSWF("kiosk.swf?id=#randrange(10000,99999)#", "myID", "100%", "100%", "9.0.0", "expressInstall.swf");
            swffit.fit("myID");
        </script>
   </cfoutput> 

</head>
<body>
    <div id="myID"></div>
</body>

...................リクエストに応じて、動的画像を2つの領域のいずれかにプルするactionscript3............。 .....。。。

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;


var my_speed:Number;
var my_total:Number;
var my_images:XMLList;

var my_loaders_array:Array = [];
var my_success_counter:Number = 0;
var my_playback_counter:Number = 0;

var my_slideshow:Sprite = new Sprite();
var my_image_slides:Sprite = new Sprite(); 

var my_timer:Timer;
var my_prev_tween:Tween; 

var my_xml_loader:URLLoader = new URLLoader();
my_xml_loader.load(new URLRequest("content.xml")); 
my_xml_loader.addEventListener(Event.COMPLETE, processXML);




function processXML (e:Event):void{
    var my_xml:XML = new XML(e.target.data); 
    my_speed=my_xml.option2.slideShow2.@SPEED;
    my_images=my_xml.option2.slideShow2.IMAGE;
    my_total=my_images.length();    

    loadImages();
}

function loadImages():void{
    for (var i:Number = 0; i < my_total; i++){
        var my_url:String = my_images[i].@URL;
        var my_loader:Loader = new Loader();
        my_loader.load(new URLRequest(my_url));
        my_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
        my_loaders_array.push(my_loader); 
    }
}

function onComplete(e:Event):void{
    my_success_counter++;
    if (my_success_counter == my_total){
        startShow();
    }

}  

function startShow():void{
    addChild(my_slideshow);
    my_slideshow.addChild(my_image_slides);

    setChildIndex(my_slideshow,0);

    nextImage();

    my_timer = new Timer(my_speed*1000);
    my_timer.addEventListener(TimerEvent.TIMER, timerListener);
    my_timer.start();


}

function nextImage():void{
    var my_image:Loader = Loader(my_loaders_array[my_playback_counter]);
    my_image_slides.addChild(my_image);
    //my_image.x = (stage.stageWidth - my_image.width)/2;
    //my_image.y = (stage.stageHeight - my_image.height)/2;


    if (my_image.width == my_image.height) {
        my_image.width = 305;
        my_image.height = 305;
    }   else if( my_image.width > my_image.height ) {
            var newWidth = (my_image.width *(305 / my_image.height));
            my_image.height = 305;  
            my_image.width = newWidth;
    }   else if( my_image.width < my_image.height ) {
            var newHeight = (my_image.height *(305 / my_image.width));
            my_image.width = 305;   
            my_image.height = newHeight;

    }

    my_image.x = 80;
    my_image.y = -140;


    new Tween(my_image,"alpha",Strong.easeOut,0,1,1,true); 



} 

function timerListener (e:TimerEvent):void{
    hidePrev();

    my_playback_counter++;
    if (my_playback_counter == my_total){
        my_playback_counter =0;
    }

    nextImage();

} 

function hidePrev():void{
    var my_image:Loader=Loader(my_image_slides.getChildAt(0));
    my_prev_tween = new Tween(my_image,"alpha",Strong.easeOut,1,0,1,true);
    my_prev_tween.addEventListener(TweenEvent.MOTION_FINISH, onFadeOut)

    new Tween(my_image,"alpha",Strong.easeOut,1,0,1,true);

} 

function onFadeOut(e:TweenEvent):void{
    my_image_slides.removeChildAt(0);

}
4

2 に答える 2

2

actionscriptでのキャッシュを回避するには、「?」を追加します 次に、ロードするアイテムのURLの末尾にあるいくつかの一意の文字(画像、swfs、xmlなど)。例えば:

var cacheBuster:String = "?"+(new Date()).time.toString();
my_loader.load(new URLRequest(my_url+cacheBuster));

new Date()。timeは、1-1-1970以降のミリ秒数を返すため、一意の文字列を生成するのに適しています。

そのkiosk.swfがキャッシュしている場合、javascriptは非常に似ています。

var cacheBuster = "?"+(new Date()).getTime().toString();
swfobject.embedSWF("kiosk.swf"+cacheBuster, ....
于 2013-01-24T02:08:17.030 に答える
0

テキストの詳細については、こちらをご覧ください

画像を更新する方法については、こちらをご覧ください

お役に立てれば!

于 2013-01-23T20:54:36.257 に答える