PDA

Просмотр полной версии : Подскажите пожалуйста, верна ли такая конструкция?


billyboom
25.10.2017, 10:18
Добрый день. Не с кем посоветоваться, поэтому пишу здесь на этом форуме, подскажите пожалцйста. Задача прокрутить ролик три раза и остановить, верна ли такая конструкция ActionScript 3.0? При публикации пропадает вся анимация и ничего не показывается.

var i:int=0;
for (i = 0; i < 3; i++)
{
this.play();
}
else
{
this.stop();
}

Заранее Благодарю.

ZackMercury
25.10.2017, 11:41
Нет.00000

ZergMaster
25.10.2017, 11:47
создаем документ класс main, и пишем что-то вроде:


package {

import flash.display.MovieClip;


public class main extends MovieClip
{
private var _iterationCount:int = 0;

public function main()
{
this.addEventListener(Event.ENTER_FRAME, enterFrameHandler)

this.play();
}

private function enterFrameHandler(event:Event):void
{
if(_iterationCount > 2)
{
this.stop();
this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
else if(this.currentFrame == this.totalFrames)
{
_iterationCount ++;
this.gotoAndPlay(1);
}
}
}
}

billyboom
25.10.2017, 11:48
Нет.00000
Подскажите, пожалуйста, что не так?

ZergMaster
25.10.2017, 11:53
Подскажите, пожалуйста, что не так?
похоже, что всё

Добавлено через 5 минут
еще можно в первом кадре создать переменную iteration=0 после чего в последнем прибавлять к нему один iteration++ и смотреть, если оно равно 3, то стопить ролик, а если нет - делать перемотку в начало
if(iteration >3)
stop();
else
gotoAndPlay(1)
но это не точно будет работать, так как я не уверен, будет ли видна переменная, созданная в первом кадре из последнего.

billyboom
25.10.2017, 12:01
ZergMaster, Прошу прощение, а в самой сцене, как вызвать этот класс?

ZergMaster
25.10.2017, 12:25
Попробуйте иногда пользоваться гуглом (https://www.google.ru/search?q=%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82+%D0%BA%D0%BB%D0%B0%D1%81%D1%81+flash&rlz=1C1ASUM_enRU759RU759&oq=%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82+%D0%BA%D0%BB%D0%B0%D1%81%D1%81+flash&aqs=chrome..69i57.5503j0j7&sourceid=chrome&ie=UTF-8)

billyboom
26.10.2017, 15:33
ZergMaster, спасибо, с АЕ так и не получилось, пришлось изобрести костыли в виде дополнительной анимации и выражения this.stop(); ))

ZergMaster
26.10.2017, 16:27
такое АЕ?
То есть, пройти по первой ссылке в гугле оказалось слишком сложно, чтоб узнать, что документ класс создается в панели настроек главной сцены?..
Вот тут я рассказываю (https://youtu.be/AN4T9mbF9GY?t=4m40s), как создавать док класс и как вообще перейти на программирование в классах.

... создать документ-класс с именем Main и копипастнуть в него это:

package {

import flash.display.MovieClip;
import flash.events.Event;

public class Main extends MovieClip {

private var _iterationCount:int = 0;

public function Main()
{
this.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
}

private function enterFrameHandler(event:Event):void
{
if(this.currentFrame == this.totalFrames)
_iterationCount ++;

if (_iterationCount > 2)
{
this.stop();
this.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
}
}
}

слишком сложно?