Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Tasarımcının Mutfağı » Flash, AIR, Flex, Silverlight » Flash Animasyona Xml den veri çekmek


Yanıt
 
LinkBack Seçenekler
Old 07.08.2007   #1 (permalink)
 
nurkan's Avatar
 
Üyelik Tarihi: 09.03.2004
Yer: ankara
Yaş: 25
Mesaj: 521
Flash Animasyona Xml den veri çekmek


Sitede aradım fakat bulamadım. varsa şimdiden özür dilerim XML den flash'a veri aktaramayı öğrendim. fakat bunu bir türlü arda arda gelen bir animasyona uygulayamadım. İstediğimi bir örnekte gösteriyim;
http://www.alisveris.com/asp/index.asp

de oldugu gibi, (birçok alışveriş sitesinde de var) ortada bulunan flash reklamları müşterimin kolay güncellemesi adına verilerinin xmlden çekmesini istiyorum müşterim sadece belli bir klasörde bulunan resimleri değiştirecek. animasyon sürekli devam edecek ilgili ürüne tıklandığın da ilgili linke gidececk
teşekkürler.
nurkan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 08.08.2007   #2 (permalink)
 
nurkan's Avatar
 
Üyelik Tarihi: 09.03.2004
Yer: ankara
Yaş: 25
Mesaj: 521
Re: Flash Animasyona Xml den veri çekmek

ben bir örnek buldum fakat bu sefer de SWF dosyasını başka bir serverdaki sayfaya eklediğim zaman XML den veri çekemiyor.
bulduğum örnek kodlar şunlar:

PHP Code:
function startTimer()
{
    
clearInterval(timerObjId);
    if (
actualScene_ lastScene 1)
    {
        
timerObjId setInterval(loadBeKardesimloadNextTime 250actualScene_ 2);
    }
    else
    {
        
timerObjId setInterval(loadBeKardesimloadNextTime 2501);
    } 
// end else if
// End of the function
function container1In()
{
    
container1.filters = [new flash.filters.BlurFilter(0container1TotalBlur3)];
    
container1Move = new mx.transitions.Tween(container1"_y"mx.transitions.easing.Regular.easeOutStage.height0moveSpeedfalse);
    
container1Alpha = new mx.transitions.Tween(container1"_alpha"mx.transitions.easing.Regular.easeOutalphaStartAmount100alphaSpeedfalse);
    
container1Move.onMotionFinished = function ()
    {
        
container1BlurEffect = new mx.transitions.Tween(container1BlurObject"blurY"mx.transitions.easing.Regular.easeIncontainer1BlurObject.blurYnoBlurblurSpeedfalse);
        
container1BlurEffect.onMotionChanged = function ()
        {
            
container1BlurObject.blurY container1BlurObject.blurY;
            
container1BlurObject.blurX 0;
            
container1.filters = new Array(container1BlurObject);
        };
        
container1BlurEffect.onMotionFinished = function ()
        {
            
container1BlurObject.blurY container1BlurObject.blurX container1TotalBlur;
        };
    };
// End of the function
function container1Out()
{
    
container1Alpha.yoyo();
// End of the function
function container2In()
{
    
container2.filters = [new flash.filters.BlurFilter(0container2totalBlur3)];
    
container2Move = new mx.transitions.Tween(container2"_y"mx.transitions.easing.Regular.easeOutStage.height0moveSpeedfalse);
    
container2Alpha = new mx.transitions.Tween(container2"_alpha"mx.transitions.easing.Regular.easeOutalphaStartAmount100alphaSpeedfalse);
    
container2Move.onMotionFinished = function ()
    {
        
container2BlurEffect = new mx.transitions.Tween(container2BlurObject"blurY"mx.transitions.easing.Strong.easeOutcontainer2BlurObject.blurYnoBlurblurSpeedfalse);
        
container2BlurEffect.onMotionChanged = function ()
        {
            
container2BlurObject.blurY container2BlurObject.blurY;
            
container2BlurObject.blurX 0;
            
container2.filters = new Array(container2BlurObject);
        };
        
container2BlurEffect.onMotionFinished = function ()
        {
            
container2BlurObject.blurY container2BlurObject.blurX container2totalBlur;
        };
    };
// End of the function
function container2Out()
{
    
container2Alpha.yoyo();
// End of the function
function openPage()
{
    
getURL(urls[prevScene_], "");
// End of the function
function loadBeKardesim(sira)
{
    if (
prevScene_ == sira 1)
    {
        return;
    } 
// end if
    
if (eval("loaded" sira) == 0)
    {
        return;
    } 
// end if
    
actualScene_ sira 1;
    
startTimer();
    var 
container = eval("container" sira);
    var 
containerOld = eval("container" + (prevScene_ 1));
    if (
container.getDepth() < containerOld.getDepth())
    {
        
container.swapDepths(containerOld);
    } 
// end if
    
if (prevScene_ == 0)
    {
        
container1Out();
    }
    else if (
prevScene_ == 1)
    {
        
container2Out();
    } 
// end else if
    
if (sira == 1)
    {
        
container1In();
    }
    else if (
sira == 2)
    {
        
container2In();
    } 
// end else if
    
buttonMC.gotoAndPlay((sira 1) * 15 1);
    
prevScene_ actualScene_;
// End of the function
function loadXML(loaded)
{
    if (
loaded)
    {
        
xmlNode this.firstChild;
        
image = [];
        
urls = [];
        
lastScene xmlNode.childNodes.length;
        for (
0lastScenei++)
        {
            
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
            
urls[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
        } 
// end of for
        
mediaLoader1.loadClip(image[0], container1);
    }
    else
    {
        
trace ("dosya alınamadı !");
    } 
// end else if
// End of the function
System.security.allowDomain("*");
var 
loadNextTime 30;
var 
alphaStartAmount 0;
var 
loaded1 0;
var 
loaded2 0;
var 
totalBlur 3;
var 
noBlur 0;
var 
actualScene_ 2;
var 
prevScene_ 2;
var 
lastScene 2;
var 
alphaSpeed 35;
var 
blurSpeed 45;
var 
moveSpeed 20;
var 
instance this.createEmptyMovieClip("container1"this.getNextHighestDepth());
container1._y Stage.height;
container1.filters = new Array(blur);
var 
instance this.createEmptyMovieClip("container2"this.getNextHighestDepth());
container2._y Stage.height;
container2.filters = new Array(blur);
var 
instance this.createEmptyMovieClip("topLayerContainer"this.getNextHighestDepth());
var 
containerListenerObj1 = new Object();
containerListenerObj1.onLoadInit = function (target)
{
    
loaded1 1;
    
buttonMC.swapDepths(topLayerContainer);
    
loadBeKardesim(1);
    
mediaLoader2.loadClip(image[1], container2);
};
var 
mediaLoader1 = new MovieClipLoader();
mediaLoader1.addListener(containerListenerObj1);
var 
containerListenerObj2 = new Object();
containerListenerObj2.onLoadInit = function (target)
{
    
loaded2 1;
    
mediaLoader3.loadClip(image[2], container3);
};
var 
mediaLoader2 = new MovieClipLoader();
mediaLoader2.addListener(containerListenerObj2);
timerObjId setInterval(trace100000" selam ");
var 
container1TotalBlur totalBlur;
var 
container1BlurObject;
var 
container1BlurEffect;
var 
container1Move;
var 
container1Alpha;
var 
container2totalBlur totalBlur;
var 
container2BlurObject;
var 
container2BlurEffect;
var 
container2Move;
var 
container2Alpha;
xmlData = new XML();
xmlData.ignoreWhite true;
xmlData.onLoad loadXML;
if (
_root.categoryHierarchy.length)
{
    
xmlData.load("index.PHP.XML_root.categoryHierarchy);
}
else
{
    
xmlData.load("index.PHP.XML");
// end else if
stop (); 

eklemek istediğim SWF ise http://hepsiantendepo.googlepages.com/reklamorta.html burada doğru çalışan
http://hepsiantendepo.googlepages.com/reklamorta.swf

teşekkürler.
nurkan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.08.2007   #3 (permalink)
 
LaDy_D's Avatar
 
Üyelik Tarihi: 23.12.2000
Yer: Ankara
Yaş: 27
Mesaj: 198
Re: Flash Animasyona Xml den veri çekmek

Şöyle bir kodlama işine yarar mı?


Diyelim ki images.XML diye bir XML dosyamız var.
Kod:
<images> 
<image image="img/img1.jpg" caption="Resimler Dosyası"/>
</images>

"Main" isminde bir fla yapalım. bir dinamik text kutusu koyalım(instance name=myText) fontu gömülmüş(embedded) olarak kullanmakta yarar var. bir tane dikdörtgen çizelim ve bunu bir moviclip yapalım(instance name=myImageFolder) Bir actionscript katmanı ekleyelim ve yukarıdaki kodları oraya yapıştıralım.
Kod:
// XML değişkeni tanımlayalım.
var XML:XML = new XML();
// XML'de beyaz alanı yok sayman gerekiyor. o nedenle:
XML.ignoreWhite = true;
// XML'in çağrılması için fonksiyon yaratalım.
XML.onLoad = function() { 
        var nodes = this.firstChild.childNodes;//XML'le ilgili terimler.
        numOfItems = nodes.length; 
              for (var i = 0; i<numOfItems; i++) {  
                       myImageHolder.loadMovie(nodes[i].attributes.image);  //XML'deki imajı-imajları gösterir.
                       myText.text = nodes[i].attributes.caption; //XML'deki caption kısmını gösterir.
              }
};

XML.load("XML/images.XML");//XML'i yükle...
__________________
Kara bulutlarla örtülse de ruhunuz, bir yerinde bir mavilik vardır,elbet bulursunuz ;)
LaDy_D şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 13.08.2007   #4 (permalink)
 
LaDy_D's Avatar
 
Üyelik Tarihi: 23.12.2000
Yer: Ankara
Yaş: 27
Mesaj: 198
Re: Flash Animasyona Xml den veri çekmek

Bir de şöyle bir kodlama buldum. Belki işinize yarar.


Kod:
load data and images through XML  
 
//The name of XML file is "book.XML"

//first frame

myxml = new XML();
myxml.ignoreWhite = true;
myxml.load("book.XML");
function process1(pic, name) {
        pic = myxml.firstChild.childNodes[0].attributes.pic;
        name=myxml.firstChild.childNodes[0].childNodes[0];
        loadMovie(pic, "sam");
        text=name;
}
function process2(pic, name) {
        pic = myxml.firstChild.childNodes[1].attributes.pic;
        name=myxml.firstChild.childNodes[1].childNodes[0];
        loadMovie(pic, "sam");
        text=name;
}

//movieclp


onClipEvent(enterFrame){
        if(this._url != _root._url && !loaded) {
                var kilobytes = Math.ceil(this.getBytesTotal()/1024);
                var percentLoaded = Math.ceil((this.getBytesLoaded()/this.getBytesTotal()) * 100);
                _root.counter = "loading " + percentLoaded + "% of " + kilobytes + "k";
                _root.loading="Movie is loading, please wait.";
                if(percentLoaded == 100){
                        loaded = true;
                        _root.counter = "Ready";
                        _root.loading="";
                }
        }
}



//button

on (release) {
        process1();
}


//button

on (release) {
        process2();
}


//For create XML file U have to simple copy text which is given below paste into notepad file and save as book.XML

<?XML version"1.0"?>
<Models>
<Riya name="Riya" pic="images/pic_1.SWF">Age:22
height:5fit
weight:60kg
</Riya>
<Divya name="Divya" pic="images/pic_2.SWF">Age:24
height:6fit
weight:67kg
</Divya>
</Models>
__________________
Kara bulutlarla örtülse de ruhunuz, bir yerinde bir mavilik vardır,elbet bulursunuz ;)
LaDy_D şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 22.08.2007   #5 (permalink)
 
Dd_LynCh's Avatar
 
Üyelik Tarihi: 01.11.2000
Yer: İstanbul - Ortaköy
Yaş: 25
Mesaj: 1,095
Re: Flash Animasyona Xml den veri çekmek

XML'i çağırmak için load("XML/images.XML"); şeklinde değil de load("http://www.adres.com/XML/images.XML"); yazarsan eğer sorun düzelir sanıyorum.
Dd_LynCh şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 22.08.2007   #6 (permalink)
 
nurkan's Avatar
 
Üyelik Tarihi: 09.03.2004
Yer: ankara
Yaş: 25
Mesaj: 521
Re: Flash Animasyona Xml den veri çekmek

hepinize teşekkür ediyorum . .XML dosyasını SWF dosya ile aynı sunucuya koydum imajlar farklı hostta çalıştı. adresi Dd_LynCh in dediği gibi tam url olarak da girsem sorun oluyor. XML i nedense bilgisayarımda farklı hosttan çekiyor sunucuya atınca olmuyor. ben de XML dosyası ve SWF dosyasını aynı hostta tutarak sorunu birşekilde aşmış oldum
nurkan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin
Old 29.04.2008   #7 (permalink)
 
nurkan's Avatar
 
Üyelik Tarihi: 09.03.2004
Yer: ankara
Yaş: 25
Mesaj: 521
Re: Flash Animasyona Xml den veri çekmek

Sorunu aştığımı söylemişim ama yanılmışım sadece geçici bir çözüm oldu.

yani XML dosyasını ve SWF dosyasını aynı host altında olma zorunluğu beni çok zora sokuyor.
XML dosyası müşterinin kendi hostunda olsun istiyorum fakat SWF dosyası benim hostumda sonuçta Adobe da da araştırdım fakat sorunu çözemedim.

fla dosyasındaki kod bu:
Alıntı:
function kampanya_baslat()
{
kampanya_resmi = MyXml.firstChild.childNodes[0].firstChild.firstChild;
kampanya_resmi1 = MyXml.firstChild.childNodes[1].firstChild.firstChild;
kampanya_resmi2 = MyXml.firstChild.childNodes[2].firstChild.firstChild;
kampanya_resmi3 = MyXml.firstChild.childNodes[3].firstChild.firstChild;
kampanya_resmi4 = MyXml.firstChild.childNodes[4].firstChild.firstChild;
dosya_url = ""+kampanya_resmi;
dosya_url1 = ""+kampanya_resmi1;
dosya_url2 = ""+kampanya_resmi2;
dosya_url3 = ""+kampanya_resmi3;
dosya_url4 = ""+kampanya_resmi4;
mcl.loadClip(dosya_url, _root.kampanya_mc.s);
mcl2.loadClip(dosya_url1, _root.kampanya_mc.s1);
mcl3.loadClip(dosya_url2, _root.kampanya_mc.s2);
mcl4.loadClip(dosya_url3, _root.kampanya_mc.s3);
mcl5.loadClip(dosya_url4, _root.kampanya_mc.s4);
link();
} // End of the function
var mcl = new MovieClipLoader();
var mclL = new Object();
var frame = 1;
mclL.onLoadProgress = function (target, loaded, total)
{
frame = Math.round(loaded / total * 100);
_root.hareket = "durakla";
_root.kampanya_mc.yukleyici1_mc.gotoAndStop(frame) ;
};
mclL.onLoadInit = function ()
{
_root.hareket = "oyna";
};
mcl.addListener(mclL);
var mcl2 = new MovieClipLoader();
var mcl2L = new Object();
var frame = 1;
mcl2L.onLoadProgress = function (target, loaded, total)
{
frame = Math.round(loaded / total * 100);
_root.kampanya_mc.yukleyici2_mc.gotoAndStop(frame) ;
};
mcl2.addListener(mcl2L);
var mcl3 = new MovieClipLoader();
var mcl3L = new Object();
var frame = 1;
mcl3L.onLoadProgress = function (target, loaded, total)
{
frame = Math.round(loaded / total * 100);
_root.kampanya_mc.yukleyici3_mc.gotoAndStop(frame) ;
};
mcl3.addListener(mcl3L);
var mcl4 = new MovieClipLoader();
var mcl4L = new Object();
var frame = 1;
mcl4L.onLoadProgress = function (target, loaded, total)
{
frame = Math.round(loaded / total * 100);
_root.kampanya_mc.yukleyici4_mc.gotoAndStop(frame) ;
};
mcl4.addListener(mcl4L);
var mcl5 = new MovieClipLoader();
var mcl5L = new Object();
var frame = 1;
mcl5L.onLoadProgress = function (target, loaded, total)
{
frame = Math.round(loaded / total * 100);
_root.kampanya_mc.yukleyici5_mc.gotoAndStop(frame) ;
};
mcl5.addListener(mcl5L);
System.useCodepage = true;
MyXml = new XML();
MyXml.ignoreWhite = true;
MyXml.onLoad = function (success)
{
if (success == true)
{
kampanya_baslat();
} // end if
};
MyXml.load("veri.PHP.XML");
MovieClip.prototype.git = function (a, surtunme, deger)
{
this.onEnterFrame = function ()
{
ypoz = (a - this._y) * 1.500000E-001 * surtunme;
this._y = this._y + ypoz;
_root.kampanya_mc.u_mc.onRollOver = function ()
{
link = MyXml.firstChild.childNodes[0].firstChild.nextSibling.firstChild;
if (link == null)
{
this.useHandCursor = false;
}
else
{
_root.kampanya_mc.u_mc.onPress = function ()
{
link = MyXml.firstChild.childNodes[0].firstChild.nextSibling.firstChild;
_root.getURL(link, "_self");
};
} // end else if
};
_root.kampanya_mc.u2_mc.onRollOver = function ()
{
link1 = MyXml.firstChild.childNodes[1].firstChild.nextSibling.firstChild;
if (link1 == null)
{
this.useHandCursor = false;
}
else
{
_root.kampanya_mc.u2_mc.onPress = function ()
{
link1 = MyXml.firstChild.childNodes[1].firstChild.nextSibling.firstChild;
_root.getURL(link1, "_self");
};
} // end else if
};
_root.kampanya_mc.u3_mc.onRollOver = function ()
{
link2 = MyXml.firstChild.childNodes[2].firstChild.nextSibling.firstChild;
if (link2 == null)
{
this.useHandCursor = false;
}
else
{
_root.kampanya_mc.u3_mc.onPress = function ()
{
link2 = MyXml.firstChild.childNodes[2].firstChild.nextSibling.firstChild;
_root.getURL(link2, "_self");
};
} // end else if
};
_root.kampanya_mc.u4_mc.onRollOver = function ()
{
link3 = MyXml.firstChild.childNodes[3].firstChild.nextSibling.firstChild;
if (link3 == null)
{
this.useHandCursor = false;
}
else
{
_root.kampanya_mc.u4_mc.onPress = function ()
{
link3 = MyXml.firstChild.childNodes[3].firstChild.nextSibling.firstChild;
_root.getURL(link3, "_self");
};
} // end else if
};
_root.kampanya_mc.u5_mc.onRollOver = function ()
{
link4 = MyXml.firstChild.childNodes[4].firstChild.nextSibling.firstChild;
if (link4 == null)
{
this.useHandCursor = false;
}
else
{
_root.kampanya_mc.u5_mc.onPress = function ()
{
link4 = MyXml.firstChild.childNodes[4].firstChild.nextSibling.firstChild;
_root.getURL(link4,"_blank");
};
} // end else if
};
};
};
var Zaman = 0;
var kampanya = 1;
hareket = "oyna";
onEnterFrame = function ()
{
if (hareket == "oyna")
{
++Zaman;
}
else if (hareket == "durakla")
{
Zaman = 0;
} // end else if
if (Zaman > 210)
{
if (kampanya == 5)
{
kampanya = 1;
Zaman = 0;
}
else
{
++kampanya;
Zaman = 0;
} // end if
} // end else if
if (kampanya == 1)
{
_root.but1_mc.gotoAndStop(2);
_root.but2_mc.gotoAndStop(1);
_root.but3_mc.gotoAndStop(1);
_root.but4_mc.gotoAndStop(1);
_root.but5_mc.gotoAndStop(1);
_root.kampanya_mc.git(0, 7.000000E-001, 0);
}
else if (kampanya == 2)
{
_root.but1_mc.gotoAndStop(1);
_root.but2_mc.gotoAndStop(2);
_root.but3_mc.gotoAndStop(1);
_root.but4_mc.gotoAndStop(1);
_root.but5_mc.gotoAndStop(1);
_root.kampanya_mc.git(-200, 9.500000E-001, 0);
}
else if (kampanya == 3)
{
_root.but1_mc.gotoAndStop(1);
_root.but2_mc.gotoAndStop(1);
_root.but3_mc.gotoAndStop(2);
_root.but4_mc.gotoAndStop(1);
_root.but5_mc.gotoAndStop(1);
_root.kampanya_mc.git(-400, 9.500000E-001, 0);
}
else if (kampanya == 4)
{
_root.but1_mc.gotoAndStop(1);
_root.but2_mc.gotoAndStop(1);
_root.but3_mc.gotoAndStop(1);
_root.but4_mc.gotoAndStop(2);
_root.but5_mc.gotoAndStop(1);
_root.kampanya_mc.git(-600, 9.500000E-001, 0);
}
else if (kampanya == 5)
{
_root.but1_mc.gotoAndStop(1);
_root.but2_mc.gotoAndStop(1);
_root.but3_mc.gotoAndStop(1);
_root.but4_mc.gotoAndStop(1);
_root.but5_mc.gotoAndStop(2);
_root.kampanya_mc.git(-800, 9.500000E-001, 0);
} // end else if
};
stop ();
fakat anladığım kadarıyla XML dosyasında bir değişiklik yapmam gerekiyor.
nurkan şu an çevrimdışı  
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl'e kaydet! http://reddit.com/submit?url=%url%&title=%title%Wong'e kaydet!Yahoo'ya kaydet!Google'a kaydet!MSN'e kaydet!Facebook'e kaydet!
Mesajdan alıntı yaparak yeni bir cevap ekleyin