Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Автозапуск функции из класс, вызов функции с параметрами. (http://www.flasher.ru/forum/showthread.php?t=117815)

Орец 07.11.2008 14:08

Автозапуск функции из класс, вызов функции с параметрами.
 
При подстановке класса SimpleButtonDemo в качестве класса документа, функция SimpleButtonDemo начинает выполняться при загрузке флешки, без вызова. Как это можно прекратить?
Планируется что функция будет принимать параметры и в соответствии с ними создавать кнопки.(данные будут браться из массива, а параметры определять как сортировать, по каким критериям выбирать из массива и начиная с какого номера выводить)
===================================
И насчёт передачи параметров. Хотя это наверное немного не в тему. Если я определяю SimpleButtonDemo:
1.
Код:

public function SimpleButtonDemo( ... r)
или 2.

Код:

public function SimpleButtonDemo(r1:String, r2:String, r3:String)
и вызываю её из фла файла строкой

Код:

SimpleButtonDemo("А", "олёс", "Электро");
то появляется ошибка:

Код:

1137: Incorrect number of arguments.  Expected no more than 1.
Если

Код:

SimpleButtonDemo("А");
для первого случая, то не нравится переданный параметр:
Код:

#1034: Type Coercion failed: cannot convert "А" to main.SimpleButtonDemo. at main::SimpleButtonDemo/main::frame1()
для третьего случая, когда
3.
Код:

public function SimpleButtonDemo(r1:String)
выдаёт ошибку:
Код:

Error #1063: Argument count mismatch on main::SimpleButtonDemo$iinit(). Expected 1, got 0.
Как тогда передать несколько параметров... и чтобы оно работало, и чем функцию не устраивает первый вариант.

Класс SimpleButtonDemo
Код:

package main {
  import flash.display.*;
  import flash.events.*;
  import flash.text.*;

  public class SimpleButtonDemo extends MovieClip {

          //=============================================

          //==============================================

private var _r1:String;
//private var _r2:String;
//private var _r3:String;
         
          public function SimpleButtonDemo( ... r1) {
        _r1=r1[0];
trace('Вывод _r1 '+_r1);       
//        _r2=r[0];
//        _r3=r[1];
var perehod2:Array; // массив переходов
perehod2 = new Array();
perehod2[0]=["Название", "Механика", "0", "1", "3"];
perehod2[1]=["Название", "Механика", "0", "1", "2"];
perehod2[2]=["Название", "Электро", "0", "1", "4"];
perehod2[3]=["Название", "Механика", "0", "1", "5"];
perehod2[4]=["Название", "Электро", "0", "2", "7"];
perehod2[5]=["Название", "Механика", "0", "2", "6"];


trace('Вывод '+perehod2.length);
                for (var i:int=0; i<perehod2.length; i++){
var button1:RectangleButton = new RectangleButton( perehod2[i][0], 120, 20 );
      button1.x = 100;
      button1.y = 100+i*20;
          button1.name = "p" + i;
        button1.addEventListener(MouseEvent.MOUSE_DOWN, limys4);
          addChild(button1);
}
    }

       
  }
}


smilenka 07.11.2008 15:04

Из хелпа: Each SWF file has an associated ActionScript class, known as the main class of the SWF file. When Flash Player opens a SWF file in an HTML page, Flash Player calls the constructor function for that class and the instance that is created (which is always a type of display object) is added as a child of the Stage object.

Попробуйте оставить конструктор без параметров, а инициализацию производить в отдельном методе, его и вызывать с вашими параметрами.

iNils 07.11.2008 15:30

Цитата:

Сообщение от Орец (Сообщение 775291)
При подстановке класса SimpleButtonDemo в качестве класса документа, функция SimpleButtonDemo начинает выполняться при загрузке флешки, без вызова. Как это можно прекратить?

Не использовать SimpleButtonDemo в качестве класса документа.

Орец 10.11.2008 11:45

Спасибо, всё оказалось действительно просто.
Функцию SimpleButtonDemo прописал в fla, а класс документа вообще не стал проставлять.


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

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