Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Случайный loadMovie (http://www.flasher.ru/forum/showthread.php?t=65473)

Flandr 10.06.2005 13:48

Случайный 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 мувика?

iNils 10.06.2005 13:50

это присваивание
if (flag =0){
if (flag =1){

а сравнение делается так
if (flag == 0){
if (flag == 1){

Flandr 10.06.2005 13:52

спасибо, а мне как то даже не стрельнуло в голову

AlDev 10.06.2005 13:56

у меня такая конструкция нормально работает:
Код:

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']);


Fl00r 10.06.2005 14:14

Я бы вообще использовал random() вместо math.random()
Не надо округлять и все такое

Nirth 10.06.2005 14:18

флоор не советуй бяку. рандом() не совсем точен и уже устаревший

Fl00r 10.06.2005 14:22

опять борьба поколений? ))
точность в рэндоме - это ... парадокс ))
короче говоря - с ним все же меньше писать на символов 30! :)

Nirth 10.06.2005 14:27

Цитата:

Доступность
Flash Player 4. Функция устарела во Flash 5 с появлением Math.random().
Цитата:

Math.random()
Доступность
Flash Player 5. Во Flash Player 4 методы и свойства класса Math эмулируются при помощи приближенных вычислений и могут быть не так точны, как во Flash Player 5 и более поздних.
в макромедии не дебилы сидят=) и такие люди как Колин Мук тоже не глупые,но вель советуют отказатся

Fl00r 10.06.2005 14:30

ну - с последним соглашусь )).
но нам надо всего навсего из 10 картинок 1 выбрать... можно и упростить задачу.

Nirth 10.06.2005 14:32

зачем придыкать к плохому? =)от лишних символов не умрешь, но выбор за тобой

Fl00r 10.06.2005 14:39

В ообщем оба мы правы.
Я то буду использовать методы поновее, но при решении задачи x+y = int я, пожалуй, "схалтурю" ))

Pietrovich 10.06.2005 14:42

предатсавьте что Вам пытаются навязать вместо любимых галош новые кроссовки. они конечно красивее и удобнее. и что еще приятнее - на шару!. но у них есть шнурки, которые иногда приходится завязывать. и еще они белые что не практично в условиях огорода. и вам начхать что в галошах в ресторан вас не пустят, вы ведь в них на огороде работаете :)

то-же самое и с random ;)

Fl00r 10.06.2005 14:46

нет. у меня есть пара отличных лакированных туфель и смокинг - так что если надо.... )

AlDev 10.06.2005 14:47

offtop: в кросовках вообщем-то тоже в ресторан не пустят :)

Pietrovich 10.06.2005 15:21

Цитата:

у меня есть пара отличных лакированных туфель и смокинг
но в колхоз ты в них не ездишь ;)


Цитата:

в кросовках вообщем-то тоже в ресторан не пустят
хорошо. меняем кросовки на лаковые туфли FlOOr'за :))

хотя меня и в туфлях не пустят, из-зи джинсов :P

Fl00r 10.06.2005 15:58

я отщепенец-индивидуалист. в колхоз не хожу.

Nirth 10.06.2005 16:04

лично у меня есть класс orange.utils.Calc там есть встроенсй метод с авто округлением, и возможностью рандомить от и до.

Fl00r 10.06.2005 16:07

Nirth
похвально

Flandr 10.06.2005 16:29

Цитата:

Сообщение от Fl00r
ну - с последним соглашусь )).
но нам надо всего навсего из 10 картинок 1 выбрать... можно и упростить задачу.

Почему из 10? Задача загрузить случайный файл, а может их там 100. Math.random() безусловно лучше.

Fl00r 10.06.2005 16:43

хороооошо... уговорили )). хотя все равно одно и то же ))... практически

MIX-er 10.06.2005 17:52

по мне так прощще так

Код:

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');


Nirth 10.06.2005 19:23

если картинок сто, с редактированием массива замучаешься...

AlDev 10.06.2005 19:27

хех :)
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();


MIX-er 10.06.2005 19:51

хотел я хмл вставить... но совсем бы далеко от вопроса ушёл..)))


Часовой пояс GMT +4, время: 20:25.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.