Zoque.Forum
Dirsek Teması:
Geri Dön Zoque.Forum » Tasarımcının Mutfağı » Flash, AIR, Flex, Silverlight » Üstüste binen movieclip'ler


Yanıt
 
LinkBack Seçenekler
Old 13.03.2008   #1 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Üstüste binen movieclip'ler


Merhaba

Bir alan içerisine gelişigüzel dikdörtgen movieclip'ler yerleştiriyorum. Bunların üstüste binmelerini nasıl önlerim ?
perplex ş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.03.2008   #2 (permalink)
 
codesignist's Avatar
 
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
Re: Üstüste binen movieclip'ler

Normalde sağlam bir denklem yazılarak bu iş yapılabilir. Ama uğraşmak gerekiyor.

Hızlı yoldan hitTest uygulanarak yapılabilir. Eğer true dönüyorsa başka bir konuma atılabilir. Tabi bu gereksiz hesaplamaları da içeriyor. Yani bazı durumlarda objeler her random atamada üst üste gelecek olursa defalarca yeni koordinat atama konusunda bilgisayar bocalayacaktır. Bu işin tek avantajı hızlı programlanabilir olmasıdır.

Kodlar şöyle;
PHP Code:
MovieClip.prototype.rastgele = function(){
    
this._x Math.random()*500;
    
this._y Math.random()*300;
}
MovieClip.prototype.konumla = function(){
    
this.rastgele();
    for(var 
obj in this._parent){
        var 
hed this._parent[obj];
        if(
typeof(hed)=="movieclip"){
            if(
this != hed){
                
//trace(this._name+"   "+hed._name);
                
if(hed.hitTest(this)){
                    
this.konumla();
                }
            }
        }
    }
}
for(var 
i=0;i<7;i++){
    var 
mc attachMovie("kutu","k"+i,i);
    
mc.konumla();

Obje sayısı arttıkça bocalama süresi de o oranda artacaktır.

Sonuç olarak çok sağlıklı bir kod değil fakat acil bir çözüm en azından. =)
__________________
abonelik , codesignist.com , yunuses.com , blog
codesignist ş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.03.2008   #3 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: Üstüste binen movieclip'ler

evet pek değil.

ben mc'lerin onEnterFrame ' ine kendisinden öncekileri hitTest le check eden bi fonksiyon yazdım . ona göre attach etmeye devam ediyordu. oldu da . fakat onEnterFrame leri sildiremedim bir türlü.

Bir de bunu bir deniyim. Teşekkür codesignist
perplex ş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.03.2008   #4 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: Üstüste binen movieclip'ler

256 levels of recursion were exceeded in one action list.
This is probably an infinite loop.
Further execution of actions has been disabled in this movie.

başka bir yolu olmalı
perplex ş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.03.2008   #5 (permalink)
 
codesignist's Avatar
 
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
Re: Üstüste binen movieclip'ler

Evet işte böyle. Bocalama tekrarı 256 değerini geçince patlıyor. =)

Belki yine hızlı bir yöntem olarak kullanılan sayıyı bir daha kullanmama gibi bir teknik kullanarak işin içinden çıkılabilir.
__________________
abonelik , codesignist.com , yunuses.com , blog
codesignist ş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.03.2008   #6 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: Üstüste binen movieclip'ler

ok ben yaptığım örneği yazim belki bişi düşünülebilir

Kod:
var count=0;

function makeThumbs() {
	if (count<total) {
	
		var item:MovieClip = holder.attachMovie("item",count,count);
		item._x = Math.random()*(Stage.width-100);
		item._y = Math.random()*(Stage.height-65);
		
		if (count==0) {
			count++;
			makeThumbs();
		} else {
			correctPos(item);
		}
		
		
	}
		
		
}


function correctPos(mc:MovieClip) {
	mc.onEnterFrame = function() {
		for (j=0;j<Number(this._name);j++) {
			if (this.hitTest(this._parent[j])) {
					this._x = Math.random()*(Stage.width-100);
					this._y = Math.random()*(Stage.height-65);
					
				} else {
					count++;
					makeThumbs();
					
				}
			}
				
	}
}

makeThumbs();

burada ama ne zaman enterFrame leri durduracağımı çözemedim.
perplex ş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 19.03.2008   #7 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: Üstüste binen movieclip'ler

hala düzgün bir yöntem arıyorum
perplex ş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 21.03.2008   #8 (permalink)
 
codesignist's Avatar
 
Üyelik Tarihi: 02.01.2005
Yer: İstanbul
Mesaj: 249
Re: Üstüste binen movieclip'ler

Madem ortaya oturacak kare sayısı çok, o zaman kesinlikle ilk söylediğim zor yöntemi kullanmak gerekli. Ancak bu iş gerçekten karmaşıklaşıyor. Çünkü olay 2D.

1D olsaydı yani sadece x ya da y ekseninde hit uyguladığımızı varsayıyorum. O zaman şöyle bir mantık yürütülebilirdi;
[00000000001111111111111111111111111111111111111111 1111111111111111111....]
Yani tüm pixeller için dolu boş gibi bir mantık. Tabi bu bilgisayarı ve bizi yoracaktır. =) Bunun yerine boş olanları bir diziye şu mantıkta yazabiliriz;
[0-10,80-100,120-400]
Diizi içinde 0-10 arası boş, 80-100 arası boş şeklinde tespit edilip diziye yazdırılıp, daha sonraki kodla da eğer kare genişliği 80-100 arasındaki değerden yani 20'den büyükse random hesabına bu kısmı hiç katma gibi bir kod yazılabilirdi. Uğraştırıcı ama en sağlam yöntem bu.

Tabi bu 1D olduğu için böyle kolay. 2D bunun aynısı değil malesef. Hemen aklınıza x ve y için bundan iki tane kullanırım işimi hallederim şeklinde bir çözüm gelebilir ama bu doğru olmaz. Çünkü burada tam anlamıyla bir matris alanına ihtiyaç var. Şunun gibi
[0-10,80-100,120-400]
[0-10,80-100,120-400]
[0-10,80-100,120-400]
[0-10,80-100,120-400]
[80-100,120-400]
[80-100,120-400]
....
X için sıkıştırma yapabildik ama Y için her pixeli hesaplamak gerekiyor. Belki buna da iyi bir yöntem düşünülebilir. Biraz kafa yormak lazım.

Normalde bu tam experimental işi, buna kafa yorup çözüm üretmeyi çok isterdim ama vaktim yok malesef.

İyi çalışmalar.
__________________
abonelik , codesignist.com , yunuses.com , blog
codesignist ş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 25.03.2008   #9 (permalink)
 
perplex's Avatar
 
Üyelik Tarihi: 03.01.2007
Yer: istanbul
Yaş: 28
Mesaj: 184
Re: Üstüste binen movieclip'ler

sağol codesignist . evet kübik matrislerle çözülebilir de o da tam matematik işi. ben enterFrame li yöntemle yaptım sorun yok. sadece bir anda dizilmiyor yaklaşık 1-2 saniye vs sürüyo yerleşmeleri. kolay gelsin sana
perplex ş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
Sponsorlu Bağlantılar
Zoque.Forum
Reklam
Yanıt

Etiketler

flash


 
Zoque'a hoşgeldiniz!
Zoque 27.02.1999 tarihinde yayın hayatına başlamış, paylaşıma dayalı bir oluşumdur. Tasarım, teknoloji, web, kültür ve sanat ana başlıkları altında bilgi paylaşımı ve benzer değerlere sahip katılımcıların birbirleriyle iletişime girmelerine imkan sağlar. "Az ama Öz" sloganından yola çıkarak, kaliteli ve nitelikli katılımı temel alır.

Saygın ve ciddi bir ortamda yardımlaşmak, haberleşmek, kendi bildiklerini diğer katılımcılarla paylaşmak isteyen, oluşumumuza düzenli katılımda bulunacağı inancını taşıyan konuklarımızı üye olmaya davet ediyoruz. [ » ]


Üye Girişi:

En popüler ilk 100 etiket
Tag Cloud
acil adsl ajax almak arama araniyor ariyorum ariyoruz asp bilen bilgi bilgisayar blog calisma canon css div domain dosya eleman film firefox flash font form forum fotograf freelance google gore grafik grafiker hakkinda hangi hata hatasi hosting html ilgili ilk image internet istanbul istiyorum java javascript karakter kayit kisisel kullanimi link logo mac mail menu muzik mysql nasil neden nedir online oyun photoshop php problemi program programi reklam resim satilik sayfa script server ses sistemi site sitesi son soru sorun sorunsali sorunu sql swf tasarim tasarimci tasarimcisi tasarimi turk turkce veri video web windows wordpress xml yardim yazi yeni zoque
Zoque RSS Aboneliği
Son eklenen konuları e-posta ile haber verelim mi?

Forum Yazılımı: vBulletin® Version 3.7.4 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

Arayüz/Skin "Güneş" © www.zoque.com / net. Copyright © 1999 - 2008
Forum Saati GMT +2. Şu anda saat: 15:43.