Просмотр полной версии : Случайный loadMovie
Решил сделать баннер, который в себя случайно загружает другие баннеры. Сделал так:
-------------------------------------------------
var flag:Number = (Math.round(Math.random());
if (flag =0){
loadMovie('one.swf', 'helper_mc');
}
if (flag =1){
loadMovie('two.swf', 'helper_mc');
}
-------------------------------------------------
Вместо желаемого результата всегда вставляется two.swf. То же самое бывает для любого значения flag, всегда вставляется тот swf, чей flag больше. Как с этим бороться?
Для своей конкретной задачи всё решил просто:
-------------------------------------------------
var flag:Number = (Math.round(Math.random()))*2;
if (flag <1){
loadMovie('one.swf', 'helper_mc');
}
if (flag >1){
loadMovie('two.swf', 'helper_mc');
}
-------------------------------------------------
Но что делать если надо загружать больше чем 2 мувика?
это присваивание
if (flag =0){
if (flag =1){
а сравнение делается так
if (flag == 0){
if (flag == 1){
спасибо, а мне как то даже не стрельнуло в голову
у меня такая конструкция нормально работает:
var mtest:Number = Math.random();
if (mtest<0.5)
{
trace ('1');
}else
{
trace ('2');
}
stop();
ну и расширить:
var flag:Number = Math.random();
var url:String;
if (flag<0.5)
{
url = 'one.swf';
}else
{
url = 'two.swf';
}
loadMovie(url,this['helper_mc']);
Я бы вообще использовал random() вместо math.random()
Не надо округлять и все такое
флоор не советуй бяку. рандом() не совсем точен и уже устаревший
опять борьба поколений? ))
точность в рэндоме - это ... парадокс ))
короче говоря - с ним все же меньше писать на символов 30! :)
Доступность
Flash Player 4. Функция устарела во Flash 5 с появлением Math.random().
Math.random()
Доступность
Flash Player 5. Во Flash Player 4 методы и свойства класса Math эмулируются при помощи приближенных вычислений и могут быть не так точны, как во Flash Player 5 и более поздних.
в макромедии не дебилы сидят=) и такие люди как Колин Мук тоже не глупые,но вель советуют отказатся
ну - с последним соглашусь )).
но нам надо всего навсего из 10 картинок 1 выбрать... можно и упростить задачу.
зачем придыкать к плохому? =)от лишних символов не умрешь, но выбор за тобой
В ообщем оба мы правы.
Я то буду использовать методы поновее, но при решении задачи x+y = int я, пожалуй, "схалтурю" ))
Pietrovich
10.06.2005, 14:42
предатсавьте что Вам пытаются навязать вместо любимых галош новые кроссовки. они конечно красивее и удобнее. и что еще приятнее - на шару!. но у них есть шнурки, которые иногда приходится завязывать. и еще они белые что не практично в условиях огорода. и вам начхать что в галошах в ресторан вас не пустят, вы ведь в них на огороде работаете :)
то-же самое и с random ;)
нет. у меня есть пара отличных лакированных туфель и смокинг - так что если надо.... )
offtop: в кросовках вообщем-то тоже в ресторан не пустят :)
Pietrovich
10.06.2005, 15:21
у меня есть пара отличных лакированных туфель и смокинг
но в колхоз ты в них не ездишь ;)
в кросовках вообщем-то тоже в ресторан не пустят
хорошо. меняем кросовки на лаковые туфли FlOOr'за :))
хотя меня и в туфлях не пустят, из-зи джинсов :P
я отщепенец-индивидуалист. в колхоз не хожу.
лично у меня есть класс orange.utils.Calc там есть встроенсй метод с авто округлением, и возможностью рандомить от и до.
ну - с последним соглашусь )).
но нам надо всего навсего из 10 картинок 1 выбрать... можно и упростить задачу.
Почему из 10? Задача загрузить случайный файл, а может их там 100. Math.random() безусловно лучше.
хороооошо... уговорили )). хотя все равно одно и то же ))... практически
по мне так прощще так
var images = ["img1.jpg", "img2.jpg", "img3.jpg"];
var max = images.length-1;
var flag = Math.round(Math.random()*(max-0))+0;
trace(flag);
drop.loadMovie(images[flag], 'helper_mc');
если картинок сто, с редактированием массива замучаешься...
хех :)
movies.xml:
<?xml version='1.0'?>
<clips>
<clip url='test1.swf'/>
<clip url='test2.swf'/>
</clips>
flash:
var doc:XML = new XML();
doc.ignoreWhite = true;
doc.load('movies.xml');
doc.onLoad = function()
{
var max:Number = doc.firstChild.childNodes.length-1;
var flag:Number = Math.round(Math.random()*(max-0))+0;
var url:String = String(doc.firstChild.childNodes[flag].attributes.url);
drop.loadMovie(url,'helper_mc');
}
stop();
хотел я хмл вставить... но совсем бы далеко от вопроса ушёл..)))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.